@common-stack/cache-api-server 0.1.11 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
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.2.1](https://github.com/cdmbase/common-stack/compare/v0.1.24...v0.2.1) (2022-03-19)
7
+
8
+ **Note:** Version bump only for package @common-stack/cache-api-server
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.1.21](https://github.com/cdmbase/common-stack/compare/v0.1.20...v0.1.21) (2022-03-18)
15
+
16
+ **Note:** Version bump only for package @common-stack/cache-api-server
17
+
18
+
19
+
20
+
21
+
22
+ ## [0.1.19](https://github.com/cdmbase/common-stack/compare/v0.1.18...v0.1.19) (2022-01-18)
23
+
24
+ **Note:** Version bump only for package @common-stack/cache-api-server
25
+
26
+
27
+
28
+
29
+
6
30
  ## [0.1.11](https://github.com/cdmbase/common-stack/compare/v0.1.10...v0.1.11) (2021-11-07)
7
31
 
8
32
  **Note:** Version bump only for package @common-stack/cache-api-server
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Feature } from '@common-stack/server-core';
2
2
  export * from './constants';
3
3
  export { Cache } from './services';
4
- declare const _default: Feature<import("../../../../packages/common-server-core/lib").ConfigurationScope>;
4
+ declare const _default: Feature<import("@common-stack/server-core").ConfigurationScope>;
5
5
  export default _default;
package/lib/index.js CHANGED
@@ -130,7 +130,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
130
130
  o[k2] = m[k];
131
131
  }));
132
132
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
133
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
133
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
134
134
  };
135
135
  Object.defineProperty(exports, "__esModule", { value: true });
136
136
  __exportStar(__webpack_require__(/*! ./env-config */ "./src/config/env-config.ts"), exports);
@@ -175,7 +175,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
175
175
  o[k2] = m[k];
176
176
  }));
177
177
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
178
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
178
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
179
179
  };
180
180
  Object.defineProperty(exports, "__esModule", { value: true });
181
181
  __exportStar(__webpack_require__(/*! ./module */ "./src/containers/module.ts"), exports);
@@ -198,7 +198,7 @@ const inversify_1 = __webpack_require__(/*! inversify */ "inversify");
198
198
  const services_1 = __webpack_require__(/*! ../services */ "./src/services/index.ts");
199
199
  const constants_1 = __webpack_require__(/*! ../constants */ "./src/constants.ts");
200
200
  const ioredis_engine_1 = __webpack_require__(/*! ../engines/ioredis-engine */ "./src/engines/ioredis-engine.ts");
201
- exports.moduleFunc = (settings) => new inversify_1.ContainerModule((bind) => {
201
+ const moduleFunc = (settings) => new inversify_1.ContainerModule((bind) => {
202
202
  /**
203
203
  *
204
204
  * @returns: () => cache;
@@ -217,6 +217,7 @@ exports.moduleFunc = (settings) => new inversify_1.ContainerModule((bind) => {
217
217
  // .inSingletonScope()
218
218
  .whenTargetIsDefault();
219
219
  });
220
+ exports.moduleFunc = moduleFunc;
220
221
 
221
222
 
222
223
  /***/ }),
@@ -287,9 +288,10 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
287
288
  o[k2] = m[k];
288
289
  }));
289
290
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
290
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
291
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
291
292
  };
292
293
  Object.defineProperty(exports, "__esModule", { value: true });
294
+ exports.Cache = void 0;
293
295
  const module_1 = __webpack_require__(/*! ./module */ "./src/module.ts");
294
296
  const server_core_1 = __webpack_require__(/*! @common-stack/server-core */ "@common-stack/server-core");
295
297
  __exportStar(__webpack_require__(/*! ./constants */ "./src/constants.ts"), exports);
@@ -456,7 +458,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
456
458
  o[k2] = m[k];
457
459
  }));
458
460
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
459
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
461
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
460
462
  };
