@elementary-lab/cache
Advanced tools
| import { ClientOpts } from 'redis'; | ||
| import { Cache } from '@elementary-lab/cache/src'; | ||
| export declare class RedisCache extends Cache { | ||
| private readonly _config; | ||
| private _connection?; | ||
| constructor(config: ClientOpts); | ||
| private getConnection; | ||
| exists(key: string): Promise<boolean>; | ||
| protected getValue(key: string): Promise<string>; | ||
| protected addValue(key: string, value: any, duration?: number): Promise<any>; | ||
| protected setValue(key: string, value: any, duration?: number): Promise<any>; | ||
| protected flushValues(): Promise<boolean>; | ||
| protected deleteValue(key: string): boolean; | ||
| getDefaultConfiguration(): ClientOpts; | ||
| } |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const redis_1 = require("redis"); | ||
| const src_1 = require("@elementary-lab/cache/src"); | ||
| class RedisCache extends src_1.Cache { | ||
| constructor(config) { | ||
| super(); | ||
| this._config = config; | ||
| } | ||
| getConnection() { | ||
| if (this._connection == null) { | ||
| this._connection = new redis_1.RedisClient(this._config); | ||
| } | ||
| return this._connection; | ||
| } | ||
| async exists(key) { | ||
| return new Promise((resolve, reject) => { | ||
| key = this.buildKey(key); | ||
| const res = this.getConnection().exists(key, (error, reply) => { | ||
| if (error || reply == 0) { | ||
| reject(error); | ||
| } | ||
| else { | ||
| resolve(); | ||
| } | ||
| }); | ||
| if (res == false) { | ||
| reject(); | ||
| } | ||
| }); | ||
| } | ||
| async getValue(key) { | ||
| return new Promise((resolve, reject) => { | ||
| this.getConnection().get(key, (error, data) => { | ||
| if (error) { | ||
| reject(error); | ||
| } | ||
| else { | ||
| resolve(data); | ||
| } | ||
| }); | ||
| }); | ||
| } | ||
| addValue(key, value, duration = 0) { | ||
| return new Promise((resolve, reject) => { | ||
| if (duration === 0) { | ||
| this.getConnection().set(key, value, 'EX', (error, data) => { | ||
| if (error) { | ||
| reject(error); | ||
| } | ||
| else { | ||
| resolve(data); | ||
| } | ||
| }); | ||
| } | ||
| else { | ||
| duration = duration * 1000; | ||
| this.getConnection().sendCommand('SET', [key, value, 'PX', duration, 'NX'], (error, data) => { | ||
| if (error) { | ||
| reject(error); | ||
| } | ||
| else { | ||
| resolve(data); | ||
| } | ||
| }); | ||
| } | ||
| }); | ||
| } | ||
| async setValue(key, value, duration = 0) { | ||
| return new Promise((resolve, reject) => { | ||
| if (duration === 0) { | ||
| this.getConnection().set(key, value, (error, data) => { | ||
| if (error) { | ||
| reject(error); | ||
| } | ||
| else { | ||
| resolve(data); | ||
| } | ||
| }); | ||
| } | ||
| else { | ||
| duration = duration * 1000; | ||
| this.getConnection().set(key, value, 'PX', duration, (error, data) => { | ||
| if (error) { | ||
| reject(error); | ||
| } | ||
| else { | ||
| resolve(data); | ||
| } | ||
| }); | ||
| } | ||
| }); | ||
| } | ||
| flushValues() { | ||
| return Promise.resolve(true); | ||
| } | ||
| deleteValue(key) { | ||
| return false; | ||
| } | ||
| getDefaultConfiguration() { | ||
| return {}; | ||
| } | ||
| } | ||
| exports.RedisCache = RedisCache; | ||
| //# sourceMappingURL=RedisCache.js.map |
| {"version":3,"file":"RedisCache.js","sourceRoot":"","sources":["RedisCache.ts"],"names":[],"mappings":"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"} |
| import { CacheInterface } from '@elementary-lab/standards/src/CacheInterface'; | ||
| export declare abstract class Cache implements CacheInterface { | ||
| keyPrefix: string; | ||
| serializer: string | boolean | null; | ||
| defaultDuration: number; | ||
| buildKey(key: string): string; | ||
| get<T>(key: string): Promise<T | boolean>; | ||
| exists(key: string): Promise<boolean>; | ||
| add(key: string, value: any, duration: number): Promise<any>; | ||
| delete(key: any): boolean; | ||
| flush(): boolean; | ||
| getOrSet(key: string, callable: () => void, duration?: number): boolean; | ||
| multiAdd(items: any[], duration: number): number; | ||
| multiGet(keys: string[]): any[]; | ||
| multiSet(items: any[], duration: number): number; | ||
| set(key: string, value: any, duration?: number): Promise<boolean>; | ||
| protected abstract getValue(key: string): any; | ||
| protected abstract setValue(key: string, value: any, duration: number): Promise<boolean>; | ||
| protected abstract addValue(key: string, value: any, duration: number): Promise<any>; | ||
| protected abstract deleteValue(key: string): any; | ||
| protected abstract flushValues(): Promise<boolean>; | ||
| protected getValues(key: string[]): void; | ||
| protected setValues(data: object, duration: number): void; | ||
| protected addValues(data: any, duration: number): void; | ||
| } |
+77
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| class Cache { | ||
| constructor() { | ||
| this.serializer = false; | ||
| this.defaultDuration = 0; | ||
| } | ||
| buildKey(key) { | ||
| return key; | ||
| } | ||
| async get(key) { | ||
| key = this.buildKey(key); | ||
| return this.getValue(key).then(value => { | ||
| if (value === undefined) { | ||
| return false; | ||
| } | ||
| if (this.serializer === false) { | ||
| return JSON.parse(value); | ||
| } | ||
| return value; | ||
| }); | ||
| } | ||
| async exists(key) { | ||
| return new Promise((resolve, reject) => { | ||
| key = this.buildKey(key); | ||
| this.getValue(key) | ||
| .then(content => { | ||
| if (content != false) { | ||
| resolve(); | ||
| } | ||
| else { | ||
| reject(); | ||
| } | ||
| }) | ||
| .catch(() => reject); | ||
| }); | ||
| } | ||
| add(key, value, duration) { | ||
| if (this.serializer === null) { | ||
| value = JSON.parse(value); | ||
| } | ||
| key = this.buildKey(key); | ||
| return this.addValue(key, value, duration); | ||
| } | ||
| delete(key) { | ||
| key = this.buildKey(key); | ||
| return this.deleteValue(key); | ||
| } | ||
| flush() { | ||
| return false; | ||
| } | ||
| getOrSet(key, callable, duration) { | ||
| return false; | ||
| } | ||
| multiAdd(items, duration) { | ||
| return 0; | ||
| } | ||
| multiGet(keys) { | ||
| return []; | ||
| } | ||
| multiSet(items, duration) { | ||
| return 0; | ||
| } | ||
| set(key, value, duration) { | ||
| key = this.buildKey(key); | ||
| value = JSON.stringify(value); | ||
| return this.setValue(key, value, duration); | ||
| } | ||
| getValues(key) { | ||
| } | ||
| setValues(data, duration) { | ||
| } | ||
| addValues(data, duration) { | ||
| } | ||
| } | ||
| exports.Cache = Cache; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAEA,MAAsB,KAAK;IAA3B;QAGW,eAAU,GAA4B,KAAK,CAAC;QAE5C,oBAAe,GAAG,CAAC,CAAC;IAmL/B,CAAC;IAjLU,QAAQ,CAAC,GAAW;QACvB,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,GAAG,CAAI,GAAW;QAC3B,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB,OAAO,KAAK,CAAC;aAChB;YACD,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;gBAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC5B;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW;QAC3B,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;YAClD,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;iBACb,IAAI,CAAC,OAAO,CAAC,EAAE;gBACZ,IAAI,OAAO,IAAI,KAAK,EAAE;oBAClB,OAAO,EAAE,CAAC;iBACb;qBAAM;oBACH,MAAM,EAAE,CAAC;iBACZ;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,QAAgB;QAChD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC1B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7B;QACD,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,GAAG;QACb,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK;QACR,OAAO,KAAK,CAAC;IAEjB,CAAC;IAEM,QAAQ,CAAC,GAAW,EAAE,QAAoB,EAAE,QAAiB;QAEhE,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,QAAQ,CAAC,KAAY,EAAE,QAAgB;QAE1C,OAAO,CAAC,CAAC;IACb,CAAC;IAEM,QAAQ,CAAC,IAAc;QAC1B,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,QAAQ,CAAC,KAAY,EAAE,QAAgB;QAE1C,OAAO,CAAC,CAAC;IACb,CAAC;IAEM,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,QAAiB;QACjD,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzB,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IA2DS,SAAS,CAAC,GAAa;IAOjC,CAAC;IAUS,SAAS,CAAC,IAAY,EAAE,QAAgB;IAQlD,CAAC;IAUS,SAAS,CAAC,IAAI,EAAE,QAAgB;IAQ1C,CAAC;CACJ;AAxLD,sBAwLC"} |
+3
-3
| { | ||
| "name": "@elementary-lab/cache", | ||
| "version": "1.3.3", | ||
| "version": "1.3.4", | ||
| "description": "", | ||
| "license": "MIT", | ||
| "dependencies": { | ||
| "@elementary-lab/standards": "^1.3.2", | ||
| "@elementary-lab/standards": "^1.3.3", | ||
| "@types/node": "^8.0.28", | ||
@@ -17,3 +17,3 @@ "redis": "^2.8.0" | ||
| }, | ||
| "gitHead": "346084b07b21bf91bdd627c54b43f3b9acc24ef2" | ||
| "gitHead": "c8f13b08aefd489cbe9f73baa2f741d9e199196c" | ||
| } |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Trivial Package
Supply chain riskPackages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.
Found 1 instance in 1 package
13943
527.78%10
150%230
2200%1
-50%