From 48d289b07696ad6c10af21053f6ae9cff4cd48de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=87=E8=B6=A3=E4=BF=9D=E7=BD=97?= Date: Wed, 20 Apr 2022 02:44:34 +0800 Subject: [PATCH] Fix: Redis Service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改成 MidwayJS 官方提供的方案 --- .env | 9 ++- package.json | 6 +- prisma/schema.prisma | 2 +- src/api/acgm.ts | 19 +++--- src/api/bili.ts | 15 +++-- src/api/bing.ts | 13 ++-- src/api/book.ts | 73 ----------------------- src/api/configuration.ts | 22 +++++-- src/api/dji.ts | 6 +- src/api/netease.ts | 17 +++--- src/api/stat.ts | 7 ++- src/api/utils/redis.ts | 13 ---- src/api/wallpaper.ts | 6 +- yarn.lock | 124 ++++++++++++++++++++------------------- 14 files changed, 139 insertions(+), 193 deletions(-) delete mode 100644 src/api/book.ts delete mode 100644 src/api/utils/redis.ts diff --git a/.env b/.env index da03b7a..dfbe6ad 100644 --- a/.env +++ b/.env @@ -1,7 +1,6 @@ -DB_NAME=paul_api_next -DB_USER=root -DB_PASS=233456 -DB_PORT=8889 -DB_LINK=localhost +DB_URL=mysql://root:233456@localhost:8889/paul_api_next + +CACHE_HOST=127.0.0.1 +CACHE_PORT=6379 PAUL_SITENAME="保罗 API Next" diff --git a/package.json b/package.json index 979f69d..53467b7 100644 --- a/package.json +++ b/package.json @@ -11,19 +11,21 @@ "@midwayjs/hooks": "^3.0.0", "@midwayjs/hooks-kit": "^3.0.0", "@midwayjs/koa": "^3.3.0", + "@midwayjs/redis": "^3.3.2", "@midwayjs/rpc": "^3.0.0", "@prisma/client": "^3.12.0", "ahooks": "^3.3.0", + "dotenv": "^16.0.0", "isomorphic-unfetch": "^3.1.0", "lodash": "^4.17.21", "prismjs": "^1.27.0", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-router-dom": "^6.3.0", - "redis": "^4.0.6" + "react-router-dom": "^6.3.0" }, "devDependencies": { "@midwayjs/mock": "^3.3.0", + "@types/ioredis": "^4.28.10", "@types/lodash": "^4.14.181", "@types/prismjs": "^1.26.0", "@types/react": "^17.0.44", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 3a479db..2cdac30 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -4,7 +4,7 @@ generator client { datasource db { provider = "mysql" - url = "mysql://root:233456@localhost:8889/paul_api_next" + url = env("DB_URL") } model ACGM { diff --git a/src/api/acgm.ts b/src/api/acgm.ts index b24569a..755f0e4 100644 --- a/src/api/acgm.ts +++ b/src/api/acgm.ts @@ -1,15 +1,15 @@ -import { Api, Get, Query, useContext } from "@midwayjs/hooks"; +import { Api, Get, Query, useContext, useInject } from "@midwayjs/hooks"; +import { RedisService } from "@midwayjs/redis"; +import { prisma } from "./utils/prisma"; import { getSong } from "./utils/netease"; -import { client } from "./utils/redis"; -import { prisma } from "./utils/prisma"; - export default Api( Get(), Query<{ play?: string }>(), async () => { const ctx = useContext(); + const client = await useInject(RedisService); // 设置 Header ctx.set("access-control-allow-origin", "*"); @@ -44,7 +44,7 @@ export default Api( } // 尝试使用缓存 - const cached = await client.lRange(`api-next:163:${id}`, 0, 7); + const cached = await client.lrange(`api-next:163:${id}`, 0, 7); if (cached.length) { return { @@ -70,7 +70,7 @@ export default Api( const song = await getSong(id); if (song) { - await client.rPush(`api-next:163:${id}`, [ + await client.rpush(`api-next:163:${id}`, song.title, song.artist, song.album, @@ -79,8 +79,11 @@ export default Api( song.lyric, song.sub_lyric, song.link, - song.served - ]); + song.served, + err => { + err && console.log(err); + } + ); await client.expire(`api-next:163:${id}`, 21600); return { diff --git a/src/api/bili.ts b/src/api/bili.ts index a90a7f7..1807a98 100644 --- a/src/api/bili.ts +++ b/src/api/bili.ts @@ -1,9 +1,8 @@ -import { Api, Get, Query, useContext } from "@midwayjs/hooks"; +import { Api, Get, Query, useContext, useInject } from "@midwayjs/hooks"; +import { RedisService } from "@midwayjs/redis"; import { getVideoInfo } from "./utils/bili"; -import { client } from "./utils/redis"; - const availableStyle = ["gray", "white", "black", "shadow"]; export default Api( @@ -11,6 +10,7 @@ export default Api( Query<{ av?: string, bv?: string }>(), async () => { const ctx = useContext(); + const client = await useInject(RedisService); const id = ctx.query.av || ctx.query.bv; const type = "av" in ctx.query ? "av" : "bv" in ctx.query ? "bv" : undefined; @@ -27,7 +27,7 @@ export default Api( await client.incr("api-next:stat:bili"); // 尝试使用缓存 - const cached = await client.lRange(`api-next:bili:${id}`, 0, 3); + const cached = await client.lrange(`api-next:bili:${id}`, 0, 3); let result; @@ -45,11 +45,14 @@ export default Api( return "获取失败"; } - await client.rPush(`api-next:bili:${id}`, [ + await client.rpush(`api-next:bili:${id}`, info.title, info.image, info.desc, - ]); + (err) => { + err && console.log(err); + } + ); await client.expire(`api-next:bili:${id}`, 21600); result = info; diff --git a/src/api/bing.ts b/src/api/bing.ts index 72e01fa..7ca4685 100644 --- a/src/api/bing.ts +++ b/src/api/bing.ts @@ -1,13 +1,14 @@ -import { Api, Get, Query, useContext } from "@midwayjs/hooks"; -import fetch from "isomorphic-unfetch"; +import { Api, Get, Query, useContext, useInject } from "@midwayjs/hooks"; +import { RedisService } from "@midwayjs/redis"; -import { client } from "./utils/redis"; +import fetch from "isomorphic-unfetch"; export default Api( Get(), Query<{ info?: string }>(), async () => { const ctx = useContext(); + const client = await useInject(RedisService); // 设置 Header ctx.set("access-control-allow-origin", "*"); @@ -18,7 +19,7 @@ export default Api( await client.incr("api-next:stat:bing"); // 尝试使用缓存 - const cached = await client.lRange("api-next:bing", 0, 2); + const cached = await client.lrange("api-next:bing", 0, 2); let image; @@ -42,7 +43,9 @@ export default Api( copyright: json.images[0].copyright, }; - await client.rPush("api-next:bing", [image.url, image.copyright]); + await client.rpush("api-next:bing", image.url, image.copyright, err => { + err && console.log(err); + }); await client.expire("api-next:bing", 21600); } diff --git a/src/api/book.ts b/src/api/book.ts deleted file mode 100644 index 7e283ca..0000000 --- a/src/api/book.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Api, Get, Params, Query, useContext } from '@midwayjs/hooks'; -import type { Context } from '@midwayjs/koa'; - -const books = [ - { - id: 1, - title: 'The Lord of the Rings', - }, - { - id: 2, - title: 'The Hobbit', - }, - { - id: 3, - title: 'The Catcher in the Rye', - }, - { - id: 4, - title: 'Gone with the Wind', - }, - { - id: 5, - title: 'To Kill a Mockingbird', - }, - { - id: 6, - title: 'Pride and Prejudice', - }, - { - id: 7, - title: 'The Great Gatsby', - }, - { - id: 8, - title: 'The Scarlet Letter', - }, - { - id: 9, - title: 'The Grapes of Wrath', - }, - { - id: 10, - title: 'The Great Gatsby', - }, -]; - -export const getBookByParams = Api( - Get('/book/:id'), - Params<{ id: string }>(), - async () => { - const ctx = useContext(); - const { id } = ctx.params; - const book = books.find((b) => b.id === Number(id)); - if (!book) { - ctx.throw(400, 'book not found'); - } - return book; - } -); - -export const getBookByQuery = Api( - Get('/book'), - Query<{ id: string }>(), - async () => { - const ctx = useContext(); - const { id } = ctx.query; - const book = books.find((b) => b.id === Number(id)); - if (!book) { - ctx.throw(400, 'book not found'); - } - return book; - } -); diff --git a/src/api/configuration.ts b/src/api/configuration.ts index d4e5d9b..230f628 100644 --- a/src/api/configuration.ts +++ b/src/api/configuration.ts @@ -1,10 +1,24 @@ -import { createConfiguration, hooks } from '@midwayjs/hooks'; -import * as Koa from '@midwayjs/koa'; +import { createConfiguration, hooks } from "@midwayjs/hooks"; +import * as Koa from "@midwayjs/koa"; +import * as dotenv from "dotenv"; +import * as redis from "@midwayjs/redis"; + +const env = dotenv.config(); /** * setup midway server */ export default createConfiguration({ - imports: [Koa, hooks()], - importConfigs: [{ default: { keys: 'session_keys' } }], + imports: [Koa, redis, hooks()], + importConfigs: [{ + default: { + redis: { + client: { + port: Number(env.parsed ?. CACHE_PORT) || 6379, + host: env.parsed ?. CACHE_HOST || "127.0.0.1", + db: 0, + }, + }, + } + }], }); diff --git a/src/api/dji.ts b/src/api/dji.ts index 7f71531..b662326 100644 --- a/src/api/dji.ts +++ b/src/api/dji.ts @@ -1,12 +1,12 @@ -import { Api, Get, Query, useContext } from "@midwayjs/hooks"; - -import { client } from "./utils/redis"; +import { Api, Get, Query, useContext, useInject } from "@midwayjs/hooks"; +import { RedisService } from "@midwayjs/redis"; export default Api( Get(), Query<{ id?: string, loop?: string }>(), async () => { const ctx = useContext(); + const client = await useInject(RedisService); // 增加使用数量 await client.incr("api-next:stat:dji"); diff --git a/src/api/netease.ts b/src/api/netease.ts index 2cd4bfc..871ec8d 100644 --- a/src/api/netease.ts +++ b/src/api/netease.ts @@ -1,14 +1,14 @@ -import { Api, Get, Query, useContext } from '@midwayjs/hooks'; +import { Api, Get, Query, useContext, useInject } from "@midwayjs/hooks"; +import { RedisService } from "@midwayjs/redis"; import { getSong } from "./utils/netease"; -import { client } from './utils/redis'; - export default Api( Get(), Query<{ id?: string, play?: string }>(), async () => { const ctx = useContext(); + const client = await useInject(RedisService); // 设置 Header ctx.set("access-control-allow-origin", "*"); @@ -38,7 +38,7 @@ export default Api( ctx.set("cache-control", "max-age=604800"); // 尝试使用缓存 - const cached = await client.lRange(`api-next:163:${id}`, 0, 7); + const cached = await client.lrange(`api-next:163:${id}`, 0, 7); if (cached.length) { return { @@ -64,7 +64,7 @@ export default Api( const song = await getSong(id); if (song) { - await client.rPush(`api-next:163:${id}`, [ + await client.rpush(`api-next:163:${id}`, song.title, song.artist, song.album, @@ -73,8 +73,11 @@ export default Api( song.lyric, song.sub_lyric, song.link, - song.served - ]); + song.served, + err => { + err && console.log(err); + } + ); await client.expire(`api-next:163:${id}`, 21600); return { diff --git a/src/api/stat.ts b/src/api/stat.ts index d33e119..5ba2064 100644 --- a/src/api/stat.ts +++ b/src/api/stat.ts @@ -1,10 +1,11 @@ -import { Api, Get } from "@midwayjs/hooks"; - -import { client } from "./utils/redis"; +import { Api, Get, useInject } from "@midwayjs/hooks"; +import { RedisService } from "@midwayjs/redis"; export default Api( Get(), async () => { + const client = await useInject(RedisService); + const neteaseStat = await client.get("api-next:stat:netease"); const wallpaperStat = await client.get("api-next:stat:wallpaper"); const biliStat = await client.get("api-next:stat:bili"); diff --git a/src/api/utils/redis.ts b/src/api/utils/redis.ts deleted file mode 100644 index 1ada649..0000000 --- a/src/api/utils/redis.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { createClient, RedisClientType } from 'redis'; - -export let client: RedisClientType; - -(async () => { - client = createClient({ - url: 'redis://127.0.0.1:6379' - }); - - client.on('error', (err) => console.log('Redis Client Error', err)); - - await client.connect(); -})(); diff --git a/src/api/wallpaper.ts b/src/api/wallpaper.ts index 03dcd49..4e179b4 100644 --- a/src/api/wallpaper.ts +++ b/src/api/wallpaper.ts @@ -1,14 +1,16 @@ -import { Api, Get, Query, useContext } from "@midwayjs/hooks"; +import { Api, Get, Query, useContext, useInject } from "@midwayjs/hooks"; +import { RedisService } from "@midwayjs/redis"; import { source } from "./data/wallpaper"; import { random } from "lodash"; -import { client } from "./utils/redis"; export default Api( Get(), Query<{ source: string }>(), async () => { const ctx = useContext(); + const client = await useInject(RedisService); + const sourceResult = source[ctx.query.source || "jsd"]; // 增加使用数量 diff --git a/yarn.lock b/yarn.lock index 64c0940..63cf205 100644 --- a/yarn.lock +++ b/yarn.lock @@ -256,6 +256,11 @@ enabled "2.0.x" kuler "^2.0.0" +"@ioredis/commands@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.1.1.tgz#2ba4299ea624a6bfac15b35f6df90b0015691ec3" + integrity sha512-fsR4P/ROllzf/7lXYyElUJCheWdTJVJvOTps8v9IWKFATxR61ANOlnoPqhH099xYLrJGpc2ZQ28B3rMeUt5VQg== + "@jridgewell/resolve-uri@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" @@ -523,6 +528,13 @@ source-map-support "^0.5.16" typescript "~4.2.4" +"@midwayjs/redis@^3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@midwayjs/redis/-/redis-3.3.2.tgz#ab8c42f9548d27fad17a8b39326259e04122b753" + integrity sha512-cMwSvtFTi2dcks8p60S7ZBRxdJ90Mk/MYX5495FSC/64StkSmEjXXRKhI0Cbvv0g6awMz89JhTXxaoIi8meU7A== + dependencies: + ioredis "^5.0.0" + "@midwayjs/rpc@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@midwayjs/rpc/-/rpc-3.0.0.tgz#49ffb20d8515c0b80afcc46111f89283e29a53cb" @@ -573,41 +585,6 @@ dependencies: "@midwayjs/cookies" "^1.0.2" -"@node-redis/bloom@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@node-redis/bloom/-/bloom-1.0.1.tgz#144474a0b7dc4a4b91badea2cfa9538ce0a1854e" - integrity sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw== - -"@node-redis/client@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@node-redis/client/-/client-1.0.5.tgz#ebac5e2bbf12214042a37621604973a954ede755" - integrity sha512-ESZ3bd1f+od62h4MaBLKum+klVJfA4wAeLHcVQBkoXa1l0viFesOWnakLQqKg+UyrlJhZmXJWtu0Y9v7iTMrig== - dependencies: - cluster-key-slot "1.1.0" - generic-pool "3.8.2" - redis-parser "3.0.0" - yallist "4.0.0" - -"@node-redis/graph@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@node-redis/graph/-/graph-1.0.0.tgz#baf8eaac4a400f86ea04d65ec3d65715fd7951ab" - integrity sha512-mRSo8jEGC0cf+Rm7q8mWMKKKqkn6EAnA9IA2S3JvUv/gaWW/73vil7GLNwion2ihTptAm05I9LkepzfIXUKX5g== - -"@node-redis/json@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-redis/json/-/json-1.0.2.tgz#8ad2d0f026698dc1a4238cc3d1eb099a3bee5ab8" - integrity sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g== - -"@node-redis/search@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@node-redis/search/-/search-1.0.5.tgz#96050007eb7c50a7e47080320b4f12aca8cf94c4" - integrity sha512-MCOL8iCKq4v+3HgEQv8zGlSkZyXSXtERgrAJ4TSryIG/eLFy84b57KmNNa/V7M1Q2Wd2hgn2nPCGNcQtk1R1OQ== - -"@node-redis/time-series@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@node-redis/time-series/-/time-series-1.0.2.tgz#5dd3638374edd85ebe0aa6b0e87addc88fb9df69" - integrity sha512-HGQ8YooJ8Mx7l28tD7XjtB3ImLEjlUxG1wC1PAjxu6hPJqjPshUZxAICzDqDjtIbhDTf48WXXUcx8TQJB1XTKA== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -849,6 +826,13 @@ resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.2.tgz#7315b4c4c54f82d13fa61c228ec5c2ea5cc9e0e1" integrity sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w== +"@types/ioredis@^4.28.10": + version "4.28.10" + resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.28.10.tgz#40ceb157a4141088d1394bb87c98ed09a75a06ff" + integrity sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ== + dependencies: + "@types/node" "*" + "@types/js-cookie@^2.x.x": version "2.2.7" resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.7.tgz#226a9e31680835a6188e887f3988e60c04d3f6a3" @@ -1237,7 +1221,7 @@ cls-hooked@^4.2.2: emitter-listener "^1.0.1" semver "^5.4.1" -cluster-key-slot@1.1.0: +cluster-key-slot@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== @@ -1409,7 +1393,7 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1436,6 +1420,11 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +denque@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.0.1.tgz#bcef4c1b80dc32efe97515744f21a4229ab8934a" + integrity sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ== + depd@2.0.0, depd@^2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -1479,6 +1468,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dotenv@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" + integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -1786,11 +1780,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -generic-pool@3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.8.2.tgz#aab4f280adb522fdfbdc5e5b64d718d3683f04e9" - integrity sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg== - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -1954,6 +1943,21 @@ intersection-observer@^0.12.0: resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.0.tgz#6c84628f67ce8698e5f9ccf857d97718745837aa" integrity sha512-2Vkz8z46Dv401zTWudDGwO7KiGHNDkMv417T5ItcNYfmvHR/1qCTVBO9vwH8zZmQ0WkA/1ARwpysR9bsnop4NQ== +ioredis@^5.0.0: + version "5.0.4" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.0.4.tgz#0d4abfd818adfc5ef5029fddac4b8f503a1433b7" + integrity sha512-qFJw3MnPNsJF1lcIOP3vztbsasOXK3nDdNAgjQj7t7/Bn/w10PGchTOpqylQNxjzPbLoYDu34LjeJtSWiKBntQ== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.0.1" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + is-arrayish@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" @@ -2160,6 +2164,16 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.isarguments@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -2526,30 +2540,18 @@ redaxios@^0.4.1: resolved "https://registry.yarnpkg.com/redaxios/-/redaxios-0.4.1.tgz#a46fd53b533ed76d8619d9e6d595b95543855195" integrity sha512-+Jhh1j8/H0KBro+Hih/MrDEJ1PICaU10JA6iu5b3+uvgRI+5n2M7qpMNXq7eC/0fspP0tTq49ONXlGWFdRoNLg== -redis-errors@^1.0.0: +redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= -redis-parser@3.0.0: +redis-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= dependencies: redis-errors "^1.0.0" -redis@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/redis/-/redis-4.0.6.tgz#a2ded4d9f4f4bad148e54781051618fc684cd858" - integrity sha512-IaPAxgF5dV0jx+A9l6yd6R9/PAChZIoAskDVRzUODeLDNhsMlq7OLLTmu0AwAr0xjrJ1bibW5xdpRwqIQ8Q0Xg== - dependencies: - "@node-redis/bloom" "1.0.1" - "@node-redis/client" "1.0.5" - "@node-redis/graph" "1.0.0" - "@node-redis/json" "1.0.2" - "@node-redis/search" "1.0.5" - "@node-redis/time-series" "1.0.2" - reflect-metadata@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" @@ -2727,6 +2729,11 @@ stack-trace@0.0.x: resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= +standard-as-callback@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" + integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== + statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -3013,11 +3020,6 @@ ws@^7.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== -yallist@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - ylru@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.3.2.tgz#0de48017473275a4cbdfc83a1eaf67c01af8a785"