461
463
  Object.defineProperty(exports, "__esModule", { value: true });
462
464
  __exportStar(__webpack_require__(/*! ./cache-service */ "./src/services/cache-service.ts"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/config/env-config.ts","webpack:///./src/config/index.ts","webpack:///./src/constants.ts","webpack:///./src/containers/index.ts","webpack:///./src/containers/module.ts","webpack:///./src/engines/ioredis-engine.ts","webpack:///./src/index.ts","webpack:///./src/module.ts","webpack:///./src/services/cache-service.ts","webpack:///./src/services/index.ts","webpack:///external \"@cdm-logger/server\"","webpack:///external \"@common-stack/server-core\"","webpack:///external \"envalid\"","webpack:///external \"inversify\"","webpack:///external \"ioredis\"","webpack:///external \"url\"","webpack:///external \"util\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import * as envalid from 'envalid';\nconst { str, email, json, num, bool } = 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 = envalid.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';\n\nimport { Cache } from '../services';\nimport { Types } from '../constants';\nimport { Redis } from '../engines/ioredis-engine';\nimport { ICacheEngine, ICacheService } from '../interfaces';\nimport * as Logger from 'bunyan';\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<Logger>('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 { ICacheEngine } from '../interfaces';\nconst { promisify } = require('util');\n\nexport class Redis implements ICacheEngine {\n private client: IORedis.Redis | IORedis.Cluster;\n private getAsync;\n\n constructor(options: IORedis.RedisOptions | IORedis.ClusterOptions, isCluster?: boolean, clusterNodes?: IORedis.ClusterNode[]) {\n if (isCluster) {\n this.client = new IORedis.Cluster(clusterNodes, options);\n } else {\n this.client = new IORedis(options);\n }\n this.getAsync = promisify(this.client.get).bind(this.client);\n }\n\n public async set(key: string, data: any) {\n if (data.maxAge) {\n this.client.set(key, JSON.stringify(data), 'EX', data.maxAge);\n return data;\n }\n this.client.set(key, JSON.stringify(data));\n return data;\n }\n\n public async get(key: string) {\n const cacheString = await this.getAsync(key);\n return JSON.parse(cacheString);\n }\n\n public async drop(key: string) {\n 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 module from './module';\nimport { Feature } from '@common-stack/server-core';\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 { CdmLogger } from '@cdm-logger/core';\n\nimport { Types } from '../constants';\nimport { ICacheService, ICacheEngine, ICacheOptions, ICacheSetOptions } from '../interfaces';\nimport { create } from 'domain';\nimport { Redis } from '../engines/ioredis-engine';\nimport { logger as cdmLogger } from '@cdm-logger/server';\nimport { config } from '../config';\nimport * as url from 'url';\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\");","module.exports = require(\"util\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/config/env-config.ts","webpack:///./src/config/index.ts","webpack:///./src/constants.ts","webpack:///./src/containers/index.ts","webpack:///./src/containers/module.ts","webpack:///./src/engines/ioredis-engine.ts","webpack:///./src/index.ts","webpack:///./src/module.ts","webpack:///./src/services/cache-service.ts","webpack:///./src/services/index.ts","webpack:///external \"@cdm-logger/server\"","webpack:///external \"@common-stack/server-core\"","webpack:///external \"envalid\"","webpack:///external \"inversify\"","webpack:///external \"ioredis\"","webpack:///external \"url\"","webpack:///external \"util\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import * as envalid from 'envalid';\nconst { str, email, json, num, bool } = 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 = envalid.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';\n\nimport { Cache } from '../services';\nimport { Types } from '../constants';\nimport { Redis } from '../engines/ioredis-engine';\nimport { ICacheEngine, ICacheService } from '../interfaces';\nimport { CdmLogger } from '@cdm-logger/core';\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 { ICacheEngine } from '../interfaces';\nconst { promisify } = require('util');\n\nexport class Redis implements ICacheEngine {\n private client: IORedis.Redis | IORedis.Cluster;\n private getAsync;\n\n constructor(options: IORedis.RedisOptions | IORedis.ClusterOptions, isCluster?: boolean, clusterNodes?: IORedis.ClusterNode[]) {\n if (isCluster) {\n this.client = new IORedis.Cluster(clusterNodes, options);\n } else {\n this.client = new IORedis(options);\n }\n this.getAsync = promisify(this.client.get).bind(this.client);\n }\n\n public async set(key: string, data: any) {\n if (data.maxAge) {\n this.client.set(key, JSON.stringify(data), 'EX', data.maxAge);\n return data;\n }\n this.client.set(key, JSON.stringify(data));\n return data;\n }\n\n public async get(key: string) {\n const cacheString = await this.getAsync(key);\n return JSON.parse(cacheString);\n }\n\n public async drop(key: string) {\n 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 module from './module';\nimport { Feature } from '@common-stack/server-core';\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 { CdmLogger } from '@cdm-logger/core';\n\nimport { Types } from '../constants';\nimport { ICacheService, ICacheEngine, ICacheOptions, ICacheSetOptions } from '../interfaces';\nimport { create } from 'domain';\nimport { Redis } from '../engines/ioredis-engine';\nimport { logger as cdmLogger } from '@cdm-logger/server';\nimport { config } from '../config';\nimport * as url from 'url';\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\");","module.exports = require(\"util\");"],"sourceRoot":""}
package/lib/module.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { Feature } from '@common-stack/server-core';
2
- declare const _default: Feature<import("../../../../packages/common-server-core/lib").ConfigurationScope>;
2
+ declare const _default: Feature<import("@common-stack/server-core").ConfigurationScope>;
3
3
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/cache-api-server",
3
- "version": "0.1.11",
3
+ "version": "0.2.1",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -40,18 +40,18 @@
40
40
  }
41
41
  },
