@common-stack/cache-api-server 6.0.6-alpha.41 → 6.0.6-alpha.43
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/CHANGELOG.md +108 -0
- package/lib/config/{env-config.mjs → env-config.js} +1 -1
- package/lib/{constants.mjs → constants.js} +1 -1
- package/lib/containers/{module.mjs → module.js} +2 -2
- package/lib/engines/{ioredis-engine.mjs → ioredis-engine.js} +1 -1
- package/lib/index.js +1 -0
- package/lib/{module.mjs → module.js} +2 -2
- package/lib/services/{cache-service.mjs → cache-service.js} +2 -2
- package/package.json +5 -7
- package/rollup.config.mjs +41 -0
- package/src/config/env-config.ts +22 -0
- package/src/config/index.ts +1 -0
- package/src/constants.ts +4 -0
- package/src/containers/index.ts +1 -0
- package/src/containers/module.ts +30 -0
- package/src/engines/in-memory.ts +24 -0
- package/src/engines/ioredis-engine.ts +39 -0
- package/src/index.ts +7 -0
- package/src/interfaces/cache-engine.ts +8 -0
- package/src/interfaces/cache-service.ts +19 -0
- package/src/interfaces/common/ICache.ts +5 -0
- package/src/interfaces/common/index.ts +1 -0
- package/src/interfaces/index.ts +2 -0
- package/src/module.ts +16 -0
- package/{lib/services/cache-service.cjs → src/services/cache-service.ts} +58 -35
- package/src/services/index.ts +1 -0
- package/tsconfig.json +18 -0
- package/lib/config/env-config.cjs +0 -9
- package/lib/config/env-config.cjs.map +0 -1
- package/lib/config/env-config.mjs.map +0 -1
- package/lib/constants.cjs +0 -5
- package/lib/constants.cjs.map +0 -1
- package/lib/constants.mjs.map +0 -1
- package/lib/containers/module.cjs +0 -19
- package/lib/containers/module.cjs.map +0 -1
- package/lib/containers/module.mjs.map +0 -1
- package/lib/engines/ioredis-engine.cjs +0 -32
- package/lib/engines/ioredis-engine.cjs.map +0 -1
- package/lib/engines/ioredis-engine.mjs.map +0 -1
- package/lib/index.cjs +0 -1
- package/lib/index.cjs.map +0 -1
- package/lib/index.mjs +0 -1
- package/lib/index.mjs.map +0 -1
- package/lib/module.cjs +0 -8
- package/lib/module.cjs.map +0 -1
- package/lib/module.mjs.map +0 -1
- package/lib/services/cache-service.cjs.map +0 -1
- package/lib/services/cache-service.mjs.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
## [6.0.6-alpha.43](https://github.com/cdmbase/common-stack/compare/v6.0.6-alpha.42...v6.0.6-alpha.43) (2024-10-02)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
9
|
+
|
|
10
|
+
## [6.0.6-alpha.42](https://github.com/cdmbase/common-stack/compare/v6.0.6-alpha.41...v6.0.6-alpha.42) (2024-10-02)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
13
|
+
|
|
14
|
+
## [6.0.6-alpha.41](https://github.com/cdmbase/common-stack/compare/v6.0.6-alpha.40...v6.0.6-alpha.41) (2024-10-02)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
17
|
+
|
|
18
|
+
## [6.0.6-alpha.5](https://github.com/cdmbase/common-stack/compare/v6.0.6-alpha.4...v6.0.6-alpha.5) (2024-08-27)
|
|
19
|
+
|
|
20
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
21
|
+
|
|
22
|
+
## [6.0.6-alpha.0](https://github.com/cdmbase/common-stack/compare/v5.0.6-alpha.8...v6.0.6-alpha.0) (2024-08-26)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
25
|
+
|
|
26
|
+
## [6.0.1-alpha.0](https://github.com/cdmbase/common-stack/compare/v5.0.6-alpha.8...v6.0.1-alpha.0) (2024-08-26)
|
|
27
|
+
|
|
28
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
29
|
+
|
|
30
|
+
## [5.0.6-alpha.3](https://github.com/cdmbase/common-stack/compare/v5.0.6-alpha.2...v5.0.6-alpha.3) (2024-08-16)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
33
|
+
|
|
34
|
+
## [5.0.6-alpha.1](https://github.com/cdmbase/common-stack/compare/v5.0.6-alpha.0...v5.0.6-alpha.1) (2024-08-15)
|
|
35
|
+
|
|
36
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
37
|
+
|
|
38
|
+
## [5.0.6-alpha.0](https://github.com/cdmbase/common-stack/compare/v5.0.5-alpha.10...v5.0.6-alpha.0) (2024-08-15)
|
|
39
|
+
|
|
40
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
41
|
+
|
|
42
|
+
## [5.0.5-alpha.0](https://github.com/cdmbase/common-stack/compare/v5.0.5-alpha.10...v5.0.5-alpha.0) (2024-08-15)
|
|
43
|
+
|
|
44
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
45
|
+
|
|
46
|
+
## [5.0.5-alpha.0](https://github.com/cdmbase/common-stack/compare/v0.0.251...v5.0.5-alpha.0) (2024-08-11)
|
|
47
|
+
|
|
48
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
49
|
+
|
|
50
|
+
## [5.0.4-alpha.21](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.20...v5.0.4-alpha.21) (2024-08-11)
|
|
51
|
+
|
|
52
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
53
|
+
|
|
54
|
+
## [5.0.4-alpha.19](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.18...v5.0.4-alpha.19) (2024-08-10)
|
|
55
|
+
|
|
56
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
57
|
+
|
|
58
|
+
## [5.0.4-alpha.18](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.17...v5.0.4-alpha.18) (2024-08-10)
|
|
59
|
+
|
|
60
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
61
|
+
|
|
62
|
+
## [5.0.4-alpha.17](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.16...v5.0.4-alpha.17) (2024-08-10)
|
|
63
|
+
|
|
64
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
65
|
+
|
|
66
|
+
## [5.0.4-alpha.16](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.15...v5.0.4-alpha.16) (2024-08-10)
|
|
67
|
+
|
|
68
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
69
|
+
|
|
70
|
+
## [5.0.4-alpha.15](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.14...v5.0.4-alpha.15) (2024-08-10)
|
|
71
|
+
|
|
72
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
73
|
+
|
|
74
|
+
## [5.0.4-alpha.14](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.13...v5.0.4-alpha.14) (2024-08-10)
|
|
75
|
+
|
|
76
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
77
|
+
|
|
78
|
+
## [5.0.4-alpha.13](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.12...v5.0.4-alpha.13) (2024-08-10)
|
|
79
|
+
|
|
80
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
81
|
+
|
|
82
|
+
## [5.0.4-alpha.12](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.11...v5.0.4-alpha.12) (2024-08-10)
|
|
83
|
+
|
|
84
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
85
|
+
|
|
86
|
+
## [5.0.4-alpha.11](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.10...v5.0.4-alpha.11) (2024-08-08)
|
|
87
|
+
|
|
88
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
89
|
+
|
|
90
|
+
## [5.0.4-alpha.7](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.6...v5.0.4-alpha.7) (2024-08-01)
|
|
91
|
+
|
|
92
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
93
|
+
|
|
94
|
+
## [5.0.4-alpha.5](https://github.com/cdmbase/common-stack/compare/v5.0.4-alpha.4...v5.0.4-alpha.5) (2024-08-01)
|
|
95
|
+
|
|
96
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
97
|
+
|
|
98
|
+
## [5.0.4-alpha.0](https://github.com/cdmbase/common-stack/compare/v0.0.251...v5.0.4-alpha.0) (2024-07-24)
|
|
99
|
+
|
|
100
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
101
|
+
|
|
102
|
+
## [5.0.3-alpha.0](https://github.com/cdmbase/common-stack/compare/v0.0.251...v5.0.3-alpha.0) (2024-07-24)
|
|
103
|
+
|
|
104
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
105
|
+
|
|
106
|
+
## [5.0.2-alpha.0](https://github.com/cdmbase/common-stack/compare/v0.0.251...v5.0.2-alpha.0) (2024-07-17)
|
|
107
|
+
|
|
108
|
+
**Note:** Version bump only for package @common-stack/cache-api-server
|
|
@@ -6,4 +6,4 @@ import {cleanEnv,str,bool,json,num}from'envalid';const config = cleanEnv(process
|
|
|
6
6
|
REDIS_CLUSTER_URL: json({ desc: "Send cluster nodes as array of host and port object. ex: [{ host: 'node1', port: 6678}]" }),
|
|
7
7
|
REDIS_CACHE_MAX_AGE_in_sec: num({ default: 2592000, desc: 'Max. age in seconds. Default is 30 days' }),
|
|
8
8
|
NODE_ENV: str({ choices: ['production', 'test', 'staging', 'development'], default: 'production' }),
|
|
9
|
-
});export{config}
|
|
9
|
+
});export{config};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {ContainerModule}from'inversify';import {Cache}from'../services/cache-service.
|
|
1
|
+
import {ContainerModule}from'inversify';import {Cache}from'../services/cache-service.js';import {Types}from'../constants.js';import {Redis}from'../engines/ioredis-engine.js';const moduleFunc = (settings) => new ContainerModule((bind) => {
|
|
2
2
|
/**
|
|
3
3
|
*
|
|
4
4
|
* @returns: () => cache;
|
|
@@ -16,4 +16,4 @@ import {ContainerModule}from'inversify';import {Cache}from'../services/cache-ser
|
|
|
16
16
|
.toConstantValue(new Redis(settings.redisConnection))
|
|
17
17
|
// .inSingletonScope()
|
|
18
18
|
.whenTargetIsDefault();
|
|
19
|
-
});export{moduleFunc}
|
|
19
|
+
});export{moduleFunc};
|
package/lib/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {Feature}from'@common-stack/server-core';import module from'./module.js';export{Types}from'./constants.js';export{Cache}from'./services/cache-service.js';var index = new Feature(module);export{index as default};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {Feature}from'@common-stack/server-core';import {Types}from'./constants.
|
|
1
|
+
import {Feature}from'@common-stack/server-core';import {Types}from'./constants.js';import {moduleFunc}from'./containers/module.js';const createServiceFunc = (container) => ({
|
|
2
2
|
cache: container.get(Types.CacheService),
|
|
3
3
|
});
|
|
4
4
|
var module = new Feature({
|
|
5
5
|
schema: [],
|
|
6
6
|
createServiceFunc,
|
|
7
7
|
createContainerFunc: [moduleFunc],
|
|
8
|
-
});export{module as default}
|
|
8
|
+
});export{module as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import*as url from'url';import {logger}from'@cdm-logger/server';import {Redis}from'../engines/ioredis-engine.
|
|
1
|
+
import*as url from'url';import {logger}from'@cdm-logger/server';import {Redis}from'../engines/ioredis-engine.js';import {config}from'../config/env-config.js';class Cache {
|
|
2
2
|
static DEFAULT_SCOPE = 'cde_cache';
|
|
3
3
|
static instance;
|
|
4
4
|
logger;
|
|
@@ -94,4 +94,4 @@ import*as url from'url';import {logger}from'@cdm-logger/server';import {Redis}fr
|
|
|
94
94
|
return this.engine.invalidate(paths);
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
}export{Cache}
|
|
97
|
+
}export{Cache};
|
package/package.json
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@common-stack/cache-api-server",
|
|
3
|
-
"version": "6.0.6-alpha.
|
|
3
|
+
"version": "6.0.6-alpha.43",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
7
|
-
"main": "lib/index.
|
|
8
|
-
"
|
|
7
|
+
"main": "lib/index.js",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"module": "lib/index.js",
|
|
9
10
|
"types": "lib/index.d.ts",
|
|
10
|
-
"files": [
|
|
11
|
-
"lib"
|
|
12
|
-
],
|
|
13
11
|
"typings": "lib/index.d.ts",
|
|
14
12
|
"scripts": {
|
|
15
13
|
"build": "npm run build:clean && npm run build:lib",
|
|
@@ -37,7 +35,7 @@
|
|
|
37
35
|
"publishConfig": {
|
|
38
36
|
"access": "public"
|
|
39
37
|
},
|
|
40
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "1600614d42fd3a0b93d6ec1eb62418caa2ce5c3b",
|
|
41
39
|
"typescript": {
|
|
42
40
|
"definition": "lib/index.d.ts"
|
|
43
41
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import graphql from '@rollup/plugin-graphql';
|
|
2
|
+
import image from '@rollup/plugin-image';
|
|
3
|
+
import typescript from '@rollup/plugin-typescript';
|
|
4
|
+
import { string } from 'rollup-plugin-string';
|
|
5
|
+
|
|
6
|
+
// Define a base configuration for reuse
|
|
7
|
+
const baseConfig = {
|
|
8
|
+
plugins: [
|
|
9
|
+
image(),
|
|
10
|
+
graphql({
|
|
11
|
+
include: '**/*.gql',
|
|
12
|
+
}),
|
|
13
|
+
string({
|
|
14
|
+
include: '**/*.graphql',
|
|
15
|
+
}),
|
|
16
|
+
typescript({ noEmitOnError: true }),
|
|
17
|
+
],
|
|
18
|
+
// marking all node modules as external
|
|
19
|
+
external: (id) => !/^[./]/.test(id),
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// Configuration for index.ts
|
|
23
|
+
const indexConfig = {
|
|
24
|
+
...baseConfig,
|
|
25
|
+
input: 'src/index.ts',
|
|
26
|
+
output: [
|
|
27
|
+
{
|
|
28
|
+
dir: 'lib',
|
|
29
|
+
format: 'es',
|
|
30
|
+
name: 'FrontendStackReact',
|
|
31
|
+
compact: true,
|
|
32
|
+
exports: 'named',
|
|
33
|
+
sourcemap: false,
|
|
34
|
+
preserveModules: true,
|
|
35
|
+
chunkFileNames: 'index-[hash].[format].js',
|
|
36
|
+
globals: baseConfig.globals,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default [indexConfig];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { str, cleanEnv, json, num, bool } from 'envalid';
|
|
2
|
+
|
|
3
|
+
export interface IConfig {
|
|
4
|
+
NODE_ENV: string;
|
|
5
|
+
REDIS_URL: string;
|
|
6
|
+
REDIS_CACHE_MAX_AGE_in_sec: number;
|
|
7
|
+
REDIS_SENTINEL_ENABLED: boolean;
|
|
8
|
+
REDIS_SENTINEL_NAME?: string;
|
|
9
|
+
REDIS_CLUSTER_ENABLED?: boolean;
|
|
10
|
+
REDIS_CLUSTER_URL?: any;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const config = cleanEnv<IConfig>(process.env, {
|
|
14
|
+
REDIS_URL: str(),
|
|
15
|
+
REDIS_SENTINEL_ENABLED: bool({ devDefault: false }),
|
|
16
|
+
REDIS_SENTINEL_NAME: str({ default: 'mymaster' }),
|
|
17
|
+
REDIS_CLUSTER_ENABLED: bool({ default: false }),
|
|
18
|
+
REDIS_CLUSTER_URL: json({ desc: "Send cluster nodes as array of host and port object. ex: [{ host: 'node1', port: 6678}]" }),
|
|
19
|
+
REDIS_CACHE_MAX_AGE_in_sec: num({ default: 2592000, desc: 'Max. age in seconds. Default is 30 days' }),
|
|
20
|
+
NODE_ENV: str({ choices: ['production', 'test', 'staging', 'development'], default: 'production' }),
|
|
21
|
+
});
|
|
22
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './env-config';
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './module';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ContainerModule, interfaces } from 'inversify';
|
|
2
|
+
import { CdmLogger } from '@cdm-logger/core';
|
|
3
|
+
import { Cache } from '../services';
|
|
4
|
+
import { Types } from '../constants';
|
|
5
|
+
import { Redis } from '../engines/ioredis-engine';
|
|
6
|
+
import { ICacheEngine } from '../interfaces';
|
|
7
|
+
|
|
8
|
+
export const moduleFunc: (settings: any, pubsub) => interfaces.ContainerModule =
|
|
9
|
+
(settings: any) => new ContainerModule((bind: interfaces.Bind) => {
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @returns: () => cache;
|
|
14
|
+
*/
|
|
15
|
+
bind<interfaces.Factory<Cache>>(Types.CacheService).toFactory<Cache>((context: interfaces.Context) => {
|
|
16
|
+
return () => {
|
|
17
|
+
// TODO: to make it singleton we need to check if Cache already exist then return same.
|
|
18
|
+
const cacheEngine = context.container.get<ICacheEngine>(Types.CacheEngine);
|
|
19
|
+
const logger = context.container.get<CdmLogger.ILogger>('Logger');
|
|
20
|
+
const cache = new Cache(cacheEngine, logger);
|
|
21
|
+
return cache;
|
|
22
|
+
};
|
|
23
|
+
}).whenTargetIsDefault();
|
|
24
|
+
|
|
25
|
+
bind<ICacheEngine>(Types.CacheEngine)
|
|
26
|
+
.toConstantValue(new Redis(settings.redisConnection))
|
|
27
|
+
// .inSingletonScope()
|
|
28
|
+
.whenTargetIsDefault();
|
|
29
|
+
});
|
|
30
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ICacheEngine } from '../interfaces';
|
|
2
|
+
|
|
3
|
+
export class InMemory implements ICacheEngine {
|
|
4
|
+
private cache = new Map();
|
|
5
|
+
|
|
6
|
+
public async set(key: string, data: any) {
|
|
7
|
+
this.cache.set(key, data);
|
|
8
|
+
return data;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
public async get(key: string) {
|
|
12
|
+
return this.cache.get(key);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public async drop(key: string) {
|
|
16
|
+
this.cache.delete(key);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public async invalidate(keys?: string[]) {
|
|
21
|
+
(keys || []).forEach(key => this.cache.delete(key));
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import IORedis, { Cluster, ClusterNode, ClusterOptions, Redis as RedisInterface, RedisOptions } from 'ioredis';
|
|
2
|
+
import { ICacheEngine } from '../interfaces';
|
|
3
|
+
|
|
4
|
+
export class Redis implements ICacheEngine {
|
|
5
|
+
private client: RedisInterface | Cluster;
|
|
6
|
+
private getAsync;
|
|
7
|
+
|
|
8
|
+
constructor(options: RedisOptions | ClusterOptions, isCluster?: boolean, clusterNodes?: ClusterNode[]) {
|
|
9
|
+
if (isCluster) {
|
|
10
|
+
this.client = new Cluster(clusterNodes, options);
|
|
11
|
+
} else {
|
|
12
|
+
this.client = new IORedis(options);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public async set(key: string, data: any) {
|
|
17
|
+
if (data.maxAge) {
|
|
18
|
+
await this.client.set(key, JSON.stringify(data), 'EX', data.maxAge);
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
await this.client.set(key, JSON.stringify(data));
|
|
22
|
+
return data;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public async get(key: string) {
|
|
26
|
+
const cacheString = await this.client.get(key);
|
|
27
|
+
return JSON.parse(cacheString);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public async drop(key: string) {
|
|
31
|
+
await this.client.del(key);
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public async invalidate(keys?: string[]) {
|
|
36
|
+
(keys || []).forEach(key => this.client.del(key));
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface ICacheOptions {
|
|
2
|
+
parse?: string;
|
|
3
|
+
scope?: string;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface ICacheSetOptions extends ICacheOptions {
|
|
7
|
+
maxAge?: number;
|
|
8
|
+
createdAt?: any;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface ICacheService {
|
|
12
|
+
defaults: ICacheSetOptions;
|
|
13
|
+
|
|
14
|
+
invalidate(key: string): Promise<boolean>;
|
|
15
|
+
get(key: string, options: ICacheOptions): Promise<any>;
|
|
16
|
+
drop(key: string, options: ICacheOptions): Promise<boolean>;
|
|
17
|
+
invalidate(keys?: string[], options?: ICacheOptions): Promise<boolean>;
|
|
18
|
+
set(key: string, data: any, options?: ICacheSetOptions): Promise<any>;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ICache';
|
package/src/module.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as _ from 'lodash-es';
|
|
2
|
+
import { interfaces } from 'inversify';
|
|
3
|
+
import { Feature } from '@common-stack/server-core';
|
|
4
|
+
|
|
5
|
+
import { Types } from './constants';
|
|
6
|
+
import { moduleFunc } from './containers';
|
|
7
|
+
|
|
8
|
+
const createServiceFunc = (container: interfaces.Container) => ({
|
|
9
|
+
cache: container.get(Types.CacheService),
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
export default new Feature({
|
|
13
|
+
schema: [],
|
|
14
|
+
createServiceFunc,
|
|
15
|
+
createContainerFunc: [moduleFunc],
|
|
16
|
+
});
|
|
@@ -1,97 +1,120 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import * as _ from 'lodash-es';
|
|
2
|
+
import * as url from 'url';
|
|
3
|
+
import { CdmLogger } from '@cdm-logger/core';
|
|
4
|
+
import { logger as cdmLogger } from '@cdm-logger/server';
|
|
5
|
+
import { ICacheService, ICacheEngine, ICacheOptions, ICacheSetOptions } from '../interfaces';
|
|
6
|
+
import { Redis } from '../engines/ioredis-engine';
|
|
7
|
+
import { config } from '../config';
|
|
8
|
+
|
|
9
|
+
export class Cache implements ICacheService {
|
|
10
|
+
private static DEFAULT_SCOPE = 'cde_cache';
|
|
11
|
+
private static instance: Cache;
|
|
12
|
+
|
|
13
|
+
private logger: CdmLogger.ILogger;
|
|
14
|
+
private engine: ICacheEngine;
|
|
15
|
+
|
|
16
|
+
constructor(
|
|
17
|
+
engine: ICacheEngine,
|
|
18
|
+
logger?: CdmLogger.ILogger,
|
|
19
|
+
) {
|
|
7
20
|
this.engine = engine;
|
|
8
21
|
if (logger) {
|
|
9
22
|
this.logger = logger.child(this.constructor.name);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
this.logger = server.logger.child(this.constructor.name);
|
|
23
|
+
} else {
|
|
24
|
+
this.logger = cdmLogger.child(this.constructor.name);
|
|
13
25
|
}
|
|
14
26
|
}
|
|
15
|
-
|
|
27
|
+
|
|
28
|
+
public static get Instance() {
|
|
16
29
|
if (this.instance) {
|
|
17
30
|
return this.instance;
|
|
18
31
|
}
|
|
19
|
-
const { port, hostname } =
|
|
32
|
+
const { port, hostname } = url.parse(config.REDIS_URL) as { port: any, hostname: string };
|
|
20
33
|
let options;
|
|
21
34
|
let client;
|
|
22
|
-
if (
|
|
35
|
+
if (config.REDIS_SENTINEL_ENABLED) {
|
|
23
36
|
options = {
|
|
24
37
|
sentinels: [{ host: hostname, port }],
|
|
25
|
-
name:
|
|
38
|
+
name: config.REDIS_SENTINEL_NAME,
|
|
26
39
|
};
|
|
27
|
-
client = new
|
|
28
|
-
}
|
|
29
|
-
else if (envConfig.config.REDIS_CLUSTER_ENABLED) {
|
|
40
|
+
client = new Redis(options);
|
|
41
|
+
} else if (config.REDIS_CLUSTER_ENABLED) {
|
|
30
42
|
options = {};
|
|
31
|
-
client = new
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
43
|
+
client = new Redis(options, true, config.REDIS_CLUSTER_URL);
|
|
44
|
+
} else {
|
|
34
45
|
options = { host: hostname, port };
|
|
35
|
-
client = new
|
|
46
|
+
client = new Redis(options);
|
|
36
47
|
}
|
|
37
48
|
this.instance = new this(client);
|
|
38
49
|
return this.instance;
|
|
39
50
|
}
|
|
40
|
-
|
|
51
|
+
|
|
52
|
+
private key(key: string, scope?: string) {
|
|
41
53
|
return `${scope || Cache.DEFAULT_SCOPE}.${key}`;
|
|
42
54
|
}
|
|
43
|
-
|
|
55
|
+
|
|
56
|
+
private isExpired(createdAt: number, maxAge: number) {
|
|
44
57
|
const now = parseInt(`${Date.now() / 1000}`, null);
|
|
45
58
|
return now - createdAt > maxAge;
|
|
46
59
|
}
|
|
47
|
-
|
|
60
|
+
|
|
61
|
+
private getOptions(opts: ICacheOptions) {
|
|
48
62
|
return Object.assign(this.defaults, opts || {});
|
|
49
63
|
}
|
|
64
|
+
|
|
50
65
|
get defaults() {
|
|
51
66
|
return {
|
|
52
67
|
scope: Cache.DEFAULT_SCOPE,
|
|
53
|
-
maxAge:
|
|
68
|
+
maxAge: config.REDIS_CACHE_MAX_AGE_in_sec,
|
|
54
69
|
createdAt: parseInt(`${Date.now() / 1000}`, null),
|
|
55
70
|
};
|
|
56
71
|
}
|
|
57
|
-
|
|
72
|
+
|
|
73
|
+
public async set(key: string, payload: any, options?: ICacheSetOptions) {
|
|
58
74
|
const opts = this.getOptions(options);
|
|
59
75
|
const cache = Object.assign({}, { payload }, opts);
|
|
76
|
+
|
|
60
77
|
const path = this.key(key, opts.scope);
|
|
61
|
-
this.engine.set(path, cache);
|
|
78
|
+
const result = this.engine.set(path, cache);
|
|
79
|
+
|
|
62
80
|
return payload;
|
|
63
81
|
}
|
|
64
|
-
|
|
82
|
+
|
|
83
|
+
public async get(key: string, options?: ICacheOptions) {
|
|
65
84
|
const opts = this.getOptions(options);
|
|
66
85
|
const path = this.key(key, opts.scope);
|
|
67
86
|
const cache = await this.engine.get(path);
|
|
87
|
+
|
|
68
88
|
if (cache == null) {
|
|
69
89
|
return null;
|
|
70
90
|
}
|
|
91
|
+
|
|
71
92
|
if (this.isExpired(cache.createdAt, cache.maxAge)) {
|
|
72
93
|
this.engine.drop(path);
|
|
73
94
|
return null;
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
95
|
+
} else {
|
|
76
96
|
return opts.parse
|
|
77
97
|
? cache.payload
|
|
78
98
|
: cache.payload; // not really doing anything here
|
|
79
99
|
}
|
|
80
100
|
}
|
|
81
|
-
|
|
101
|
+
|
|
102
|
+
public async drop(key, options?: ICacheOptions) {
|
|
82
103
|
const opts = this.getOptions(options);
|
|
83
104
|
const path = this.key(key, opts.scope);
|
|
84
|
-
|
|
105
|
+
|
|
106
|
+
const ok = this.engine.drop(path);
|
|
85
107
|
return true;
|
|
86
108
|
}
|
|
87
|
-
|
|
109
|
+
|
|
110
|
+
public async invalidate(keys, options?: ICacheOptions) {
|
|
88
111
|
if (keys.length <= 0) {
|
|
89
112
|
return this.engine.invalidate();
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
113
|
+
} else {
|
|
92
114
|
const opts = this.getOptions(options);
|
|
93
115
|
const paths = keys.map(key => this.key(key, opts.scope));
|
|
116
|
+
|
|
94
117
|
return this.engine.invalidate(paths);
|
|
95
118
|
}
|
|
96
119
|
}
|
|
97
|
-
}
|
|
120
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './cache-service';
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../../tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"resolveJsonModule": true,
|
|
5
|
+
"rootDir": "src",
|
|
6
|
+
"outDir": "lib",
|
|
7
|
+
"declarationDir": "lib",
|
|
8
|
+
"declaration": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
},
|
|
11
|
+
"include": ["src"],
|
|
12
|
+
"exclude": [
|
|
13
|
+
"node_modules",
|
|
14
|
+
"lib",
|
|
15
|
+
"dist",
|
|
16
|
+
"webpack.config.js"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use strict';var envalid=require('envalid');const config = envalid.cleanEnv(process.env, {
|
|
2
|
-
REDIS_URL: envalid.str(),
|
|
3
|
-
REDIS_SENTINEL_ENABLED: envalid.bool({ devDefault: false }),
|
|
4
|
-
REDIS_SENTINEL_NAME: envalid.str({ default: 'mymaster' }),
|
|
5
|
-
REDIS_CLUSTER_ENABLED: envalid.bool({ default: false }),
|
|
6
|
-
REDIS_CLUSTER_URL: envalid.json({ desc: "Send cluster nodes as array of host and port object. ex: [{ host: 'node1', port: 6678}]" }),
|
|
7
|
-
REDIS_CACHE_MAX_AGE_in_sec: envalid.num({ default: 2592000, desc: 'Max. age in seconds. Default is 30 days' }),
|
|
8
|
-
NODE_ENV: envalid.str({ choices: ['production', 'test', 'staging', 'development'], default: 'production' }),
|
|
9
|
-
});exports.config=config;//# sourceMappingURL=env-config.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env-config.cjs","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":["cleanEnv","str","bool","json","num"],"mappings":"kDAYa,MAAM,GAAGA,gBAAQ,CAAU,OAAO,CAAC,GAAG,EAAE;IACjD,SAAS,EAAEC,WAAG,EAAE;IAChB,sBAAsB,EAAEC,YAAI,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACnD,mBAAmB,EAAED,WAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACjD,qBAAqB,EAAEC,YAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/C,iBAAiB,EAAEC,YAAI,CAAC,EAAE,IAAI,EAAE,yFAAyF,EAAE,CAAC;AAC5H,IAAA,0BAA0B,EAAEC,WAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC;IACtG,QAAQ,EAAEH,WAAG,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACtG,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env-config.mjs","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":[],"mappings":"uDAYa,MAAM,GAAG,QAAQ,CAAU,OAAO,CAAC,GAAG,EAAE;IACjD,SAAS,EAAE,GAAG,EAAE;IAChB,sBAAsB,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACnD,mBAAmB,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACjD,qBAAqB,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/C,iBAAiB,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,yFAAyF,EAAE,CAAC;AAC5H,IAAA,0BAA0B,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC;IACtG,QAAQ,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACtG,CAAA"}
|
package/lib/constants.cjs
DELETED
package/lib/constants.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","sources":["../src/constants.ts"],"sourcesContent":[null],"names":["Types"],"mappings":"aAAYA,qBAGX;AAHD,CAAA,UAAY,KAAK,EAAA;AACb,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AACjC,CAAC,EAHWA,aAAK,KAALA,aAAK,GAGhB,EAAA,CAAA,CAAA"}
|
package/lib/constants.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","sources":["../src/constants.ts"],"sourcesContent":[null],"names":[],"mappings":"IAAY,MAGX;AAHD,CAAA,UAAY,KAAK,EAAA;AACb,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AACjC,CAAC,EAHW,KAAK,KAAL,KAAK,GAGhB,EAAA,CAAA,CAAA"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use strict';var inversify=require('inversify'),cacheService=require('../services/cache-service.cjs'),constants=require('../constants.cjs'),ioredisEngine=require('../engines/ioredis-engine.cjs');const moduleFunc = (settings) => new inversify.ContainerModule((bind) => {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @returns: () => cache;
|
|
5
|
-
*/
|
|
6
|
-
bind(constants.Types.CacheService).toFactory((context) => {
|
|
7
|
-
return () => {
|
|
8
|
-
// TODO: to make it singleton we need to check if Cache already exist then return same.
|
|
9
|
-
const cacheEngine = context.container.get(constants.Types.CacheEngine);
|
|
10
|
-
const logger = context.container.get('Logger');
|
|
11
|
-
const cache = new cacheService.Cache(cacheEngine, logger);
|
|
12
|
-
return cache;
|
|
13
|
-
};
|
|
14
|
-
}).whenTargetIsDefault();
|
|
15
|
-
bind(constants.Types.CacheEngine)
|
|
16
|
-
.toConstantValue(new ioredisEngine.Redis(settings.redisConnection))
|
|
17
|
-
// .inSingletonScope()
|
|
18
|
-
.whenTargetIsDefault();
|
|
19
|
-
});exports.moduleFunc=moduleFunc;//# sourceMappingURL=module.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module.cjs","sources":["../../src/containers/module.ts"],"sourcesContent":[null],"names":["ContainerModule","Types","Cache","Redis"],"mappings":"mMAOO,MAAM,UAAU,GACnB,CAAC,QAAa,KAAK,IAAIA,yBAAe,CAAC,CAAC,IAAqB,KAAI;AAE7D;;;AAGG;IACH,IAAI,CAA4BC,eAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAQ,CAAC,OAA2B,KAAI;AACjG,QAAA,OAAO,MAAK;;AAER,YAAA,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAeA,eAAK,CAAC,WAAW,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAoB,QAAQ,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,IAAIC,kBAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC7C,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC;AACN,KAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAEzB,IAAA,IAAI,CAAeD,eAAK,CAAC,WAAW,CAAC;SAChC,eAAe,CAAC,IAAIE,mBAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;;AAEpD,SAAA,mBAAmB,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","sources":["../../src/containers/module.ts"],"sourcesContent":[null],"names":[],"mappings":"iLAOO,MAAM,UAAU,GACnB,CAAC,QAAa,KAAK,IAAI,eAAe,CAAC,CAAC,IAAqB,KAAI;AAE7D;;;AAGG;IACH,IAAI,CAA4B,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAQ,CAAC,OAA2B,KAAI;AACjG,QAAA,OAAO,MAAK;;AAER,YAAA,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAe,KAAK,CAAC,WAAW,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAoB,QAAQ,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC7C,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC;AACN,KAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;AAEzB,IAAA,IAAI,CAAe,KAAK,CAAC,WAAW,CAAC;SAChC,eAAe,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;;AAEpD,SAAA,mBAAmB,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
'use strict';var IORedis=require('ioredis');class Redis {
|
|
2
|
-
client;
|
|
3
|
-
getAsync;
|
|
4
|
-
constructor(options, isCluster, clusterNodes) {
|
|
5
|
-
if (isCluster) {
|
|
6
|
-
this.client = new IORedis.Cluster(clusterNodes, options);
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
this.client = new IORedis(options);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
async set(key, data) {
|
|
13
|
-
if (data.maxAge) {
|
|
14
|
-
await this.client.set(key, JSON.stringify(data), 'EX', data.maxAge);
|
|
15
|
-
return data;
|
|
16
|
-
}
|
|
17
|
-
await this.client.set(key, JSON.stringify(data));
|
|
18
|
-
return data;
|
|
19
|
-
}
|
|
20
|
-
async get(key) {
|
|
21
|
-
const cacheString = await this.client.get(key);
|
|
22
|
-
return JSON.parse(cacheString);
|
|
23
|
-
}
|
|
24
|
-
async drop(key) {
|
|
25
|
-
await this.client.del(key);
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
async invalidate(keys) {
|
|
29
|
-
(keys || []).forEach(key => this.client.del(key));
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
}exports.Redis=Redis;//# sourceMappingURL=ioredis-engine.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ioredis-engine.cjs","sources":["../../src/engines/ioredis-engine.ts"],"sourcesContent":[null],"names":["Cluster"],"mappings":"kDAGa,KAAK,CAAA;AACN,IAAA,MAAM,CAA2B;AACjC,IAAA,QAAQ,CAAC;AAEjB,IAAA,WAAA,CAAY,OAAsC,EAAE,SAAmB,EAAE,YAA4B,EAAA;QACjG,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,IAAIA,eAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACpD;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;SACtC;KACJ;AAEM,IAAA,MAAM,GAAG,CAAC,GAAW,EAAE,IAAS,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACpE,YAAA,OAAO,IAAI,CAAC;SACf;AACD,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,MAAM,GAAG,CAAC,GAAW,EAAA;QACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;KAClC;IAEM,MAAM,IAAI,CAAC,GAAW,EAAA;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,MAAM,UAAU,CAAC,IAAe,EAAA;QACnC,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,QAAA,OAAO,IAAI,CAAC;KACf;AACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ioredis-engine.mjs","sources":["../../src/engines/ioredis-engine.ts"],"sourcesContent":[null],"names":[],"mappings":"4CAGa,KAAK,CAAA;AACN,IAAA,MAAM,CAA2B;AACjC,IAAA,QAAQ,CAAC;AAEjB,IAAA,WAAA,CAAY,OAAsC,EAAE,SAAmB,EAAE,YAA4B,EAAA;QACjG,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACpD;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;SACtC;KACJ;AAEM,IAAA,MAAM,GAAG,CAAC,GAAW,EAAE,IAAS,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACpE,YAAA,OAAO,IAAI,CAAC;SACf;AACD,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,MAAM,GAAG,CAAC,GAAW,EAAA;QACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;KAClC;IAEM,MAAM,IAAI,CAAC,GAAW,EAAA;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,MAAM,UAAU,CAAC,IAAe,EAAA;QACnC,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,QAAA,OAAO,IAAI,CAAC;KACf;AACJ"}
|
package/lib/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var serverCore=require('@common-stack/server-core'),module$1=require('./module.cjs'),constants=require('./constants.cjs'),cacheService=require('./services/cache-service.cjs');var index = new serverCore.Feature(module$1.default);Object.defineProperty(exports,'Types',{enumerable:true,get:function(){return constants.Types}});exports.Cache=cacheService.Cache;exports.default=index;//# sourceMappingURL=index.cjs.map
|
package/lib/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":[null],"names":["Feature","module"],"mappings":"qPAKA,YAAe,IAAIA,kBAAO,CAACC,gBAAM,CAAC"}
|
package/lib/index.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {Feature}from'@common-stack/server-core';import module from'./module.mjs';export{Types}from'./constants.mjs';export{Cache}from'./services/cache-service.mjs';var index = new Feature(module);export{index as default};//# sourceMappingURL=index.mjs.map
|
package/lib/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"oKAKA,YAAe,IAAI,OAAO,CAAC,MAAM,CAAC"}
|
package/lib/module.cjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var serverCore=require('@common-stack/server-core'),constants=require('./constants.cjs'),module$2=require('./containers/module.cjs');const createServiceFunc = (container) => ({
|
|
2
|
-
cache: container.get(constants.Types.CacheService),
|
|
3
|
-
});
|
|
4
|
-
var module$1 = new serverCore.Feature({
|
|
5
|
-
schema: [],
|
|
6
|
-
createServiceFunc,
|
|
7
|
-
createContainerFunc: [module$2.moduleFunc],
|
|
8
|
-
});exports.default=module$1;//# sourceMappingURL=module.cjs.map
|
package/lib/module.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module.cjs","sources":["../src/module.ts"],"sourcesContent":[null],"names":["Types","Feature","moduleFunc"],"mappings":"2MAOA,MAAM,iBAAiB,GAAG,CAAC,SAA+B,MAAM;IAC5D,KAAK,EAAE,SAAS,CAAC,GAAG,CAACA,eAAK,CAAC,YAAY,CAAC;AAC3C,CAAA,CAAC,CAAC;AAEH,eAAe,IAAIC,kBAAO,CAAC;AACvB,IAAA,MAAM,EAAE,EAAE;IACV,iBAAiB;IACjB,mBAAmB,EAAE,CAACC,mBAAU,CAAC;AACpC,CAAA,CAAC"}
|
package/lib/module.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","sources":["../src/module.ts"],"sourcesContent":[null],"names":[],"mappings":"qIAOA,MAAM,iBAAiB,GAAG,CAAC,SAA+B,MAAM;IAC5D,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;AAC3C,CAAA,CAAC,CAAC;AAEH,aAAe,IAAI,OAAO,CAAC;AACvB,IAAA,MAAM,EAAE,EAAE;IACV,iBAAiB;IACjB,mBAAmB,EAAE,CAAC,UAAU,CAAC;AACpC,CAAA,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-service.cjs","sources":["../../src/services/cache-service.ts"],"sourcesContent":[null],"names":["cdmLogger","url","config","Redis"],"mappings":"ghBAQa,KAAK,CAAA;AACN,IAAA,OAAO,aAAa,GAAG,WAAW,CAAC;IACnC,OAAO,QAAQ,CAAQ;AAEvB,IAAA,MAAM,CAAoB;AAC1B,IAAA,MAAM,CAAe;IAE7B,WACI,CAAA,MAAoB,EACpB,MAA0B,EAAA;AAE1B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACrD;aAAM;AACH,YAAA,IAAI,CAAC,MAAM,GAAGA,aAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACxD;KACJ;AAEM,IAAA,WAAW,QAAQ,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,IAAI,CAAC,QAAQ,CAAC;SACxB;AACD,QAAA,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAGC,cAAG,CAAC,KAAK,CAACC,gBAAM,CAAC,SAAS,CAAoC,CAAC;AAC1F,QAAA,IAAI,OAAO,CAAC;AACZ,QAAA,IAAI,MAAM,CAAC;AACX,QAAA,IAAIA,gBAAM,CAAC,sBAAsB,EAAE;AAC/B,YAAA,OAAO,GAAG;gBACN,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACrC,IAAI,EAAEA,gBAAM,CAAC,mBAAmB;aACnC,CAAC;AACF,YAAA,MAAM,GAAG,IAAIC,mBAAK,CAAC,OAAO,CAAC,CAAC;SAC/B;AAAM,aAAA,IAAID,gBAAM,CAAC,qBAAqB,EAAE;YACrC,OAAO,GAAG,EAAE,CAAC;AACb,YAAA,MAAM,GAAG,IAAIC,mBAAK,CAAC,OAAO,EAAE,IAAI,EAAED,gBAAM,CAAC,iBAAiB,CAAC,CAAC;SAC/D;aAAM;YACH,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACnC,YAAA,MAAM,GAAG,IAAIC,mBAAK,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAEO,GAAG,CAAC,GAAW,EAAE,KAAc,EAAA;QACnC,OAAO,CAAA,EAAG,KAAK,IAAI,KAAK,CAAC,aAAa,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;KACnD;IAEO,SAAS,CAAC,SAAiB,EAAE,MAAc,EAAA;AAC/C,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA,CAAE,EAAE,IAAI,CAAC,CAAC;AACnD,QAAA,OAAO,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC;KACnC;AAEO,IAAA,UAAU,CAAC,IAAmB,EAAA;AAClC,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;KACnD;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO;YACH,KAAK,EAAE,KAAK,CAAC,aAAa;YAC1B,MAAM,EAAED,gBAAM,CAAC,0BAA0B;AACzC,YAAA,SAAS,EAAE,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAE,CAAA,EAAE,IAAI,CAAC;SACpD,CAAC;KACL;AAEM,IAAA,MAAM,GAAG,CAAC,GAAW,EAAE,OAAY,EAAE,OAA0B,EAAA;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;AAEnD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,QAAe,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;AAE5C,QAAA,OAAO,OAAO,CAAC;KAClB;AAEM,IAAA,MAAM,GAAG,CAAC,GAAW,EAAE,OAAuB,EAAA;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACtC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE1C,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACf,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,YAAA,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,IAAI,CAAC,KAAK;kBACX,KAAK,CAAC,OAAO;AACf,kBAAE,KAAK,CAAC,OAAO,CAAC;SACvB;KACJ;AAEM,IAAA,MAAM,IAAI,CAAC,GAAG,EAAE,OAAuB,EAAA;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACtC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;AAClC,QAAA,OAAO,IAAI,CAAC;KACf;AAEM,IAAA,MAAM,UAAU,CAAC,IAAI,EAAE,OAAuB,EAAA;AACjD,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;SACnC;aAAM;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAEzD,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACxC;KACJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-service.mjs","sources":["../../src/services/cache-service.ts"],"sourcesContent":[null],"names":["logger","cdmLogger"],"mappings":"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"}
|