From dbd71e29de9c64921b8034ddefe705599fb58925 Mon Sep 17 00:00:00 2001 From: Kyriakos Barbounakis Date: Fri, 17 Jan 2025 22:23:26 +0200 Subject: [PATCH] downgrade node-cache to 4.2.1 (#192) * downgrade node-cache to 4.2.1 * 2.6.74 --- data-cache.js | 70 +++++++++++++++++++++++++++++++---------------- package-lock.json | 28 ++++++++++--------- package.json | 4 +-- 3 files changed, 63 insertions(+), 39 deletions(-) diff --git a/data-cache.js b/data-cache.js index 4f4d1ee..d4b7b37 100644 --- a/data-cache.js +++ b/data-cache.js @@ -1,9 +1,8 @@ // MOST Web Framework 2.0 Codename Blueshift BSD-3-Clause license Copyright (c) 2017-2022, THEMOST LP All rights reserved -var {LangUtils, Args, AbstractMethodError, ConfigurationStrategy} = require('@themost/common'); +var {AbstractMethodError, ConfigurationStrategy} = require('@themost/common'); +var NodeCache = require( 'node-cache' ); var CACHE_ABSOLUTE_EXPIRATION = 1200; - - class DataCacheStrategy extends ConfigurationStrategy { /** * @@ -82,10 +81,9 @@ class DefaultDataCacheStrategy extends DataCacheStrategy { */ constructor(config) { super(config); - var NodeCache = require( 'node-cache' ); var expiration = CACHE_ABSOLUTE_EXPIRATION; - var absoluteExpiration = LangUtils.parseInt(config.getSourceAt('settings/cache/absoluteExpiration')); - if (absoluteExpiration>0) { + var absoluteExpiration = config.getSourceAt('settings/cache/absoluteExpiration'); + if (typeof absoluteExpiration === 'number' && absoluteExpiration > 0) { expiration = absoluteExpiration; } this.rawCache = new NodeCache({ @@ -104,8 +102,12 @@ class DefaultDataCacheStrategy extends DataCacheStrategy { var self = this; return new Promise(function(resolve, reject) { try { - self.rawCache.set(key, value, absoluteExpiration); - return resolve(); + void self.rawCache.set(key, value, absoluteExpiration, (err) => { + if (err) { + return reject(err); + } + return resolve(); + }); } catch (err) { return reject(err); } @@ -121,8 +123,12 @@ class DefaultDataCacheStrategy extends DataCacheStrategy { var self = this; return new Promise(function(resolve, reject) { try { - var res = self.rawCache.get(key); - return resolve(res); + void self.rawCache.get(key, function(err, res) { + if (err) { + return reject(err); + } + return resolve(res); + }); } catch (err) { return reject(err); } @@ -138,8 +144,12 @@ class DefaultDataCacheStrategy extends DataCacheStrategy { var self = this; return new Promise(function(resolve, reject) { try { - self.rawCache.del(key); - return resolve(); + void self.rawCache.del(key, (err) => { + if (err) { + return reject(err); + } + return resolve(); + }); } catch (err) { return reject(err); } @@ -154,7 +164,12 @@ class DefaultDataCacheStrategy extends DataCacheStrategy { var self = this; return new Promise(function(resolve, reject) { try { - self.rawCache.flushAll(); + void self.rawCache.flushAll((err) => { + if (err) { + return reject(err); + } + return resolve(); + }); } catch (err) { return reject(err); } @@ -184,18 +199,25 @@ class DefaultDataCacheStrategy extends DataCacheStrategy { return new Promise(function(resolve, reject) { //try to get from cache try { - if (self.rawCache.has(key)) { - return resolve(self.rawCache.get(key)); - } - var source = getFunc(); - Args.check(typeof source !== 'undefined' && typeof source.then === 'function', 'Invalid argument. Expected a valid promise.'); - void source.then(function (res) { - self.rawCache.set(key, res, absoluteExpiration); - return resolve(res); - }).catch(function(err) { + void self.rawCache.get(key, (err, res) => { + if (typeof res !== 'undefined') { + return resolve(res); + } + try { + void getFunc().then(function (res) { + void self.rawCache.set(key, res, absoluteExpiration, (err) => { + if (err) { + return reject(err); + } + return resolve(res); + }); + }).catch(function(err) { + return reject(err); + }) + } catch (err) { return reject(err); - }); - + } + }); } catch (err) { return reject(err); } diff --git a/package-lock.json b/package-lock.json index 4b3a1c8..630b1c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@themost/data", - "version": "2.6.73", + "version": "2.6.74", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@themost/data", - "version": "2.6.73", + "version": "2.6.74", "license": "BSD-3-Clause", "dependencies": { "@themost/events": "^1.3.0", @@ -14,7 +14,7 @@ "ajv": "^8.17.1", "async": "^2.6.4", "lodash": "^4.17.21", - "node-cache": "^5.1.2", + "node-cache": "^4.2.1", "pluralize": "^7.0.0", "q": "^1.4.1", "sprintf-js": "^1.1.2", @@ -53,7 +53,7 @@ }, "peerDependencies": { "@themost/common": "^2.5.11", - "@themost/query": "^2.6.0", + "@themost/query": "lts", "@themost/xml": "^2.5.2" } }, @@ -10745,15 +10745,16 @@ } }, "node_modules/node-cache": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", - "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-4.2.1.tgz", + "integrity": "sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A==", "license": "MIT", "dependencies": { - "clone": "2.x" + "clone": "2.x", + "lodash": "^4.17.15" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 0.4.6" } }, "node_modules/node-gyp": { @@ -20431,11 +20432,12 @@ "dev": true }, "node-cache": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", - "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-4.2.1.tgz", + "integrity": "sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A==", "requires": { - "clone": "2.x" + "clone": "2.x", + "lodash": "^4.17.15" } }, "node-gyp": { diff --git a/package.json b/package.json index b4b47be..b5f1471 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@themost/data", - "version": "2.6.73", + "version": "2.6.74", "description": "MOST Web Framework Codename Blueshift - Data module", "main": "index.js", "types": "index.d.ts", @@ -31,7 +31,7 @@ "ajv": "^8.17.1", "async": "^2.6.4", "lodash": "^4.17.21", - "node-cache": "^5.1.2", + "node-cache": "^4.2.1", "pluralize": "^7.0.0", "q": "^1.4.1", "sprintf-js": "^1.1.2",