42
42
  "dependencies": {
43
+ "@common-stack/server-core": "^0.2.1",
43
44
  "nodemailer": "^4.6.7",
44
45
  "query-string": "^6.1.0",
45
46
  "underscore": "^1.9.1"
46
47
  },
47
48
  "peerDependencies": {
48
- "@common-stack/server-core": "file:../../../packages/common-server-core",
49
49
  "ioredis": ">=4.0.0"
50
50
  },
51
51
  "publishConfig": {
52
52
  "access": "public"
53
53
  },
54
- "gitHead": "2cd1b1ab35c4e330de4fffbdbe028200e02a4beb",
54
+ "gitHead": "8cc362c6c7307e7ea43a9563ccdcb938c93c6008",
55
55
  "typescript": {
56
56
  "definition": "lib/index.d.ts"
57
57
  }
@@ -4,7 +4,7 @@ import { Cache } from '../services';
4
4
  import { Types } from '../constants';
5
5
  import { Redis } from '../engines/ioredis-engine';
6
6
  import { ICacheEngine, ICacheService } from '../interfaces';
7
- import * as Logger from 'bunyan';
7
+ import { CdmLogger } from '@cdm-logger/core';
8
8
 
9
9
  export const moduleFunc: (settings: any, pubsub) => interfaces.ContainerModule =
10
10
  (settings: any) => new ContainerModule((bind: interfaces.Bind) => {
@@ -17,7 +17,7 @@ export const moduleFunc: (settings: any, pubsub) => interfaces.ContainerModule =
17
17
  return () => {
18
18
  // TODO: to make it singleton we need to check if Cache already exist then return same.
19
19
  const cacheEngine = context.container.get<ICacheEngine>(Types.CacheEngine);
20
- const logger = context.container.get<Logger>('Logger');
20
+ const logger = context.container.get<CdmLogger.ILogger>('Logger');
21
21
  const cache = new Cache(cacheEngine, logger);
22
22
  return cache;
23
23
  };