func-cache
Advanced tools
Comparing version 2.0.5 to 2.0.7
@@ -9,2 +9,4 @@ 'use strict'; | ||
var util = _interopDefault(require('util')); | ||
var fs = _interopDefault(require('fs/promises')); | ||
var fs$1 = require('fs'); | ||
@@ -458,14 +460,156 @@ function _regeneratorRuntime() { | ||
} | ||
function localStorageCacher(tmpPath, options) { | ||
var ls = (options == null ? void 0 : options.localStorage) || window.localStorage; | ||
function fSCacher(tmpPath) { | ||
return { | ||
initialCache: JSON.parse(ls.getItem(tmpPath) || "{}"), | ||
onDataUpdate: function onDataUpdate(ndata) { | ||
ls.setItem(tmpPath, JSON.stringify(ndata)); | ||
} | ||
initialCache: JSON.parse( | ||
// @ts-ignore | ||
fs$1.existsSync(tmpPath) ? fs$1.readFileSync(tmpPath, { | ||
encoding: "utf-8" | ||
}) : "{}"), | ||
onDataUpdate: function () { | ||
var _onDataUpdate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ndata) { | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.prev = 0; | ||
_context.next = 3; | ||
return fs.unlink(tmpPath); | ||
case 3: | ||
_context.next = 7; | ||
break; | ||
case 5: | ||
_context.prev = 5; | ||
_context.t0 = _context["catch"](0); | ||
case 7: | ||
_context.next = 9; | ||
return fs.writeFile(tmpPath, JSON.stringify(ndata), { | ||
encoding: "utf-8", | ||
flag: "w" | ||
}); | ||
case 9: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee, null, [[0, 5]]); | ||
})); | ||
function onDataUpdate(_x) { | ||
return _onDataUpdate.apply(this, arguments); | ||
} | ||
return onDataUpdate; | ||
}() | ||
}; | ||
} | ||
function redisCacher(_x, _x2) { | ||
return _redisCacher.apply(this, arguments); | ||
} | ||
function _redisCacher() { | ||
_redisCacher = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(tmpPath, options) { | ||
var red; | ||
return _regeneratorRuntime().wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
red = options.client; | ||
_context2.t0 = JSON; | ||
_context2.next = 4; | ||
return red.get(tmpPath); | ||
case 4: | ||
_context2.t1 = _context2.sent; | ||
if (_context2.t1) { | ||
_context2.next = 7; | ||
break; | ||
} | ||
_context2.t1 = "{}"; | ||
case 7: | ||
_context2.t2 = _context2.t1; | ||
_context2.t3 = _context2.t0.parse.call(_context2.t0, _context2.t2); | ||
_context2.t4 = function () { | ||
var _onDataUpdate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ndata) { | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.next = 2; | ||
return red.set(tmpPath, JSON.stringify(ndata)); | ||
case 2: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
})); | ||
function onDataUpdate(_x3) { | ||
return _onDataUpdate.apply(this, arguments); | ||
} | ||
return onDataUpdate; | ||
}(); | ||
return _context2.abrupt("return", { | ||
initialCache: _context2.t3, | ||
onDataUpdate: _context2.t4 | ||
}); | ||
case 11: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
}, _callee2); | ||
})); | ||
return _redisCacher.apply(this, arguments); | ||
} | ||
function upstashCacher(_x, _x2) { | ||
return _upstashCacher.apply(this, arguments); | ||
} | ||
function _upstashCacher() { | ||
_upstashCacher = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(tmpPath, options) { | ||
var red; | ||
return _regeneratorRuntime().wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
red = options.client; | ||
_context2.t0 = JSON; | ||
_context2.next = 4; | ||
return red.get(tmpPath); | ||
case 4: | ||
_context2.t1 = _context2.sent; | ||
if (_context2.t1) { | ||
_context2.next = 7; | ||
break; | ||
} | ||
_context2.t1 = "{}"; | ||
case 7: | ||
_context2.t2 = _context2.t1; | ||
_context2.t3 = _context2.t0.parse.call(_context2.t0, _context2.t2); | ||
_context2.t4 = function () { | ||
var _onDataUpdate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ndata) { | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.next = 2; | ||
return red.set(tmpPath, JSON.stringify(ndata)); | ||
case 2: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
})); | ||
function onDataUpdate(_x3) { | ||
return _onDataUpdate.apply(this, arguments); | ||
} | ||
return onDataUpdate; | ||
}(); | ||
return _context2.abrupt("return", { | ||
initialCache: _context2.t3, | ||
onDataUpdate: _context2.t4 | ||
}); | ||
case 11: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
}, _callee2); | ||
})); | ||
return _upstashCacher.apply(this, arguments); | ||
} | ||
exports.default = funCache; | ||
exports.localStorageCacher = localStorageCacher; | ||
exports.fSCacher = fSCacher; | ||
exports.redisCacher = redisCacher; | ||
exports.upstashCacher = upstashCacher; | ||
//# sourceMappingURL=func-cache.cjs.development.js.map |
@@ -1,2 +0,2 @@ | ||
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("debounce")),r=t(require("util"));function n(){n=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function f(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{f({},"")}catch(t){f=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=Object.create((e&&e.prototype instanceof p?e:p).prototype),a=new j(n||[]);return o(i,"_invoke",{value:x(t,r,a)}),i}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var h={};function p(){}function v(){}function d(){}var y={};f(y,a,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(S([])));m&&m!==e&&r.call(m,a)&&(y=m);var w=d.prototype=p.prototype=Object.create(y);function b(t){["next","throw","return"].forEach((function(e){f(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){var n;o(this,"_invoke",{value:function(o,i){function a(){return new e((function(n,a){!function n(o,i,a,c){var u=s(t[o],t,i);if("throw"!==u.type){var f=u.arg,l=f.value;return l&&"object"==typeof l&&r.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,a,c)}),(function(t){n("throw",t,a,c)})):e.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return n("throw",t,a,c)}))}c(u.arg)}(o,i,n,a)}))}return n=n?n.then(a,a):a()}})}function x(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var c=L(a,r);if(c){if(c===h)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=s(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===h)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}function L(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,L(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=s(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,h;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,h):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(O,this),this.reset(!0)}function S(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:k}}function k(){return{value:void 0,done:!0}}return v.prototype=d,o(w,"constructor",{value:d,configurable:!0}),o(d,"constructor",{value:v,configurable:!0}),v.displayName=f(d,u,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===v||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,f(t,u,"GeneratorFunction")),t.prototype=Object.create(w),t},t.awrap=function(t){return{__await:t}},b(_.prototype),f(_.prototype,c,(function(){return this})),t.AsyncIterator=_,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new _(l(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},b(w),f(w,u,"Generator"),f(w,a,(function(){return this})),f(w,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=S,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),h},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),h}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:S(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},t}function o(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function i(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function c(t){o(a,n,i,c,u,"next",t)}function u(t){o(a,n,i,c,u,"throw",t)}c(void 0)}))}}function a(){return(a=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}exports.default=function(t,o){void 0===o&&(o={lifeTime:0,debounceTimer:1e3,async:!1});var c=a({____timeOfCreation:Date.now()},o.initialCache),u=o.onDataUpdate?e((function(){try{null==o.onDataUpdate||o.onDataUpdate(c)}catch(t){o.debug&&console.error(t)}}),o.debounceTimer):void 0,f=function(){0!==o.lifeTime&&Date.now()-c.____timeOfCreation>o.lifeTime&&(c={____timeOfCreation:c.____timeOfCreation})},l=function(t,e){return f(),e in c||(c[e]=t(),null==u||u()),c[e]},s=function(){var t=i(n().mark((function t(e,r){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(f(),!(r in c)){t.next=3;break}return t.abrupt("return",c[r]);case 3:return t.next=5,e();case 5:return c[r]=t.sent,null==u||u(),t.abrupt("return",c[r]);case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}();if(o.async||r.types.isAsyncFunction(t))return i(n().mark((function e(){var r,o,i,a=arguments;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(r=a.length,o=new Array(r),i=0;i<r;i++)o[i]=a[i];return e.next=3,s((function(){return t.apply(void 0,o)}),o.join(","));case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));var h=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return l(t.apply(void 0,r),r.join(","))};return h.clearCache=function(){c={____timeOfCreation:Date.now()}},h.noCache=function(){return t.apply(void 0,arguments)},h},exports.localStorageCacher=function(t,e){var r=(null==e?void 0:e.localStorage)||window.localStorage;return{initialCache:JSON.parse(r.getItem(t)||"{}"),onDataUpdate:function(e){r.setItem(t,JSON.stringify(e))}}}; | ||
"use strict";function t(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var e=t(require("debounce")),r=t(require("util")),n=t(require("fs/promises")),o=require("fs");function i(){i=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function f(t,e,r,o){var i=Object.create((e&&e.prototype instanceof p?e:p).prototype),a=new j(o||[]);return n(i,"_invoke",{value:_(t,r,a)}),i}function l(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=f;var h={};function p(){}function v(){}function d(){}var y={};s(y,a,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(k([])));m&&m!==e&&r.call(m,a)&&(y=m);var w=d.prototype=p.prototype=Object.create(y);function x(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var o;n(this,"_invoke",{value:function(n,i){function a(){return new e((function(o,a){!function n(o,i,a,c){var u=l(t[o],t,i);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,a,c)}),(function(t){n("throw",t,a,c)})):e.resolve(f).then((function(t){s.value=t,a(s)}),(function(t){return n("throw",t,a,c)}))}c(u.arg)}(n,i,o,a)}))}return o=o?o.then(a,a):a()}})}function _(t,e,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var c=O(a,r);if(c){if(c===h)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=l(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===h)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}function O(t,e){var r=e.method,n=t.iterator[r];if(void 0===n)return e.delegate=null,"throw"===r&&t.iterator.return&&(e.method="return",e.arg=void 0,O(t,e),"throw"===e.method)||"return"!==r&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=l(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,h;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,h):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function k(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return v.prototype=d,n(w,"constructor",{value:d,configurable:!0}),n(d,"constructor",{value:v,configurable:!0}),v.displayName=s(d,u,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===v||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,s(t,u,"GeneratorFunction")),t.prototype=Object.create(w),t},t.awrap=function(t){return{__await:t}},x(b.prototype),s(b.prototype,c,(function(){return this})),t.AsyncIterator=b,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new b(f(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},x(w),s(w,u,"Generator"),s(w,a,(function(){return this})),s(w,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=k,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return a.type="throw",a.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),h},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),h}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:k(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},t}function a(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function c(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function c(t){a(i,n,o,c,u,"next",t)}function u(t){a(i,n,o,c,u,"throw",t)}c(void 0)}))}}function u(){return(u=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}function s(){return(s=c(i().mark((function t(e,r){var n;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.client,t.t0=JSON,t.next=4,n.get(e);case 4:if(t.t1=t.sent,t.t1){t.next=7;break}t.t1="{}";case 7:return t.t2=t.t1,t.t3=t.t0.parse.call(t.t0,t.t2),t.t4=function(){var t=c(i().mark((function t(r){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.set(e,JSON.stringify(r));case 2:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),t.abrupt("return",{initialCache:t.t3,onDataUpdate:t.t4});case 11:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function f(){return(f=c(i().mark((function t(e,r){var n;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.client,t.t0=JSON,t.next=4,n.get(e);case 4:if(t.t1=t.sent,t.t1){t.next=7;break}t.t1="{}";case 7:return t.t2=t.t1,t.t3=t.t0.parse.call(t.t0,t.t2),t.t4=function(){var t=c(i().mark((function t(r){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.set(e,JSON.stringify(r));case 2:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),t.abrupt("return",{initialCache:t.t3,onDataUpdate:t.t4});case 11:case"end":return t.stop()}}),t)})))).apply(this,arguments)}exports.default=function(t,n){void 0===n&&(n={lifeTime:0,debounceTimer:1e3,async:!1});var o=u({____timeOfCreation:Date.now()},n.initialCache),a=n.onDataUpdate?e((function(){try{null==n.onDataUpdate||n.onDataUpdate(o)}catch(t){n.debug&&console.error(t)}}),n.debounceTimer):void 0,s=function(){0!==n.lifeTime&&Date.now()-o.____timeOfCreation>n.lifeTime&&(o={____timeOfCreation:o.____timeOfCreation})},f=function(t,e){return s(),e in o||(o[e]=t(),null==a||a()),o[e]},l=function(){var t=c(i().mark((function t(e,r){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(s(),!(r in o)){t.next=3;break}return t.abrupt("return",o[r]);case 3:return t.next=5,e();case 5:return o[r]=t.sent,null==a||a(),t.abrupt("return",o[r]);case 8:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}();if(n.async||r.types.isAsyncFunction(t))return c(i().mark((function e(){var r,n,o,a=arguments;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(r=a.length,n=new Array(r),o=0;o<r;o++)n[o]=a[o];return e.next=3,l((function(){return t.apply(void 0,n)}),n.join(","));case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));var h=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return f(t.apply(void 0,r),r.join(","))};return h.clearCache=function(){o={____timeOfCreation:Date.now()}},h.noCache=function(){return t.apply(void 0,arguments)},h},exports.fSCacher=function(t){return{initialCache:JSON.parse(o.existsSync(t)?o.readFileSync(t,{encoding:"utf-8"}):"{}"),onDataUpdate:(e=c(i().mark((function e(r){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,n.unlink(t);case 3:e.next=7;break;case 5:e.prev=5,e.t0=e.catch(0);case 7:return e.next=9,n.writeFile(t,JSON.stringify(r),{encoding:"utf-8",flag:"w"});case 9:case"end":return e.stop()}}),e,null,[[0,5]])}))),function(t){return e.apply(this,arguments)})};var e},exports.redisCacher=function(t,e){return s.apply(this,arguments)},exports.upstashCacher=function(t,e){return f.apply(this,arguments)}; | ||
//# sourceMappingURL=func-cache.cjs.production.min.js.map |
import debounce from 'debounce'; | ||
import util from 'util'; | ||
import fs from 'fs/promises'; | ||
import { existsSync, readFileSync } from 'fs'; | ||
@@ -451,14 +453,154 @@ function _regeneratorRuntime() { | ||
} | ||
function localStorageCacher(tmpPath, options) { | ||
var ls = (options == null ? void 0 : options.localStorage) || window.localStorage; | ||
function fSCacher(tmpPath) { | ||
return { | ||
initialCache: JSON.parse(ls.getItem(tmpPath) || "{}"), | ||
onDataUpdate: function onDataUpdate(ndata) { | ||
ls.setItem(tmpPath, JSON.stringify(ndata)); | ||
} | ||
initialCache: JSON.parse( | ||
// @ts-ignore | ||
existsSync(tmpPath) ? readFileSync(tmpPath, { | ||
encoding: "utf-8" | ||
}) : "{}"), | ||
onDataUpdate: function () { | ||
var _onDataUpdate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ndata) { | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.prev = 0; | ||
_context.next = 3; | ||
return fs.unlink(tmpPath); | ||
case 3: | ||
_context.next = 7; | ||
break; | ||
case 5: | ||
_context.prev = 5; | ||
_context.t0 = _context["catch"](0); | ||
case 7: | ||
_context.next = 9; | ||
return fs.writeFile(tmpPath, JSON.stringify(ndata), { | ||
encoding: "utf-8", | ||
flag: "w" | ||
}); | ||
case 9: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee, null, [[0, 5]]); | ||
})); | ||
function onDataUpdate(_x) { | ||
return _onDataUpdate.apply(this, arguments); | ||
} | ||
return onDataUpdate; | ||
}() | ||
}; | ||
} | ||
function redisCacher(_x, _x2) { | ||
return _redisCacher.apply(this, arguments); | ||
} | ||
function _redisCacher() { | ||
_redisCacher = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(tmpPath, options) { | ||
var red; | ||
return _regeneratorRuntime().wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
red = options.client; | ||
_context2.t0 = JSON; | ||
_context2.next = 4; | ||
return red.get(tmpPath); | ||
case 4: | ||
_context2.t1 = _context2.sent; | ||
if (_context2.t1) { | ||
_context2.next = 7; | ||
break; | ||
} | ||
_context2.t1 = "{}"; | ||
case 7: | ||
_context2.t2 = _context2.t1; | ||
_context2.t3 = _context2.t0.parse.call(_context2.t0, _context2.t2); | ||
_context2.t4 = function () { | ||
var _onDataUpdate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ndata) { | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.next = 2; | ||
return red.set(tmpPath, JSON.stringify(ndata)); | ||
case 2: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
})); | ||
function onDataUpdate(_x3) { | ||
return _onDataUpdate.apply(this, arguments); | ||
} | ||
return onDataUpdate; | ||
}(); | ||
return _context2.abrupt("return", { | ||
initialCache: _context2.t3, | ||
onDataUpdate: _context2.t4 | ||
}); | ||
case 11: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
}, _callee2); | ||
})); | ||
return _redisCacher.apply(this, arguments); | ||
} | ||
function upstashCacher(_x, _x2) { | ||
return _upstashCacher.apply(this, arguments); | ||
} | ||
function _upstashCacher() { | ||
_upstashCacher = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(tmpPath, options) { | ||
var red; | ||
return _regeneratorRuntime().wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
red = options.client; | ||
_context2.t0 = JSON; | ||
_context2.next = 4; | ||
return red.get(tmpPath); | ||
case 4: | ||
_context2.t1 = _context2.sent; | ||
if (_context2.t1) { | ||
_context2.next = 7; | ||
break; | ||
} | ||
_context2.t1 = "{}"; | ||
case 7: | ||
_context2.t2 = _context2.t1; | ||
_context2.t3 = _context2.t0.parse.call(_context2.t0, _context2.t2); | ||
_context2.t4 = function () { | ||
var _onDataUpdate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ndata) { | ||
return _regeneratorRuntime().wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.next = 2; | ||
return red.set(tmpPath, JSON.stringify(ndata)); | ||
case 2: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
})); | ||
function onDataUpdate(_x3) { | ||
return _onDataUpdate.apply(this, arguments); | ||
} | ||
return onDataUpdate; | ||
}(); | ||
return _context2.abrupt("return", { | ||
initialCache: _context2.t3, | ||
onDataUpdate: _context2.t4 | ||
}); | ||
case 11: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
}, _callee2); | ||
})); | ||
return _upstashCacher.apply(this, arguments); | ||
} | ||
export default funCache; | ||
export { localStorageCacher }; | ||
export { fSCacher, redisCacher, upstashCacher }; | ||
//# sourceMappingURL=func-cache.esm.js.map |
@@ -1,20 +0,3 @@ | ||
export interface FCOptions { | ||
lifeTime: number; | ||
onDataUpdate?: (nData: any) => void; | ||
initialCache?: any; | ||
/** debounce time wait to call onDataUpdate, default 1000ms */ | ||
debounceTimer?: number; | ||
/** incase the call is async, (sometimes the script doesn't detect it's async and wont run the await for it) default: false */ | ||
async?: boolean; | ||
/** shows logs */ | ||
debug?: boolean; | ||
} | ||
export default function funCache<T extends Function>(func: T, options?: FCOptions): T & { | ||
clearCache: () => void; | ||
}; | ||
export declare function localStorageCacher(tmpPath: string, options?: { | ||
localStorage?: Storage; | ||
}): { | ||
initialCache: any; | ||
onDataUpdate: (ndata: any) => void; | ||
}; | ||
import funCache from "./main"; | ||
export * from "./tools"; | ||
export default funCache; |
@@ -1,4 +0,4 @@ | ||
export default function fSCacher(tmpPath: string): { | ||
export declare function fSCacher(tmpPath: string): { | ||
initialCache: any; | ||
onDataUpdate: (ndata: any) => Promise<void>; | ||
}; |
import redis from 'redis'; | ||
export default function redisCacher(tmpPath: string, options: { | ||
export declare function redisCacher(tmpPath: string, options: { | ||
client: redis.RedisClientType; | ||
@@ -4,0 +4,0 @@ }): Promise<{ |
import redis from '@upstash/redis'; | ||
export default function upstashCacher(tmpPath: string, options: { | ||
export declare function upstashCacher(tmpPath: string, options: { | ||
client: redis.Redis; | ||
@@ -4,0 +4,0 @@ }): Promise<{ |
{ | ||
"name": "func-cache", | ||
"version": "2.0.5", | ||
"version": "2.0.7", | ||
"private": false, | ||
@@ -27,3 +27,4 @@ "description": "TypeScript library for caching static functions", | ||
"dist/", | ||
"tools/", | ||
"src/tools", | ||
"dist/tools", | ||
"LICENSE", | ||
@@ -55,5 +56,5 @@ "README.md" | ||
"semantic-release-cli": "5.4.3", | ||
"tsdx": "0.14.1", | ||
"tsdx": "^0.14.1", | ||
"tslib": "^2.3.1", | ||
"typescript": "4.0.7" | ||
"typescript": "^5.0.4" | ||
}, | ||
@@ -124,3 +125,25 @@ "peerDependencies": {}, | ||
"redis": "^4.6.5" | ||
}, | ||
"exports": { | ||
".": { | ||
"types": "./dist/index.d.ts", | ||
"import": "./dist/index.js", | ||
"require": "./dist/func-cache.cjs.production.min.cjs" | ||
}, | ||
"./fs": { | ||
"types": "./dist/tools/fs.d.ts", | ||
"import": "./dist/tools/fs.d.ts", | ||
"require": "./dist/tools/fs.d.ts" | ||
}, | ||
"./redis": { | ||
"types": "./dist/tools/redis.d.ts", | ||
"import": "./dist/tools/redis.d.ts", | ||
"require": "./dist/tools/redis.d.ts" | ||
}, | ||
"./upstash": { | ||
"types": "./dist/tools/upstash.d.ts", | ||
"import": "./dist/tools/upstash.d.ts", | ||
"require": "./dist/tools/upstash.d.ts" | ||
} | ||
} | ||
} |
import { aforSec } from "aforwait" | ||
import funCache from ".."; | ||
import fSCacher from "../tools/fs"; | ||
import funCache from "."; | ||
import { fSCacher } from "./tools/fs"; | ||
@@ -5,0 +5,0 @@ |
@@ -1,94 +0,4 @@ | ||
import debounce from "debounce"; | ||
import util from "util"; | ||
export interface FCOptions { | ||
lifeTime: number; | ||
onDataUpdate?: (nData: any) => void; | ||
initialCache?: any; | ||
import funCache from "./main"; | ||
export * from "./tools"; | ||
/** debounce time wait to call onDataUpdate, default 1000ms */ | ||
debounceTimer?: number; | ||
/** incase the call is async, (sometimes the script doesn't detect it's async and wont run the await for it) default: false */ | ||
async?: boolean; | ||
/** shows logs */ | ||
debug?: boolean; | ||
} | ||
export default function funCache<T extends Function>(func: T, options: FCOptions = { lifeTime: 0, debounceTimer: 1000, async: false }): T & { clearCache: () => void } { | ||
let cached: any = { | ||
____timeOfCreation: Date.now(), | ||
...options.initialCache | ||
}; | ||
const updateData = options.onDataUpdate ? debounce(() => { | ||
try { | ||
options.onDataUpdate?.(cached); | ||
} catch (err) { | ||
if (options.debug) { | ||
console.error(err) | ||
} | ||
} | ||
}, options.debounceTimer) : undefined; | ||
const checkExpiry = () => { | ||
if (options.lifeTime !== 0 && Date.now() - cached.____timeOfCreation > options.lifeTime) | ||
cached = { ____timeOfCreation: cached.____timeOfCreation } | ||
} | ||
const cache = (getnewval: Function, str: any) => { | ||
checkExpiry(); | ||
if (str in cached) return cached[str]; | ||
cached[str] = getnewval(); | ||
updateData?.(); | ||
return cached[str] | ||
} | ||
const asyncCache = async (getnewval: Function, str: any) => { | ||
checkExpiry(); | ||
if (str in cached) return cached[str]; | ||
cached[str] = await getnewval(); | ||
updateData?.(); | ||
return cached[str] | ||
} | ||
if (options.async || util.types.isAsyncFunction(func)) { | ||
return (async (...args: any) => | ||
await asyncCache(() => func(...args), args.join(",")) | ||
) as any | ||
} | ||
const cachedFN = ((...args: any) => | ||
cache(func(...args), args.join(",")) | ||
) as any; | ||
cachedFN.clearCache = () => { | ||
cached = { ____timeOfCreation: Date.now() } | ||
} | ||
cachedFN.noCache = (...args: any) => func(...args); | ||
return cachedFN; | ||
} | ||
export function localStorageCacher(tmpPath: string, options?: { localStorage?: Storage }) { | ||
const ls = options?.localStorage || window.localStorage; | ||
return { | ||
initialCache: JSON.parse( | ||
ls.getItem(tmpPath) || "{}" | ||
), | ||
onDataUpdate: (ndata: any) => { | ||
ls.setItem(tmpPath, JSON.stringify(ndata)) | ||
}, | ||
}; | ||
} | ||
export default funCache; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
103276
23
1452
7