@common-stack/cache-api-server 0.5.1-alpha.4 → 0.5.4

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 CHANGED
@@ -3,34 +3,178 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [0.5.1-alpha.4](https://github.com/cdmbase/common-stack/compare/v0.5.1-alpha.3...v0.5.1-alpha.4) (2023-01-10)
6
+ ## [0.5.4](https://github.com/cdmbase/common-stack/compare/v0.5.3...v0.5.4) (2023-03-05)
7
7
 
8
8
  **Note:** Version bump only for package @common-stack/cache-api-server
9
9
 
10
- ## [0.5.1-alpha.1](https://github.com/cdmbase/common-stack/compare/v0.5.1-alpha.0...v0.5.1-alpha.1) (2022-12-25)
10
+ ## [0.5.1](https://github.com/cdmbase/common-stack/compare/v0.4.12...v0.5.1) (2023-01-31)
11
11
 
12
12
  **Note:** Version bump only for package @common-stack/cache-api-server
13
13
 
14
- ## [0.3.1-alpha.5](https://github.com/cdmbase/common-stack/compare/v0.3.1-alpha.4...v0.3.1-alpha.5) (2022-12-18)
14
+ ## [0.4.6](https://github.com/cdmbase/common-stack/compare/v0.4.5...v0.4.6) (2022-12-21)
15
15
 
16
16
  **Note:** Version bump only for package @common-stack/cache-api-server
17
17
 
18
- ## [0.3.1-alpha.2](https://github.com/cdmbase/common-stack/compare/v0.3.1-alpha.1...v0.3.1-alpha.2) (2022-12-14)
18
+ ## [0.4.5](https://github.com/cdmbase/common-stack/compare/v0.4.4...v0.4.5) (2022-12-18)
19
19
 
20
20
  **Note:** Version bump only for package @common-stack/cache-api-server
21
21
 
22
- ## [0.3.1-alpha.1](https://github.com/cdmbase/common-stack/compare/v0.3.1-alpha.0...v0.3.1-alpha.1) (2022-12-13)
22
+ ## [0.4.3](https://github.com/cdmbase/common-stack/compare/v0.4.2...v0.4.3) (2022-12-13)
23
23
 
24
24
  **Note:** Version bump only for package @common-stack/cache-api-server
25
25
 
26
- ## [0.3.1-alpha.0](https://github.com/cdmbase/common-stack/compare/v0.2.26-alpha.0...v0.3.1-alpha.0) (2022-11-26)
26
+ ## [0.4.1](https://github.com/cdmbase/common-stack/compare/v0.2.34...v0.4.1) (2022-12-09)
27
27
 
28
28
  **Note:** Version bump only for package @common-stack/cache-api-server
29
29
 
30
- ## [0.2.26-alpha.0](https://github.com/cdmbase/common-stack/compare/v0.0.251...v0.2.26-alpha.0) (2022-11-26)
30
+ ## [0.2.32](https://github.com/cdmbase/common-stack/compare/v0.2.31...v0.2.32) (2022-12-06)
31
31
 
32
32
  **Note:** Version bump only for package @common-stack/cache-api-server
33
33
 
34
- ## [0.0.252-alpha.0](https://github.com/cdmbase/common-stack/compare/v0.0.251...v0.0.252-alpha.0) (2021-03-29)
34
+ ## [0.2.30](https://github.com/cdmbase/common-stack/compare/v0.2.29...v0.2.30) (2022-12-05)
35
+
36
+ **Note:** Version bump only for package @common-stack/cache-api-server
37
+
38
+ ## [0.2.29](https://github.com/cdmbase/common-stack/compare/v0.2.28...v0.2.29) (2022-11-26)
39
+
40
+ **Note:** Version bump only for package @common-stack/cache-api-server
41
+
42
+ ## [0.2.28](https://github.com/cdmbase/common-stack/compare/v0.2.27...v0.2.28) (2022-11-26)
43
+
44
+ **Note:** Version bump only for package @common-stack/cache-api-server
45
+
46
+ ## [0.2.27](https://github.com/cdmbase/common-stack/compare/v0.2.26...v0.2.27) (2022-11-26)
47
+
48
+ **Note:** Version bump only for package @common-stack/cache-api-server
49
+
50
+ ## [0.2.26](https://github.com/cdmbase/common-stack/compare/v0.0.251...v0.2.26) (2022-11-26)
51
+
52
+ **Note:** Version bump only for package @common-stack/cache-api-server
53
+
54
+ ## [0.2.25](https://github.com/cdmbase/common-stack/compare/v0.2.24...v0.2.25) (2022-11-24)
55
+
56
+ **Note:** Version bump only for package @common-stack/cache-api-server
57
+
58
+ ## [0.2.24](https://github.com/cdmbase/common-stack/compare/v0.2.23...v0.2.24) (2022-11-22)
59
+
60
+ **Note:** Version bump only for package @common-stack/cache-api-server
61
+
62
+ ## [0.2.23](https://github.com/cdmbase/common-stack/compare/v0.2.22...v0.2.23) (2022-11-21)
63
+
64
+ **Note:** Version bump only for package @common-stack/cache-api-server
65
+
66
+ ## [0.2.21](https://github.com/cdmbase/common-stack/compare/v0.2.20...v0.2.21) (2022-10-26)
67
+
68
+ **Note:** Version bump only for package @common-stack/cache-api-server
69
+
70
+ ## [0.2.16](https://github.com/cdmbase/common-stack/compare/v0.2.15...v0.2.16) (2022-10-03)
71
+
72
+ **Note:** Version bump only for package @common-stack/cache-api-server
73
+
74
+ ## [0.2.14](https://github.com/cdmbase/common-stack/compare/v0.2.13...v0.2.14) (2022-10-02)
75
+
76
+ **Note:** Version bump only for package @common-stack/cache-api-server
77
+
78
+ ## [0.2.4](https://github.com/cdmbase/common-stack/compare/v0.2.3...v0.2.4) (2022-05-27)
79
+
80
+ **Note:** Version bump only for package @common-stack/cache-api-server
81
+
82
+ ## [0.2.1](https://github.com/cdmbase/common-stack/compare/v0.1.24...v0.2.1) (2022-03-19)
83
+
84
+ **Note:** Version bump only for package @common-stack/cache-api-server
85
+
86
+ ## [0.1.21](https://github.com/cdmbase/common-stack/compare/v0.1.20...v0.1.21) (2022-03-18)
87
+
88
+ **Note:** Version bump only for package @common-stack/cache-api-server
89
+
90
+ ## [0.1.19](https://github.com/cdmbase/common-stack/compare/v0.1.18...v0.1.19) (2022-01-18)
91
+
92
+ **Note:** Version bump only for package @common-stack/cache-api-server
93
+
94
+ ## [0.1.11](https://github.com/cdmbase/common-stack/compare/v0.1.10...v0.1.11) (2021-11-07)
95
+
96
+ **Note:** Version bump only for package @common-stack/cache-api-server
97
+
98
+ ## [0.1.9](https://github.com/cdmbase/common-stack/compare/v0.1.8...v0.1.9) (2021-10-07)
99
+
100
+ **Note:** Version bump only for package @common-stack/cache-api-server
101
+
102
+ ## [0.1.8](https://github.com/cdmbase/common-stack/compare/v0.1.7...v0.1.8) (2021-10-05)
103
+
104
+ **Note:** Version bump only for package @common-stack/cache-api-server
105
+
106
+ ## [0.1.7](https://github.com/cdmbase/common-stack/compare/v0.1.6...v0.1.7) (2021-08-11)
107
+
108
+ **Note:** Version bump only for package @common-stack/cache-api-server
109
+
110
+ ## [0.1.6](https://github.com/cdmbase/common-stack/compare/v0.1.5...v0.1.6) (2021-08-11)
111
+
112
+ **Note:** Version bump only for package @common-stack/cache-api-server
113
+
114
+ ## [0.1.5](https://github.com/cdmbase/common-stack/compare/v0.1.4...v0.1.5) (2021-08-11)
115
+
116
+ **Note:** Version bump only for package @common-stack/cache-api-server
117
+
118
+ ## [0.1.4](https://github.com/cdmbase/common-stack/compare/v0.1.3...v0.1.4) (2021-08-11)
119
+
120
+ **Note:** Version bump only for package @common-stack/cache-api-server
121
+
122
+ ## [0.1.3](https://github.com/cdmbase/common-stack/compare/v0.1.2...v0.1.3) (2021-08-11)
123
+
124
+ **Note:** Version bump only for package @common-stack/cache-api-server
125
+
126
+ ## [0.1.1](https://github.com/cdmbase/common-stack/compare/v0.0.264...v0.1.1) (2021-08-05)
127
+
128
+ **Note:** Version bump only for package @common-stack/cache-api-server
129
+
130
+ ## [0.0.264](https://github.com/cdmbase/common-stack/compare/v0.0.263...v0.0.264) (2021-07-04)
131
+
132
+ **Note:** Version bump only for package @common-stack/cache-api-server
133
+
134
+ ## [0.0.263](https://github.com/cdmbase/common-stack/compare/v0.0.262...v0.0.263) (2021-07-03)
135
+
136
+ **Note:** Version bump only for package @common-stack/cache-api-server
137
+
138
+ ## [0.0.262](https://github.com/cdmbase/common-stack/compare/v0.0.261...v0.0.262) (2021-06-23)
139
+
140
+ **Note:** Version bump only for package @common-stack/cache-api-server
141
+
142
+ ## [0.0.261](https://github.com/cdmbase/common-stack/compare/v0.0.260...v0.0.261) (2021-06-01)
143
+
144
+ **Note:** Version bump only for package @common-stack/cache-api-server
145
+
146
+ ## [0.0.260](https://github.com/cdmbase/common-stack/compare/v0.0.259...v0.0.260) (2021-05-28)
147
+
148
+ **Note:** Version bump only for package @common-stack/cache-api-server
149
+
150
+ ## [0.0.259](https://github.com/cdmbase/common-stack/compare/v0.0.258...v0.0.259) (2021-05-28)
151
+
152
+ **Note:** Version bump only for package @common-stack/cache-api-server
153
+
154
+ ## [0.0.258](https://github.com/cdmbase/common-stack/compare/v0.0.257...v0.0.258) (2021-05-14)
155
+
156
+ **Note:** Version bump only for package @common-stack/cache-api-server
157
+
158
+ ## [0.0.257](https://github.com/cdmbase/common-stack/compare/v0.0.256...v0.0.257) (2021-05-05)
159
+
160
+ **Note:** Version bump only for package @common-stack/cache-api-server
161
+
162
+ ## [0.0.256](https://github.com/cdmbase/common-stack/compare/v0.0.255...v0.0.256) (2021-05-05)
163
+
164
+ **Note:** Version bump only for package @common-stack/cache-api-server
165
+
166
+ ## [0.0.255](https://github.com/cdmbase/common-stack/compare/v0.0.254...v0.0.255) (2021-04-03)
167
+
168
+ **Note:** Version bump only for package @common-stack/cache-api-server
169
+
170
+ ## [0.0.254](https://github.com/cdmbase/common-stack/compare/v0.0.253...v0.0.254) (2021-03-31)
171
+
172
+ **Note:** Version bump only for package @common-stack/cache-api-server
173
+
174
+ ## [0.0.253](https://github.com/cdmbase/common-stack/compare/v0.0.252...v0.0.253) (2021-03-31)
175
+
176
+ **Note:** Version bump only for package @common-stack/cache-api-server
177
+
178
+ ## [0.0.252](https://github.com/cdmbase/common-stack/compare/v0.0.251...v0.0.252) (2021-03-29)
35
179
 
36
180
  **Note:** Version bump only for package @common-stack/cache-api-server
@@ -1,10 +1,9 @@
1
- export interface IConfig {
2
- NODE_ENV: string;
1
+ export declare const config: Readonly<{
3
2
  REDIS_URL: string;
4
- REDIS_CACHE_MAX_AGE_in_sec: number;
5
3
  REDIS_SENTINEL_ENABLED: boolean;
6
- REDIS_SENTINEL_NAME?: string;
7
- REDIS_CLUSTER_ENABLED?: boolean;
8
- REDIS_CLUSTER_URL?: any;
9
- }
10
- export declare const config: Readonly<IConfig & import("envalid").CleanedEnvAccessors>;
4
+ REDIS_SENTINEL_NAME: string;
5
+ REDIS_CLUSTER_ENABLED: boolean;
6
+ REDIS_CLUSTER_URL: any;
7
+ REDIS_CACHE_MAX_AGE_in_sec: number;
8
+ NODE_ENV: string;
9
+ } & import("envalid").CleanedEnvAccessors>;
package/lib/index.js CHANGED
@@ -14,12 +14,26 @@ exports.config = void 0;
14
14
  const envalid_1 = __webpack_require__(/*! envalid */ "envalid");
15
15
  exports.config = (0, envalid_1.cleanEnv)(process.env, {
16
16
  REDIS_URL: (0, envalid_1.str)(),
17
- REDIS_SENTINEL_ENABLED: (0, envalid_1.bool)({ devDefault: false }),
18
- REDIS_SENTINEL_NAME: (0, envalid_1.str)({ default: 'mymaster' }),
19
- REDIS_CLUSTER_ENABLED: (0, envalid_1.bool)({ default: false }),
20
- REDIS_CLUSTER_URL: (0, envalid_1.json)({ desc: "Send cluster nodes as array of host and port object. ex: [{ host: 'node1', port: 6678}]" }),
21
- REDIS_CACHE_MAX_AGE_in_sec: (0, envalid_1.num)({ default: 2592000, desc: 'Max. age in seconds. Default is 30 days' }),
22
- NODE_ENV: (0, envalid_1.str)({ choices: ['production', 'test', 'staging', 'development'], default: 'production' }),
17
+ REDIS_SENTINEL_ENABLED: (0, envalid_1.bool)({
18
+ devDefault: false
19
+ }),
20
+ REDIS_SENTINEL_NAME: (0, envalid_1.str)({
21
+ default: 'mymaster'
22
+ }),
23
+ REDIS_CLUSTER_ENABLED: (0, envalid_1.bool)({
24
+ default: false
25
+ }),
26
+ REDIS_CLUSTER_URL: (0, envalid_1.json)({
27
+ desc: "Send cluster nodes as array of host and port object. ex: [{ host: 'node1', port: 6678}]"
28
+ }),
29
+ REDIS_CACHE_MAX_AGE_in_sec: (0, envalid_1.num)({
30
+ default: 2592000,
31
+ desc: 'Max. age in seconds. Default is 30 days'
32
+ }),
33
+ NODE_ENV: (0, envalid_1.str)({
34
+ choices: ['production', 'test', 'staging', 'development'],
35
+ default: 'production'
36
+ })
23
37
  });
24
38
 
25
39
 
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@common-stack/cache-api-server/./src/config/env-config.ts","webpack://@common-stack/cache-api-server/./src/config/index.ts","webpack://@common-stack/cache-api-server/./src/constants.ts","webpack://@common-stack/cache-api-server/./src/containers/index.ts","webpack://@common-stack/cache-api-server/./src/containers/module.ts","webpack://@common-stack/cache-api-server/./src/engines/ioredis-engine.ts","webpack://@common-stack/cache-api-server/./src/index.ts","webpack://@common-stack/cache-api-server/./src/module.ts","webpack://@common-stack/cache-api-server/./src/services/cache-service.ts","webpack://@common-stack/cache-api-server/./src/services/index.ts","webpack://@common-stack/cache-api-server/external commonjs \"@cdm-logger/server\"","webpack://@common-stack/cache-api-server/external commonjs \"@common-stack/server-core\"","webpack://@common-stack/cache-api-server/external commonjs \"envalid\"","webpack://@common-stack/cache-api-server/external commonjs \"inversify\"","webpack://@common-stack/cache-api-server/external commonjs \"ioredis\"","webpack://@common-stack/cache-api-server/external commonjs \"url\"","webpack://@common-stack/cache-api-server/webpack/bootstrap","webpack://@common-stack/cache-api-server/webpack/before-startup","webpack://@common-stack/cache-api-server/webpack/startup","webpack://@common-stack/cache-api-server/webpack/after-startup"],"sourcesContent":["import { str, cleanEnv, json, num, bool } from 'envalid';\n\nexport interface IConfig {\n NODE_ENV: string;\n REDIS_URL: string;\n REDIS_CACHE_MAX_AGE_in_sec: number;\n REDIS_SENTINEL_ENABLED: boolean;\n REDIS_SENTINEL_NAME?: string;\n REDIS_CLUSTER_ENABLED?: boolean;\n REDIS_CLUSTER_URL?: any;\n}\n\nexport const config = cleanEnv<IConfig>(process.env, {\n REDIS_URL: str(),\n REDIS_SENTINEL_ENABLED: bool({ devDefault: false }),\n REDIS_SENTINEL_NAME: str({ default: 'mymaster' }),\n REDIS_CLUSTER_ENABLED: bool({ default: false }),\n REDIS_CLUSTER_URL: json({ desc: \"Send cluster nodes as array of host and port object. ex: [{ host: 'node1', port: 6678}]\" }),\n REDIS_CACHE_MAX_AGE_in_sec: num({ default: 2592000, desc: 'Max. age in seconds. Default is 30 days' }),\n NODE_ENV: str({ choices: ['production', 'test', 'staging', 'development'], default: 'production' }),\n});\n\n","export * from './env-config';\n","export enum Types {\n CacheEngine = 'CacheEngine',\n CacheService = 'CacheService',\n}\n","export * from './module';\n","import { ContainerModule, interfaces } from 'inversify';\nimport { CdmLogger } from '@cdm-logger/core';\nimport { Cache } from '../services';\nimport { Types } from '../constants';\nimport { Redis } from '../engines/ioredis-engine';\nimport { ICacheEngine } from '../interfaces';\n\nexport const moduleFunc: (settings: any, pubsub) => interfaces.ContainerModule =\n (settings: any) => new ContainerModule((bind: interfaces.Bind) => {\n\n /**\n *\n * @returns: () => cache;\n */\n bind<interfaces.Factory<Cache>>(Types.CacheService).toFactory<Cache>((context: interfaces.Context) => {\n return () => {\n // TODO: to make it singleton we need to check if Cache already exist then return same.\n const cacheEngine = context.container.get<ICacheEngine>(Types.CacheEngine);\n const logger = context.container.get<CdmLogger.ILogger>('Logger');\n const cache = new Cache(cacheEngine, logger);\n return cache;\n };\n }).whenTargetIsDefault();\n\n bind<ICacheEngine>(Types.CacheEngine)\n .toConstantValue(new Redis(settings.redisConnection))\n // .inSingletonScope()\n .whenTargetIsDefault();\n });\n\n","import * as IORedis from 'ioredis';\nimport { Cluster, ClusterNode, ClusterOptions, Redis as RedisInterface, RedisOptions } from 'ioredis';\nimport { ICacheEngine } from '../interfaces';\n\nexport class Redis implements ICacheEngine {\n private client: RedisInterface | Cluster;\n private getAsync;\n\n constructor(options: RedisOptions | ClusterOptions, isCluster?: boolean, clusterNodes?: ClusterNode[]) {\n if (isCluster) {\n this.client = new Cluster(clusterNodes, options);\n } else {\n this.client = new IORedis(options);\n }\n }\n\n public async set(key: string, data: any) {\n if (data.maxAge) {\n await this.client.set(key, JSON.stringify(data), 'EX', data.maxAge);\n return data;\n }\n await this.client.set(key, JSON.stringify(data));\n return data;\n }\n\n public async get(key: string) {\n const cacheString = await this.client.get(key);\n return JSON.parse(cacheString);\n }\n\n public async drop(key: string) {\n await this.client.del(key);\n return true;\n }\n\n public async invalidate(keys?: string[]) {\n (keys || []).forEach(key => this.client.del(key));\n return true;\n }\n}\n","import { Feature } from '@common-stack/server-core';\nimport module from './module';\n\nexport * from './constants';\nexport { Cache } from './services';\nexport default new Feature(module);\n\n","import * as _ from 'lodash';\nimport { interfaces } from 'inversify';\nimport { Feature } from '@common-stack/server-core';\n\nimport { Types } from './constants';\nimport { moduleFunc } from './containers';\n\nconst createServiceFunc = (container: interfaces.Container) => ({\n cache: container.get(Types.CacheService),\n});\n\nexport default new Feature({\n schema: [],\n createServiceFunc,\n createContainerFunc: [moduleFunc],\n});\n","import * as _ from 'lodash';\nimport * as url from 'url';\nimport { CdmLogger } from '@cdm-logger/core';\nimport { logger as cdmLogger } from '@cdm-logger/server';\nimport { ICacheService, ICacheEngine, ICacheOptions, ICacheSetOptions } from '../interfaces';\nimport { Redis } from '../engines/ioredis-engine';\nimport { config } from '../config';\n\nexport class Cache implements ICacheService {\n private static DEFAULT_SCOPE = 'cde_cache';\n private static instance: Cache;\n\n private logger: CdmLogger.ILogger;\n private engine: ICacheEngine;\n\n constructor(\n engine: ICacheEngine,\n logger?: CdmLogger.ILogger,\n ) {\n this.engine = engine;\n if (logger) {\n this.logger = logger.child(this.constructor.name);\n } else {\n this.logger = cdmLogger.child(this.constructor.name);\n }\n }\n\n public static get Instance() {\n if (this.instance) {\n return this.instance;\n }\n const { port, hostname } = url.parse(config.REDIS_URL) as { port: any, hostname: string };\n let options;\n let client;\n if (config.REDIS_SENTINEL_ENABLED) {\n options = {\n sentinels: [{ host: hostname, port }],\n name: config.REDIS_SENTINEL_NAME,\n };\n client = new Redis(options);\n } else if (config.REDIS_CLUSTER_ENABLED) {\n options = {};\n client = new Redis(options, true, config.REDIS_CLUSTER_URL);\n } else {\n options = { host: hostname, port };\n client = new Redis(options);\n }\n this.instance = new this(client);\n return this.instance;\n }\n\n private key(key: string, scope?: string) {\n return `${scope || Cache.DEFAULT_SCOPE}.${key}`;\n }\n\n private isExpired(createdAt: number, maxAge: number) {\n const now = parseInt(`${Date.now() / 1000}`, null);\n return now - createdAt > maxAge;\n }\n\n private getOptions(opts: ICacheOptions) {\n return Object.assign(this.defaults, opts || {});\n }\n\n get defaults() {\n return {\n scope: Cache.DEFAULT_SCOPE,\n maxAge: config.REDIS_CACHE_MAX_AGE_in_sec,\n createdAt: parseInt(`${Date.now() / 1000}`, null),\n };\n }\n\n public async set(key: string, payload: any, options?: ICacheSetOptions) {\n const opts = this.getOptions(options);\n const cache = Object.assign({}, { payload }, opts);\n\n const path = this.key(key, opts.scope);\n const result = this.engine.set(path, cache);\n\n return payload;\n }\n\n public async get(key: string, options?: ICacheOptions) {\n const opts = this.getOptions(options);\n const path = this.key(key, opts.scope);\n const cache = await this.engine.get(path);\n\n if (cache == null) {\n return null;\n }\n\n if (this.isExpired(cache.createdAt, cache.maxAge)) {\n this.engine.drop(path);\n return null;\n } else {\n return opts.parse\n ? cache.payload\n : cache.payload; // not really doing anything here\n }\n }\n\n public async drop(key, options?: ICacheOptions) {\n const opts = this.getOptions(options);\n const path = this.key(key, opts.scope);\n\n const ok = this.engine.drop(path);\n return true;\n }\n\n public async invalidate(keys, options?: ICacheOptions) {\n if (keys.length <= 0) {\n return this.engine.invalidate();\n } else {\n const opts = this.getOptions(options);\n const paths = keys.map(key => this.key(key, opts.scope));\n\n return this.engine.invalidate(paths);\n }\n }\n}\n","export * from './cache-service';\n","module.exports = require(\"@cdm-logger/server\");","module.exports = require(\"@common-stack/server-core\");","module.exports = require(\"envalid\");","module.exports = require(\"inversify\");","module.exports = require(\"ioredis\");","module.exports = require(\"url\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n",""],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@common-stack/cache-api-server/./src/config/env-config.ts","webpack://@common-stack/cache-api-server/./src/config/index.ts","webpack://@common-stack/cache-api-server/./src/constants.ts","webpack://@common-stack/cache-api-server/./src/containers/index.ts","webpack://@common-stack/cache-api-server/./src/containers/module.ts","webpack://@common-stack/cache-api-server/./src/engines/ioredis-engine.ts","webpack://@common-stack/cache-api-server/./src/index.ts","webpack://@common-stack/cache-api-server/./src/module.ts","webpack://@common-stack/cache-api-server/./src/services/cache-service.ts","webpack://@common-stack/cache-api-server/./src/services/index.ts","webpack://@common-stack/cache-api-server/external commonjs \"@cdm-logger/server\"","webpack://@common-stack/cache-api-server/external commonjs \"@common-stack/server-core\"","webpack://@common-stack/cache-api-server/external commonjs \"envalid\"","webpack://@common-stack/cache-api-server/external commonjs \"inversify\"","webpack://@common-stack/cache-api-server/external commonjs \"ioredis\"","webpack://@common-stack/cache-api-server/external commonjs \"url\"","webpack://@common-stack/cache-api-server/webpack/bootstrap","webpack://@common-stack/cache-api-server/webpack/before-startup","webpack://@common-stack/cache-api-server/webpack/startup","webpack://@common-stack/cache-api-server/webpack/after-startup"],"sourcesContent":["import { str, cleanEnv, json, num, bool } from 'envalid';\nexport const config = cleanEnv(process.env, {\n REDIS_URL: str(),\n REDIS_SENTINEL_ENABLED: bool({\n devDefault: false\n }),\n REDIS_SENTINEL_NAME: str({\n default: 'mymaster'\n }),\n REDIS_CLUSTER_ENABLED: bool({\n default: false\n }),\n REDIS_CLUSTER_URL: json({\n desc: \"Send cluster nodes as array of host and port object. ex: [{ host: 'node1', port: 6678}]\"\n }),\n REDIS_CACHE_MAX_AGE_in_sec: num({\n default: 2592000,\n desc: 'Max. age in seconds. Default is 30 days'\n }),\n NODE_ENV: str({\n choices: ['production', 'test', 'staging', 'development'],\n default: 'production'\n })\n});","export * from './env-config';\n","export enum Types {\n CacheEngine = 'CacheEngine',\n CacheService = 'CacheService',\n}\n","export * from './module';\n","import { ContainerModule, interfaces } from 'inversify';\nimport { CdmLogger } from '@cdm-logger/core';\nimport { Cache } from '../services';\nimport { Types } from '../constants';\nimport { Redis } from '../engines/ioredis-engine';\nimport { ICacheEngine } from '../interfaces';\n\nexport const moduleFunc: (settings: any, pubsub) => interfaces.ContainerModule =\n (settings: any) => new ContainerModule((bind: interfaces.Bind) => {\n\n /**\n *\n * @returns: () => cache;\n */\n bind<interfaces.Factory<Cache>>(Types.CacheService).toFactory<Cache>((context: interfaces.Context) => {\n return () => {\n // TODO: to make it singleton we need to check if Cache already exist then return same.\n const cacheEngine = context.container.get<ICacheEngine>(Types.CacheEngine);\n const logger = context.container.get<CdmLogger.ILogger>('Logger');\n const cache = new Cache(cacheEngine, logger);\n return cache;\n };\n }).whenTargetIsDefault();\n\n bind<ICacheEngine>(Types.CacheEngine)\n .toConstantValue(new Redis(settings.redisConnection))\n // .inSingletonScope()\n .whenTargetIsDefault();\n });\n\n","import * as IORedis from 'ioredis';\nimport { Cluster, ClusterNode, ClusterOptions, Redis as RedisInterface, RedisOptions } from 'ioredis';\nimport { ICacheEngine } from '../interfaces';\n\nexport class Redis implements ICacheEngine {\n private client: RedisInterface | Cluster;\n private getAsync;\n\n constructor(options: RedisOptions | ClusterOptions, isCluster?: boolean, clusterNodes?: ClusterNode[]) {\n if (isCluster) {\n this.client = new Cluster(clusterNodes, options);\n } else {\n this.client = new IORedis(options);\n }\n }\n\n public async set(key: string, data: any) {\n if (data.maxAge) {\n await this.client.set(key, JSON.stringify(data), 'EX', data.maxAge);\n return data;\n }\n await this.client.set(key, JSON.stringify(data));\n return data;\n }\n\n public async get(key: string) {\n const cacheString = await this.client.get(key);\n return JSON.parse(cacheString);\n }\n\n public async drop(key: string) {\n await this.client.del(key);\n return true;\n }\n\n public async invalidate(keys?: string[]) {\n (keys || []).forEach(key => this.client.del(key));\n return true;\n }\n}\n","import { Feature } from '@common-stack/server-core';\nimport module from './module';\n\nexport * from './constants';\nexport { Cache } from './services';\nexport default new Feature(module);\n\n","import * as _ from 'lodash';\nimport { interfaces } from 'inversify';\nimport { Feature } from '@common-stack/server-core';\n\nimport { Types } from './constants';\nimport { moduleFunc } from './containers';\n\nconst createServiceFunc = (container: interfaces.Container) => ({\n cache: container.get(Types.CacheService),\n});\n\nexport default new Feature({\n schema: [],\n createServiceFunc,\n createContainerFunc: [moduleFunc],\n});\n","import * as _ from 'lodash';\nimport * as url from 'url';\nimport { CdmLogger } from '@cdm-logger/core';\nimport { logger as cdmLogger } from '@cdm-logger/server';\nimport { ICacheService, ICacheEngine, ICacheOptions, ICacheSetOptions } from '../interfaces';\nimport { Redis } from '../engines/ioredis-engine';\nimport { config } from '../config';\n\nexport class Cache implements ICacheService {\n private static DEFAULT_SCOPE = 'cde_cache';\n private static instance: Cache;\n\n private logger: CdmLogger.ILogger;\n private engine: ICacheEngine;\n\n constructor(\n engine: ICacheEngine,\n logger?: CdmLogger.ILogger,\n ) {\n this.engine = engine;\n if (logger) {\n this.logger = logger.child(this.constructor.name);\n } else {\n this.logger = cdmLogger.child(this.constructor.name);\n }\n }\n\n public static get Instance() {\n if (this.instance) {\n return this.instance;\n }\n const { port, hostname } = url.parse(config.REDIS_URL) as { port: any, hostname: string };\n let options;\n let client;\n if (config.REDIS_SENTINEL_ENABLED) {\n options = {\n sentinels: [{ host: hostname, port }],\n name: config.REDIS_SENTINEL_NAME,\n };\n client = new Redis(options);\n } else if (config.REDIS_CLUSTER_ENABLED) {\n options = {};\n client = new Redis(options, true, config.REDIS_CLUSTER_URL);\n } else {\n options = { host: hostname, port };\n client = new Redis(options);\n }\n this.instance = new this(client);\n return this.instance;\n }\n\n private key(key: string, scope?: string) {\n return `${scope || Cache.DEFAULT_SCOPE}.${key}`;\n }\n\n private isExpired(createdAt: number, maxAge: number) {\n const now = parseInt(`${Date.now() / 1000}`, null);\n return now - createdAt > maxAge;\n }\n\n private getOptions(opts: ICacheOptions) {\n return Object.assign(this.defaults, opts || {});\n }\n\n get defaults() {\n return {\n scope: Cache.DEFAULT_SCOPE,\n maxAge: config.REDIS_CACHE_MAX_AGE_in_sec,\n createdAt: parseInt(`${Date.now() / 1000}`, null),\n };\n }\n\n public async set(key: string, payload: any, options?: ICacheSetOptions) {\n const opts = this.getOptions(options);\n const cache = Object.assign({}, { payload }, opts);\n\n const path = this.key(key, opts.scope);\n const result = this.engine.set(path, cache);\n\n return payload;\n }\n\n public async get(key: string, options?: ICacheOptions) {\n const opts = this.getOptions(options);\n const path = this.key(key, opts.scope);\n const cache = await this.engine.get(path);\n\n if (cache == null) {\n return null;\n }\n\n if (this.isExpired(cache.createdAt, cache.maxAge)) {\n this.engine.drop(path);\n return null;\n } else {\n return opts.parse\n ? cache.payload\n : cache.payload; // not really doing anything here\n }\n }\n\n public async drop(key, options?: ICacheOptions) {\n const opts = this.getOptions(options);\n const path = this.key(key, opts.scope);\n\n const ok = this.engine.drop(path);\n return true;\n }\n\n public async invalidate(keys, options?: ICacheOptions) {\n if (keys.length <= 0) {\n return this.engine.invalidate();\n } else {\n const opts = this.getOptions(options);\n const paths = keys.map(key => this.key(key, opts.scope));\n\n return this.engine.invalidate(paths);\n }\n }\n}\n","export * from './cache-service';\n","module.exports = require(\"@cdm-logger/server\");","module.exports = require(\"@common-stack/server-core\");","module.exports = require(\"envalid\");","module.exports = require(\"inversify\");","module.exports = require(\"ioredis\");","module.exports = require(\"url\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n",""],"names":[],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/cache-api-server",
3
- "version": "0.5.1-alpha.4",
3
+ "version": "0.5.4",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -21,7 +21,8 @@
21
21
  "watch": "npm run build:lib:watch"
22
22
  },
