@inrixia/helpers
Advanced tools
@@ -7,2 +7,3 @@ import type { AnyFn, VoidLike } from "../ts/types"; | ||
| get: (key: K) => V | undefined; | ||
| has: (key: K) => boolean; | ||
| set: (key: K, value: V) => V; | ||
@@ -9,0 +10,0 @@ delete: (key: K) => boolean; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Memo.d.ts","sourceRoot":"","sources":["../../src/class/Memo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKnD,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAA;CAAE,CAAC;AAG5F,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,GAAG,GAAG;IACpE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC/B,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,KAAG,CAiB7G,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAG,CASrF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAG,CAA6C,CAAC;AAE7H;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAG,CAA+C,CAAC;AAErI;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAG,CAAkD,CAAC"} | ||
| {"version":3,"file":"Memo.d.ts","sourceRoot":"","sources":["../../src/class/Memo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKnD,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAA;CAAE,CAAC;AAG5F,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,GAAG,GAAG;IACpE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC/B,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;IACzB,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,KAAG,CAwB7G,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAG,CAqBrF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAG,CAA6C,CAAC;AAE7H;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAG,CAA+C,CAAC;AAErI;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAG,CAAkD,CAAC"} |
+22
-10
@@ -15,10 +15,13 @@ import { ArgsMap } from "./ArgsMap"; | ||
| const _fn = ((...args) => { | ||
| const cachedValue = cache.get(args); | ||
| if (cachedValue !== undefined) | ||
| return cachedValue; | ||
| if (cache.has(args)) | ||
| return cache.get(args); | ||
| const newValue = generator(...args); | ||
| cache.set(args, newValue); | ||
| // Dont cache errors! | ||
| if (newValue instanceof Promise) | ||
| newValue?.catch(() => cache.delete(args)); | ||
| // Dont cache errored promises! | ||
| if (newValue instanceof Promise) { | ||
| newValue?.catch((e) => { | ||
| cache.delete(args); | ||
| throw e; | ||
| }); | ||
| } | ||
| return newValue; | ||
@@ -41,7 +44,16 @@ }); | ||
| let cache; | ||
| let cacheSet = false; | ||
| const _fn = (() => { | ||
| cache ??= generator(); | ||
| // Dont cache errors! | ||
| if (cache instanceof Promise) | ||
| cache?.catch(() => (cache = undefined)); | ||
| if (cacheSet) | ||
| return cache; | ||
| cache = generator(); | ||
| cacheSet = true; | ||
| // Dont cache errored promises! | ||
| if (cache instanceof Promise) { | ||
| cache?.catch((e) => { | ||
| cache = undefined; | ||
| cacheSet = false; | ||
| }); | ||
| } | ||
| return cache; | ||
| }); | ||
@@ -48,0 +60,0 @@ _fn.clear = () => (cache = undefined); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Memo.js","sourceRoot":"","sources":["../../src/class/Memo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC,CAAC,mBAAmB;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAY9C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAA4D,SAAY,EAAE,KAAQ,EAAK,EAAE;IACjH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;IAE7D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAmB,EAAE,EAAE;QACvC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,WAAW,CAAC;QAClD,MAAM,QAAQ,GAAkB,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QACnD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1B,qBAAqB;QACrB,IAAS,QAAQ,YAAY,OAAO;YAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAM,CAAC;IACR,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAAmB,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5C,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAyC,SAAY,EAAK,EAAE;IACzF,IAAI,KAAgC,CAAC;IACrC,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;QACjB,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,qBAAqB;QACrB,IAAS,KAAK,YAAY,OAAO;YAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAM,CAAC;IACR,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAyC,SAAY,EAAK,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,OAAO,EAAE,CAAM,CAAC;AAE7H;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAyC,SAAY,EAAK,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,SAAS,EAAE,CAAM,CAAC;AAErI;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAyC,SAAY,EAAK,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,YAAY,EAAE,CAAM,CAAC"} | ||
| {"version":3,"file":"Memo.js","sourceRoot":"","sources":["../../src/class/Memo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC,CAAC,mBAAmB;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAa9C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAA4D,SAAY,EAAE,KAAQ,EAAK,EAAE;IACjH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;IAE7D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,IAAmB,EAAE,EAAE;QACvC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAkB,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QACnD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE1B,+BAA+B;QAC/B,IAAS,QAAQ,YAAY,OAAO,EAAE,CAAC;YACb,QAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/C,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnB,MAAM,CAAC,CAAC;YACT,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAM,CAAC;IACR,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAAmB,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5C,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAyC,SAAY,EAAK,EAAE;IACzF,IAAI,KAAgC,CAAC;IACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;QACjB,IAAI,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE3B,KAAK,GAAG,SAAS,EAAE,CAAC;QACpB,QAAQ,GAAG,IAAI,CAAC;QAEhB,+BAA+B;QAC/B,IAAS,KAAK,YAAY,OAAO,EAAE,CAAC;YACV,KAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5C,KAAK,GAAG,SAAS,CAAC;gBAClB,QAAQ,GAAG,KAAK,CAAC;YAClB,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC,CAAM,CAAC;IACR,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAyC,SAAY,EAAK,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,OAAO,EAAE,CAAM,CAAC;AAE7H;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAyC,SAAY,EAAK,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,SAAS,EAAE,CAAM,CAAC;AAErI;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAyC,SAAY,EAAK,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,YAAY,EAAE,CAAM,CAAC"} |
+1
-1
| { | ||
| "name": "@inrixia/helpers", | ||
| "version": "3.20.1", | ||
| "version": "3.20.2", | ||
| "description": "Helper functions for various projects", | ||
@@ -5,0 +5,0 @@ "type": "module", |
142288
0.39%1832
0.71%