vona-module-a-redis 5.0.32 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +0 -0
- package/dist/.metadata/index.d.ts +1 -0
- package/dist/.metadata/index.d.ts.map +1 -0
- package/dist/.metadata/this.d.ts +1 -0
- package/dist/.metadata/this.d.ts.map +1 -0
- package/dist/bean/bean.redis.d.ts +2 -1
- package/dist/bean/bean.redis.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/redis.d.ts +1 -0
- package/dist/lib/redis.d.ts.map +1 -0
- package/dist/main.d.ts +2 -1
- package/dist/main.d.ts.map +1 -0
- package/dist/service/redis.d.ts +1 -0
- package/dist/service/redis.d.ts.map +1 -0
- package/dist/service/redisClient_.d.ts +2 -1
- package/dist/service/redisClient_.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/redis.d.ts +1 -0
- package/dist/types/redis.d.ts.map +1 -0
- package/package.json +25 -20
- package/src/.metadata/index.ts +100 -0
- package/src/.metadata/this.ts +2 -0
- package/src/bean/bean.redis.ts +18 -0
- package/src/index.ts +3 -0
- package/src/lib/index.ts +1 -0
- package/src/lib/redis.ts +10 -0
- package/src/main.ts +20 -0
- package/src/service/redis.ts +45 -0
- package/src/service/redisClient_.ts +43 -0
- package/src/types/index.ts +1 -0
- package/src/types/redis.ts +39 -0
package/LICENSE
CHANGED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,kBAAkB;AAClB,cAAc,uBAAuB,CAAC;AAEtC,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAE7B,UAAiB,SAAS;KAGzB;CACR;AACD,gBAAgB;AAChB,kBAAkB;AAClB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,iBAAiB;QAChC,OAAO,EAAE,SAAS,CAAC;KACpB;CACF;AACD,gBAAgB;AAChB,qBAAqB;AACrB,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAE3C,OAAO,oBAAoB,CAAC;AAC5B,OAAO,QAAQ,oBAAoB,CAAC;IAEhC,UAAiB,cAAc;QAC7B,eAAe,EAAE,KAAK,CAAC;KACxB;CAGJ;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAE7B,UAAiB,YAAY;KAG5B;IAEC,UAAiB,YAAY;QAC3B,IAAI,aAAa,IAAI,uBAAuB,CAAC;QAC7C,IAAI,UAAU,IAAI,eAAe,CAAC;KAEnC;CACV;AACD,mBAAmB;AACnB,qBAAqB;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,YAAY,CAAC;CACvB;AACD,mBAAmB;AACnB,qBAAqB;AAErB,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,kBAAkB;QACjC,uBAAuB,EAAE,YAAY,CAAC;KACvC;CACF;AACD,mBAAmB;AACnB,kBAAkB;AAClB,cAAc,YAAY,CAAC;AAC3B,gBAAgB;AAChB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAGzD,qBACa,iBAAkB,SAAQ,aAAa;CAAG;AAEvD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;CACvB;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,iBAAiB,CAAC;KAC9B;IAED,UAAiB,mBAAmB;QAClC,KAAK,EAAE,iBAAiB,CAAC;KAC1B;CAOF;AACD,iBAAiB"}
|
package/dist/.metadata/this.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { IRedisClientRecord } from '../types/redis.ts';
|
|
2
1
|
import { BeanBase } from 'vona';
|
|
2
|
+
import type { IRedisClientRecord } from '../types/redis.ts';
|
|
3
3
|
import { ServiceRedisClient } from '../service/redisClient_.ts';
|
|
4
4
|
export declare class BeanRedis extends BeanBase {
|
|
5
5
|
getClient(clientName?: keyof IRedisClientRecord): ServiceRedisClient;
|
|
6
6
|
get(clientName?: keyof IRedisClientRecord): import("ioredis").default;
|
|
7
7
|
}
|
|
8
|
+
//# sourceMappingURL=bean.redis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bean.redis.d.ts","sourceRoot":"","sources":["../../src/bean/bean.redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,qBACa,SAAU,SAAQ,QAAQ;IACrC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,kBAAkB;IAI/C,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,kBAAkB;CAI1C"}
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -118,3 +118,4 @@ ScopeModuleARedis = __decorate([Scope(), BeanInfo({
|
|
|
118
118
|
/** scope: end */
|
|
119
119
|
|
|
120
120
|
export { BeanRedis, Main, ScopeModuleARedis, ServiceRedis, ServiceRedisClient, configDefault, getRedisClientKeyPrefix, prepareRedisClientKeyPrefix };
|
|
121
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/lib/redis.ts","../src/service/redisClient_.ts","../src/bean/bean.redis.ts","../src/service/redis.ts","../src/main.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["getRedisClientKeyPrefix","clientName","app","mode","includes","configMeta","name","prepareRedisClientKeyPrefix","keyPrefix","ServiceRedisClient","BeanBase","constructor","args","_redisInstance","instance","__init__","_createClient","__dispose__","disconnect","configRedis","config","redis","configClient","clients","Error","cast","sentinels","Redis","nodes","Cluster","configNode","deepExtend","base","__decorate","Service","__z_BeanInfo","module","BeanRedis","getClient","bean","_getBeanSelector","get","client","Bean","ServiceRedis","clearAllData","_clearRedisKeys","_clientName","startsWith","pattern","options","keys","keysDel","fullKey","key","substring","length","push","del","Main","BeanSimple","moduleLoading","_configDefault","combineConfigDefault","configDefault","moduleLoaded","configLoaded","_config","_app","ScopeModuleARedis","BeanScopeBase","Scope"],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
package/dist/lib/redis.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { VonaApplication } from 'vona';
|
|
2
2
|
export declare function getRedisClientKeyPrefix(clientName: string, app: VonaApplication): string;
|
|
3
3
|
export declare function prepareRedisClientKeyPrefix(keyPrefix: string | true | undefined, clientName: string, app: VonaApplication): string | undefined;
|
|
4
|
+
//# sourceMappingURL=redis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/lib/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5C,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,MAAM,CAGxF;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAE9I"}
|
package/dist/main.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { IModuleMain, PowerPartial, VonaApplication } from 'vona';
|
|
2
|
-
import type { ConfigRedis } from './types/redis.ts';
|
|
3
2
|
import { BeanSimple } from 'vona';
|
|
3
|
+
import type { ConfigRedis } from './types/redis.ts';
|
|
4
4
|
export declare class Main extends BeanSimple implements IModuleMain {
|
|
5
5
|
moduleLoading(): Promise<void>;
|
|
6
6
|
moduleLoaded(): Promise<void>;
|
|
7
7
|
configLoaded(_config: any): Promise<void>;
|
|
8
8
|
}
|
|
9
9
|
export declare function configDefault(_app: VonaApplication): Promise<PowerPartial<ConfigRedis>>;
|
|
10
|
+
//# sourceMappingURL=main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAoC,MAAM,MAAM,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,qBAAa,IAAK,SAAQ,UAAW,YAAW,WAAW;IACnD,aAAa;IAKb,YAAY;IAEZ,YAAY,CAAC,OAAO,EAAE,GAAG;CAChC;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAE7F"}
|
package/dist/service/redis.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/service/redis.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAOhC,qBACa,YAAa,SAAQ,QAAQ;IAClC,YAAY;YAoBJ,eAAe;CAa9B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { IRedisClientRecord } from '../types/redis.ts';
|
|
2
1
|
import { Redis } from 'ioredis';
|
|
3
2
|
import { BeanBase } from 'vona';
|
|
3
|
+
import type { IRedisClientRecord } from '../types/redis.ts';
|
|
4
4
|
export declare class ServiceRedisClient extends BeanBase {
|
|
5
5
|
private _redisInstance;
|
|
6
6
|
get instance(): Redis;
|
|
@@ -8,3 +8,4 @@ export declare class ServiceRedisClient extends BeanBase {
|
|
|
8
8
|
protected __dispose__(): Promise<void>;
|
|
9
9
|
private _createClient;
|
|
10
10
|
}
|
|
11
|
+
//# sourceMappingURL=redisClient_.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redisClient_.d.ts","sourceRoot":"","sources":["../../src/service/redisClient_.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAoB,MAAM,MAAM,CAAC;AAGlD,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIhF,qBACa,kBAAmB,SAAQ,QAAQ;IAC9C,OAAO,CAAC,cAAc,CAAQ;IAE9B,IAAI,QAAQ,IAAI,KAAK,CAEpB;IAED,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,kBAAkB;cAKvC,WAAW;IAI3B,OAAO,CAAC,aAAa;CAetB"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
package/dist/types/redis.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/types/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,KAAK,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;IAC1E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,kBAAkB,EAAE,mBAAmB,GAAG,kBAAkB,CAAC,CAAC;CACrF;AAED,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,UAAU;QACzB,KAAK,EAAE,WAAW,CAAC;KACpB;IAED,UAAiB,aAAa;QAC5B,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;QACvC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;QACvC,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3C,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;KACtC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-module-a-redis",
|
|
3
|
-
"
|
|
4
|
-
"version": "5.0.32",
|
|
5
|
-
"title": "a-redis",
|
|
6
|
-
"vonaModule": {
|
|
7
|
-
"dependencies": {},
|
|
8
|
-
"globalDependencies": {
|
|
9
|
-
"ioredis": true
|
|
10
|
-
}
|
|
11
|
-
},
|
|
3
|
+
"version": "5.1.1",
|
|
12
4
|
"description": "",
|
|
13
|
-
"author": "",
|
|
14
5
|
"keywords": [
|
|
15
6
|
"Vona Module"
|
|
16
7
|
],
|
|
8
|
+
"author": "",
|
|
9
|
+
"files": [
|
|
10
|
+
"assets",
|
|
11
|
+
"dist",
|
|
12
|
+
"src"
|
|
13
|
+
],
|
|
14
|
+
"type": "module",
|
|
17
15
|
"exports": {
|
|
18
16
|
".": {
|
|
19
17
|
"types": [
|
|
@@ -24,19 +22,26 @@
|
|
|
24
22
|
},
|
|
25
23
|
"./package.json": "./package.json"
|
|
26
24
|
},
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
|
|
25
|
+
"scripts": {
|
|
26
|
+
"clean": "rimraf dist tsconfig.build.tsbuildinfo",
|
|
27
|
+
"tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
|
|
28
|
+
"prepublishOnly": "npm run tsc:publish",
|
|
29
|
+
"prepack": "clean-package",
|
|
30
|
+
"postpack": "clean-package restore && npm run clean"
|
|
31
|
+
},
|
|
31
32
|
"dependencies": {
|
|
32
|
-
"ioredis": "^5.9.
|
|
33
|
+
"ioredis": "^5.9.3"
|
|
33
34
|
},
|
|
34
35
|
"devDependencies": {
|
|
35
36
|
"clean-package": "^2.2.0",
|
|
36
37
|
"rimraf": "^6.0.1"
|
|
37
38
|
},
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
"title": "a-redis",
|
|
40
|
+
"vonaModule": {
|
|
41
|
+
"dependencies": {},
|
|
42
|
+
"globalDependencies": {
|
|
43
|
+
"ioredis": true
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"gitHead": "991189da4443b789fcf77872990b901ccf43bccb"
|
|
47
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// eslint-disable
|
|
2
|
+
/** bean: begin */
|
|
3
|
+
export * from '../bean/bean.redis.ts';
|
|
4
|
+
|
|
5
|
+
import 'vona';
|
|
6
|
+
declare module 'vona' {
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
declare module 'vona-module-a-redis' {
|
|
11
|
+
|
|
12
|
+
export interface BeanRedis {
|
|
13
|
+
/** @internal */
|
|
14
|
+
get scope(): ScopeModuleARedis;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/** bean: end */
|
|
18
|
+
/** bean: begin */
|
|
19
|
+
import type { BeanRedis } from '../bean/bean.redis.ts';
|
|
20
|
+
import 'vona';
|
|
21
|
+
declare module 'vona' {
|
|
22
|
+
export interface IBeanRecordGlobal {
|
|
23
|
+
'redis': BeanRedis;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** bean: end */
|
|
27
|
+
/** service: begin */
|
|
28
|
+
export * from '../service/redis.ts';
|
|
29
|
+
export * from '../service/redisClient_.ts';
|
|
30
|
+
|
|
31
|
+
import 'vona-module-a-bean';
|
|
32
|
+
declare module 'vona-module-a-bean' {
|
|
33
|
+
|
|
34
|
+
export interface IServiceRecord {
|
|
35
|
+
'a-redis:redis': never;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
declare module 'vona-module-a-redis' {
|
|
41
|
+
|
|
42
|
+
export interface ServiceRedis {
|
|
43
|
+
/** @internal */
|
|
44
|
+
get scope(): ScopeModuleARedis;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface ServiceRedis {
|
|
48
|
+
get $beanFullName(): 'a-redis.service.redis';
|
|
49
|
+
get $onionName(): 'a-redis:redis';
|
|
50
|
+
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** service: end */
|
|
54
|
+
/** service: begin */
|
|
55
|
+
import type { ServiceRedis } from '../service/redis.ts';
|
|
56
|
+
export interface IModuleService {
|
|
57
|
+
'redis': ServiceRedis;
|
|
58
|
+
}
|
|
59
|
+
/** service: end */
|
|
60
|
+
/** service: begin */
|
|
61
|
+
|
|
62
|
+
import 'vona';
|
|
63
|
+
declare module 'vona' {
|
|
64
|
+
export interface IBeanRecordGeneral {
|
|
65
|
+
'a-redis.service.redis': ServiceRedis;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** service: end */
|
|
69
|
+
/** main: begin */
|
|
70
|
+
export * from '../main.ts';
|
|
71
|
+
/** main: end */
|
|
72
|
+
/** scope: begin */
|
|
73
|
+
import { BeanScopeBase, type BeanScopeUtil } from 'vona';
|
|
74
|
+
import { Scope } from 'vona-module-a-bean';
|
|
75
|
+
|
|
76
|
+
@Scope()
|
|
77
|
+
export class ScopeModuleARedis extends BeanScopeBase {}
|
|
78
|
+
|
|
79
|
+
export interface ScopeModuleARedis {
|
|
80
|
+
util: BeanScopeUtil;
|
|
81
|
+
service: IModuleService;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
import 'vona';
|
|
85
|
+
declare module 'vona' {
|
|
86
|
+
export interface IBeanScopeRecord {
|
|
87
|
+
'a-redis': ScopeModuleARedis;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface IBeanScopeContainer {
|
|
91
|
+
redis: ScopeModuleARedis;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
}
|
|
100
|
+
/** scope: end */
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BeanBase } from 'vona';
|
|
2
|
+
import { Bean } from 'vona-module-a-bean';
|
|
3
|
+
|
|
4
|
+
import type { IRedisClientRecord } from '../types/redis.ts';
|
|
5
|
+
|
|
6
|
+
import { ServiceRedisClient } from '../service/redisClient_.ts';
|
|
7
|
+
|
|
8
|
+
@Bean()
|
|
9
|
+
export class BeanRedis extends BeanBase {
|
|
10
|
+
getClient(clientName?: keyof IRedisClientRecord) {
|
|
11
|
+
return this.app.bean._getBeanSelector(ServiceRedisClient, clientName ?? 'default');
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get(clientName?: keyof IRedisClientRecord) {
|
|
15
|
+
const client = this.getClient(clientName);
|
|
16
|
+
return client.instance;
|
|
17
|
+
}
|
|
18
|
+
}
|
package/src/index.ts
ADDED
package/src/lib/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './redis.ts';
|
package/src/lib/redis.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { VonaApplication } from 'vona';
|
|
2
|
+
|
|
3
|
+
export function getRedisClientKeyPrefix(clientName: string, app: VonaApplication): string {
|
|
4
|
+
const mode = ['test', 'dev'].includes(app.configMeta.mode) ? '_local' : '';
|
|
5
|
+
return `${clientName}_${app.name}${mode}:`;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function prepareRedisClientKeyPrefix(keyPrefix: string | true | undefined, clientName: string, app: VonaApplication): string | undefined {
|
|
9
|
+
return keyPrefix === true ? getRedisClientKeyPrefix(clientName, app) : keyPrefix;
|
|
10
|
+
}
|
package/src/main.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IModuleMain, PowerPartial, VonaApplication } from 'vona';
|
|
2
|
+
|
|
3
|
+
import { BeanSimple, combineConfigDefault, deepExtend } from 'vona';
|
|
4
|
+
|
|
5
|
+
import type { ConfigRedis } from './types/redis.ts';
|
|
6
|
+
|
|
7
|
+
export class Main extends BeanSimple implements IModuleMain {
|
|
8
|
+
async moduleLoading() {
|
|
9
|
+
const _configDefault = await combineConfigDefault<ConfigRedis>(this.app, configDefault);
|
|
10
|
+
this.app.config.redis = deepExtend({}, _configDefault, this.app.config.redis);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async moduleLoaded() {}
|
|
14
|
+
|
|
15
|
+
async configLoaded(_config: any) {}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export async function configDefault(_app: VonaApplication): Promise<PowerPartial<ConfigRedis>> {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Redis } from 'ioredis';
|
|
2
|
+
|
|
3
|
+
import { BeanBase } from 'vona';
|
|
4
|
+
import { Service } from 'vona-module-a-bean';
|
|
5
|
+
|
|
6
|
+
import type { IRedisClientRecord } from '../types/redis.ts';
|
|
7
|
+
|
|
8
|
+
import { getRedisClientKeyPrefix, prepareRedisClientKeyPrefix } from '../lib/redis.ts';
|
|
9
|
+
|
|
10
|
+
@Service()
|
|
11
|
+
export class ServiceRedis extends BeanBase {
|
|
12
|
+
async clearAllData() {
|
|
13
|
+
const app = this.app;
|
|
14
|
+
// clear keys
|
|
15
|
+
// await this._clearRedisKeys(app.bean.redis.get('limiter'), `b_${app.name}:*`);
|
|
16
|
+
await this._clearRedisKeys(app.bean.redis.get('queue'), `${getRedisClientKeyPrefix('bull', app)}*`);
|
|
17
|
+
// broadcast channel has subscribed
|
|
18
|
+
// await _clearRedisKeys(app.redis.get('broadcast'), `${getRedisClientKeyPrefix('broadcast', app)}*`);
|
|
19
|
+
for (const _clientName in app.config.redis.clients) {
|
|
20
|
+
const clientName = _clientName as keyof IRedisClientRecord;
|
|
21
|
+
if (['limiter', 'queue', 'broadcast'].includes(clientName)) continue;
|
|
22
|
+
if (clientName.startsWith('redlock')) {
|
|
23
|
+
await this._clearRedisKeys(app.bean.redis.get(clientName), `${getRedisClientKeyPrefix('redlock', app)}*`);
|
|
24
|
+
} else {
|
|
25
|
+
const client = app.config.redis.clients[clientName];
|
|
26
|
+
const keyPrefix = prepareRedisClientKeyPrefix(client.keyPrefix, clientName, this.app);
|
|
27
|
+
await this._clearRedisKeys(app.bean.redis.get(clientName), `${keyPrefix}*`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
private async _clearRedisKeys(redis: Redis, pattern: string) {
|
|
33
|
+
if (!redis) return;
|
|
34
|
+
const keyPrefix = redis.options.keyPrefix;
|
|
35
|
+
const keys = await redis.keys(pattern);
|
|
36
|
+
const keysDel: string[] = [];
|
|
37
|
+
for (const fullKey of keys) {
|
|
38
|
+
const key = keyPrefix ? fullKey.substring(keyPrefix.length) : fullKey;
|
|
39
|
+
keysDel.push(key);
|
|
40
|
+
}
|
|
41
|
+
if (keysDel.length > 0) {
|
|
42
|
+
await redis.del(keysDel);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { RedisOptions } from 'ioredis';
|
|
2
|
+
|
|
3
|
+
import { Redis } from 'ioredis';
|
|
4
|
+
import { BeanBase, cast, deepExtend } from 'vona';
|
|
5
|
+
import { Service } from 'vona-module-a-bean';
|
|
6
|
+
|
|
7
|
+
import type { ConfigRedisCluster, IRedisClientRecord } from '../types/redis.ts';
|
|
8
|
+
|
|
9
|
+
import { prepareRedisClientKeyPrefix } from '../lib/redis.ts';
|
|
10
|
+
|
|
11
|
+
@Service()
|
|
12
|
+
export class ServiceRedisClient extends BeanBase {
|
|
13
|
+
private _redisInstance: Redis;
|
|
14
|
+
|
|
15
|
+
get instance(): Redis {
|
|
16
|
+
return this._redisInstance;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
protected __init__(clientName: keyof IRedisClientRecord) {
|
|
20
|
+
// instance
|
|
21
|
+
this._redisInstance = this._createClient(clientName);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
protected async __dispose__() {
|
|
25
|
+
await this._redisInstance?.disconnect();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private _createClient(clientName: keyof IRedisClientRecord): Redis {
|
|
29
|
+
const configRedis = this.app.config.redis;
|
|
30
|
+
const configClient = configRedis.clients[clientName];
|
|
31
|
+
if (!configClient) throw new Error(`redis client not found: ${clientName}`);
|
|
32
|
+
if (cast<RedisOptions>(configClient).sentinels) {
|
|
33
|
+
// sentinels
|
|
34
|
+
return new Redis(configClient as RedisOptions);
|
|
35
|
+
} else if (cast<ConfigRedisCluster>(configClient).nodes) {
|
|
36
|
+
return new Redis.Cluster(cast<ConfigRedisCluster>(configClient).nodes, cast<ConfigRedisCluster>(configClient)) as unknown as Redis;
|
|
37
|
+
} else {
|
|
38
|
+
const keyPrefix = prepareRedisClientKeyPrefix(configClient.keyPrefix, clientName, this.app);
|
|
39
|
+
const configNode = deepExtend({}, configRedis.base, configClient, { keyPrefix });
|
|
40
|
+
return new Redis(configNode);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './redis.ts';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ClusterOptions, RedisOptions } from 'ioredis';
|
|
2
|
+
|
|
3
|
+
export interface IRedisClientRecord {
|
|
4
|
+
default: never;
|
|
5
|
+
redlock: never;
|
|
6
|
+
queue: never;
|
|
7
|
+
broadcast: never;
|
|
8
|
+
cache: never;
|
|
9
|
+
io: never;
|
|
10
|
+
summer: never;
|
|
11
|
+
model: never;
|
|
12
|
+
worker: never;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface IRedisClientOptions extends Omit<RedisOptions, 'keyPrefix'> {
|
|
16
|
+
keyPrefix?: string | true;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface ConfigRedisCluster extends ClusterOptions {
|
|
20
|
+
nodes: RedisOptions[];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface ConfigRedis {
|
|
24
|
+
base: RedisOptions;
|
|
25
|
+
clients: Record<keyof IRedisClientRecord, IRedisClientOptions | ConfigRedisCluster>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
declare module 'vona' {
|
|
29
|
+
export interface VonaConfig {
|
|
30
|
+
redis: ConfigRedis;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface VonaConfigEnv {
|
|
34
|
+
REDIS_DEFAULT_HOST: string | undefined;
|
|
35
|
+
REDIS_DEFAULT_PORT: string | undefined;
|
|
36
|
+
REDIS_DEFAULT_PASSWORD: string | undefined;
|
|
37
|
+
REDIS_DEFAULT_DB: string | undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|