23
23
  "dependencies": {
24
- "@common-stack/server-core": "0.5.1-alpha.4"
24
+ "@common-stack/env-list-loader": "0.5.4",
25
+ "@common-stack/server-core": "0.5.1"
25
26
  },
26
27
  "peerDependencies": {
27
28
  "ioredis": ">=5.0.0"
@@ -29,7 +30,7 @@
29
30
  "publishConfig": {
30
31
  "access": "public"
31
32
  },
32
- "gitHead": "23a35da8b66525121fee75983535c241332987ec",
33
+ "gitHead": "8c6e84d83ea80385f7145810527e6e74e4f3eac7",
33
34
  "typescript": {
34
35
  "definition": "lib/index.d.ts"
35
36
  }
package/webpack.config.js CHANGED
@@ -48,6 +48,17 @@ const webpackOpts = {
48
48
  exclude: /node_modules/,
49
49
  use: 'raw-loader',
50
50
  },
51
+ {
52
+ test: /(env|public)-config.ts$/,
53
+ exclude: /node_modules/,
54
+ use: {
55
+ loader: 'babel-loader',
56
+ options: {
57
+ presets: ['@babel/preset-env', '@babel/preset-typescript'],
58
+ plugins: ['@common-stack/env-list-loader/lib/envLogger.js'],
59
+ },
60
+ },
61
+ },
51
62
  ],
52
63
  },
53
64
  externals: [nodeExternals({ modulesDir: '../../../node_modules' }), nodeExternals()],