@podkopaev-tech/nest-infra-modules 0.0.1 → 0.0.2
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/dist/index.d.ts +1 -1
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/dist/src/decorators/index.d.ts +1 -0
- package/dist/src/decorators/index.js +18 -0
- package/dist/src/decorators/index.js.map +1 -0
- package/dist/src/module.d.ts +0 -0
- package/dist/src/module.js +1 -0
- package/dist/src/module.js.map +1 -0
- package/dist/src/modules/cache/cache.module.d.ts +7 -0
- package/dist/src/modules/cache/cache.module.js +38 -0
- package/dist/src/modules/cache/cache.module.js.map +1 -0
- package/dist/src/modules/cache/decorators/index.d.ts +1 -0
- package/dist/src/modules/cache/decorators/index.js +18 -0
- package/dist/src/modules/cache/decorators/index.js.map +1 -0
- package/dist/src/modules/cache/decorators/memoize-async.decorator.d.ts +17 -0
- package/dist/src/modules/cache/decorators/memoize-async.decorator.js +135 -0
- package/dist/src/modules/cache/decorators/memoize-async.decorator.js.map +1 -0
- package/dist/src/modules/cache/index.d.ts +3 -0
- package/dist/src/modules/cache/index.js +20 -0
- package/dist/src/modules/cache/index.js.map +1 -0
- package/dist/src/modules/cache/types.d.ts +4 -0
- package/dist/src/modules/cache/types.js +3 -0
- package/dist/src/modules/cache/types.js.map +1 -0
- package/dist/src/modules/index.d.ts +2 -0
- package/dist/src/modules/index.js +19 -0
- package/dist/src/modules/index.js.map +1 -0
- package/dist/src/modules/redis/index.d.ts +2 -0
- package/dist/src/modules/redis/index.js +19 -0
- package/dist/src/modules/redis/index.js.map +1 -0
- package/dist/src/modules/redis/redis.module.d.ts +5 -0
- package/dist/src/modules/redis/redis.module.js +26 -0
- package/dist/src/modules/redis/redis.module.js.map +1 -0
- package/dist/src/modules/redis/types.d.ts +6 -0
- package/dist/src/modules/redis/types.js +3 -0
- package/dist/src/modules/redis/types.js.map +1 -0
- package/dist/src/types.d.ts +2 -0
- package/dist/src/types.js +3 -0
- package/dist/src/types.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -1
- package/dist/src/app.controller.d.ts +0 -6
- package/dist/src/app.controller.js +0 -34
- package/dist/src/app.controller.js.map +0 -1
- package/dist/src/app.module.d.ts +0 -2
- package/dist/src/app.module.js +0 -23
- package/dist/src/app.module.js.map +0 -1
- package/dist/src/app.service.d.ts +0 -3
- package/dist/src/app.service.js +0 -20
- package/dist/src/app.service.js.map +0 -1
- package/dist/src/main.d.ts +0 -1
- package/dist/src/main.js +0 -10
- package/dist/src/main.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './src/modules';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports
|
|
4
|
-
exports.TEST_MODULE_EXPORT = 'TEST_MODULE_EXPORT';
|
|
17
|
+
__exportStar(require("./src/modules"), exports);
|
|
5
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,gDAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../modules/cache/decorators/memoize-async.decorator';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("../modules/cache/decorators/memoize-async.decorator"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sFAAoE"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import { CacheModuleOptions } from './types';
|
|
3
|
+
export declare class CacheModule {
|
|
4
|
+
static isEnabled: boolean;
|
|
5
|
+
static redisClientToken: string | symbol;
|
|
6
|
+
static forRootAsync(options: CacheModuleOptions): DynamicModule;
|
|
7
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CacheModule = void 0;
|
|
4
|
+
const cache_manager_1 = require("@nestjs/cache-manager");
|
|
5
|
+
const redis_1 = require("@keyv/redis");
|
|
6
|
+
class CacheModule {
|
|
7
|
+
static forRootAsync(options) {
|
|
8
|
+
this.redisClientToken = options.redisToken;
|
|
9
|
+
return {
|
|
10
|
+
module: CacheModule,
|
|
11
|
+
global: true,
|
|
12
|
+
imports: [
|
|
13
|
+
cache_manager_1.CacheModule.registerAsync({
|
|
14
|
+
isGlobal: true,
|
|
15
|
+
useFactory: (redisClient) => {
|
|
16
|
+
if (!redisClient) {
|
|
17
|
+
return {
|
|
18
|
+
ttl: options.defaultTtl,
|
|
19
|
+
stores: undefined,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
ttl: options.defaultTtl,
|
|
24
|
+
stores: [
|
|
25
|
+
(0, redis_1.createKeyv)(redisClient.options),
|
|
26
|
+
],
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
inject: [options.redisToken],
|
|
30
|
+
}),
|
|
31
|
+
],
|
|
32
|
+
exports: [],
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.CacheModule = CacheModule;
|
|
37
|
+
CacheModule.isEnabled = false;
|
|
38
|
+
//# sourceMappingURL=cache.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.module.js","sourceRoot":"","sources":["../../../../src/modules/cache/cache.module.ts"],"names":[],"mappings":";;;AACA,yDAAuE;AAGvE,uCAA6D;AAE7D,MAAa,WAAW;IAItB,MAAM,CAAC,YAAY,CAAC,OAA2B;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;QAC3C,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,2BAAe,CAAC,aAAa,CAAC;oBAC5B,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,WAAwB,EAAE,EAAE;wBACvC,IAAI,CAAC,WAAW,EAAE,CAAC;4BACjB,OAAO;gCACL,GAAG,EAAE,OAAO,CAAC,UAAU;gCACvB,MAAM,EAAE,SAAS;6BAClB,CAAC;wBACJ,CAAC;wBACD,OAAO;4BACL,GAAG,EAAE,OAAO,CAAC,UAAU;4BACvB,MAAM,EAAE;gCACN,IAAA,kBAAU,EACR,WAAW,CAAC,OAAwC,CACrD;6BACF;yBACF,CAAC;oBACJ,CAAC;oBACD,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;iBAC7B,CAAC;aACH;YACD,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;;AAjCH,kCAkCC;AAjCQ,qBAAS,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './memoize-async.decorator';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./memoize-async.decorator"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/cache/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type Method<D, A extends any[] = any[]> = (...args: A) => D;
|
|
2
|
+
type Memoizable<T, D> = (target: T, propertyName: string | symbol | keyof T, descriptor: TypedPropertyDescriptor<Method<D>>) => TypedPropertyDescriptor<Method<D>>;
|
|
3
|
+
type AsyncMemoizable<T, D> = Memoizable<T, Promise<D>>;
|
|
4
|
+
type ClassWithConstructor = new (...args: any[]) => any;
|
|
5
|
+
interface AsyncMemoizeConfig<T = any, D = any, A extends any[] = any[]> {
|
|
6
|
+
lock?: {
|
|
7
|
+
duration?: number;
|
|
8
|
+
retryCount?: number;
|
|
9
|
+
retryDelay?: number;
|
|
10
|
+
};
|
|
11
|
+
keyResolver?: ((this: T, ...args: A) => string) | string;
|
|
12
|
+
expirationTimeMs?: number | ((this: T, data: D) => number);
|
|
13
|
+
memoizeIf?: (this: T, ...args: A) => boolean;
|
|
14
|
+
cacheWrapperClass?: ClassWithConstructor;
|
|
15
|
+
}
|
|
16
|
+
export declare function MemoizeAsync<T = any, D = any>(inputs?: AsyncMemoizeConfig<T, D, any[]>): AsyncMemoizable<T, D>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoizeAsync = MemoizeAsync;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const cache_manager_1 = require("@nestjs/cache-manager");
|
|
6
|
+
const redlock_1 = require("redlock");
|
|
7
|
+
const ioredis_1 = require("@nestjs-modules/ioredis");
|
|
8
|
+
const memoizeTypesPrefix = '__memoize-types:';
|
|
9
|
+
const memoizeTypes = new Map([
|
|
10
|
+
[memoizeTypesPrefix + 'null', null],
|
|
11
|
+
[null, memoizeTypesPrefix + 'null'],
|
|
12
|
+
[memoizeTypesPrefix + 'undefined', undefined],
|
|
13
|
+
[undefined, memoizeTypesPrefix + 'undefined'],
|
|
14
|
+
]);
|
|
15
|
+
function memoizeAsyncify(originalMethod, inputs) {
|
|
16
|
+
const promCache = new Map();
|
|
17
|
+
const resolvedConfig = {
|
|
18
|
+
expirationTimeMs: 0,
|
|
19
|
+
...(inputs || {}),
|
|
20
|
+
lock: {
|
|
21
|
+
duration: 10000,
|
|
22
|
+
retryCount: 3,
|
|
23
|
+
retryDelay: 250,
|
|
24
|
+
...(inputs?.lock || {}),
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
return async function (...args) {
|
|
28
|
+
const redis = this._redisService;
|
|
29
|
+
const cache = this._cacheManager;
|
|
30
|
+
if (!this._redlock) {
|
|
31
|
+
this._redlock = new redlock_1.default([redis], {
|
|
32
|
+
retryCount: resolvedConfig.lock.retryCount,
|
|
33
|
+
retryDelay: resolvedConfig.lock.retryDelay,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const redlock = this._redlock;
|
|
37
|
+
const keyResolver = typeof resolvedConfig.keyResolver === 'string'
|
|
38
|
+
? () => resolvedConfig.keyResolver
|
|
39
|
+
: resolvedConfig.keyResolver;
|
|
40
|
+
let key;
|
|
41
|
+
if (keyResolver) {
|
|
42
|
+
key = keyResolver.apply(this, args);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
key = `${this.constructor.name}:${originalMethod.name}:${JSON.stringify(args)}`;
|
|
46
|
+
}
|
|
47
|
+
if (promCache.has(key)) {
|
|
48
|
+
return promCache.get(key);
|
|
49
|
+
}
|
|
50
|
+
const lockKey = `lock:${key}`;
|
|
51
|
+
let finalLock;
|
|
52
|
+
try {
|
|
53
|
+
finalLock = await redlock.acquire([lockKey], resolvedConfig.lock.duration);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error(`Error while acquiring lock for key: ${key}`);
|
|
57
|
+
console.error(error);
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
const prom = new Promise(async (resolve, reject) => {
|
|
61
|
+
let data;
|
|
62
|
+
if (typeof resolvedConfig.expirationTimeMs !== 'number' ||
|
|
63
|
+
resolvedConfig.expirationTimeMs > 0) {
|
|
64
|
+
data = await cache.get(key).catch((e) => {
|
|
65
|
+
console.error(`Error while getting cache for key: ${key}`);
|
|
66
|
+
console.error(e);
|
|
67
|
+
return undefined;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (data) {
|
|
71
|
+
let dataValue = typeof data === 'string' && data.startsWith(memoizeTypesPrefix)
|
|
72
|
+
? memoizeTypes.get(data)
|
|
73
|
+
: data;
|
|
74
|
+
if (!!resolvedConfig.cacheWrapperClass && !!dataValue) {
|
|
75
|
+
if (Array.isArray(dataValue)) {
|
|
76
|
+
dataValue = dataValue.map((value) => new resolvedConfig.cacheWrapperClass(value));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
dataValue = new resolvedConfig.cacheWrapperClass(dataValue);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
resolve(dataValue);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
try {
|
|
86
|
+
data = (await originalMethod.apply(this, args));
|
|
87
|
+
resolve(data);
|
|
88
|
+
const expirationTimeMs = typeof resolvedConfig.expirationTimeMs === 'number'
|
|
89
|
+
? resolvedConfig.expirationTimeMs
|
|
90
|
+
: resolvedConfig.expirationTimeMs.apply(this, [data]);
|
|
91
|
+
if (expirationTimeMs > 0) {
|
|
92
|
+
const dataValue = memoizeTypes.has(data)
|
|
93
|
+
? memoizeTypes.get(data)
|
|
94
|
+
: data;
|
|
95
|
+
if (typeof resolvedConfig.memoizeIf !== 'function' ||
|
|
96
|
+
resolvedConfig.memoizeIf.apply(this, [dataValue])) {
|
|
97
|
+
await cache.set(key, dataValue, expirationTimeMs).catch((e) => {
|
|
98
|
+
console.error(`Error while setting cache for key: ${key}`);
|
|
99
|
+
console.error(e);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
reject(e instanceof Error ? e : new Error(String(e)));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
await finalLock.release().catch((e) => {
|
|
109
|
+
console.error(`Error while release lock for key: ${key}`);
|
|
110
|
+
console.error(e);
|
|
111
|
+
});
|
|
112
|
+
promCache.delete(key);
|
|
113
|
+
});
|
|
114
|
+
promCache.set(key, prom);
|
|
115
|
+
return prom;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
function MemoizeAsync(inputs) {
|
|
119
|
+
const redisInjector = (0, ioredis_1.InjectRedis)();
|
|
120
|
+
const cacheManagerInjector = (0, common_1.Inject)(cache_manager_1.CACHE_MANAGER);
|
|
121
|
+
return (_target, _propertyName, descriptor) => {
|
|
122
|
+
if (!('_redisService' in _target)) {
|
|
123
|
+
redisInjector(_target, '_redisService');
|
|
124
|
+
}
|
|
125
|
+
if (!('_cacheManager' in _target)) {
|
|
126
|
+
cacheManagerInjector(_target, '_cacheManager');
|
|
127
|
+
}
|
|
128
|
+
if (descriptor.value) {
|
|
129
|
+
descriptor.value = memoizeAsyncify(descriptor.value, inputs);
|
|
130
|
+
return descriptor;
|
|
131
|
+
}
|
|
132
|
+
throw new Error('@MemoizeAsync is applicable only on a methods.');
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=memoize-async.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoize-async.decorator.js","sourceRoot":"","sources":["../../../../../src/modules/cache/decorators/memoize-async.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cache.module"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./decorators"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,0CAAwB;AACxB,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/modules/cache/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cache"), exports);
|
|
18
|
+
__exportStar(require("./redis"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./redis.module"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/redis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,0CAAwB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisModule = void 0;
|
|
4
|
+
const ioredis_1 = require("ioredis");
|
|
5
|
+
class RedisModule {
|
|
6
|
+
static async forRootAsync(options) {
|
|
7
|
+
const clientProviders = [];
|
|
8
|
+
for (const { token, ...clientOptions } of options) {
|
|
9
|
+
const client = new ioredis_1.default(clientOptions);
|
|
10
|
+
await client.ping();
|
|
11
|
+
clientProviders.push({
|
|
12
|
+
token,
|
|
13
|
+
useValue: client,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
module: RedisModule,
|
|
18
|
+
global: true,
|
|
19
|
+
imports: [],
|
|
20
|
+
exports: clientProviders,
|
|
21
|
+
providers: clientProviders,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.RedisModule = RedisModule;
|
|
26
|
+
//# sourceMappingURL=redis.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.module.js","sourceRoot":"","sources":["../../../../src/modules/redis/redis.module.ts"],"names":[],"mappings":";;;AACA,qCAA4B;AAG5B,MAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,OAA2B;QAE3B,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,IAAI,OAAO,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,iBAAK,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC;gBACnB,KAAK;gBACL,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE,eAAe;SAC3B,CAAC;IACJ,CAAC;CACF;AAtBD,kCAsBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/modules/redis/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|