@adviser/cement 0.3.16 → 0.3.18

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.
Files changed (62) hide show
  1. package/cf/index.cjs +102 -4
  2. package/cf/index.cjs.map +1 -1
  3. package/cf/index.js +2 -2
  4. package/{chunk-Z3IR6QEZ.js → chunk-ERFPFVXB.js} +2 -2
  5. package/{chunk-H3CAVBMO.js → chunk-NYHENJUJ.js} +136 -7
  6. package/chunk-NYHENJUJ.js.map +1 -0
  7. package/{chunk-WGRZHIFK.js → chunk-RQKI6UPM.js} +3 -3
  8. package/deno/index.cjs +102 -4
  9. package/deno/index.cjs.map +1 -1
  10. package/deno/index.js +1 -1
  11. package/index.cjs +137 -59
  12. package/index.cjs.map +1 -1
  13. package/index.d.cts +41 -20
  14. package/index.d.ts +41 -20
  15. package/index.js +7 -55
  16. package/index.js.map +1 -1
  17. package/metafile-cjs.json +1 -1
  18. package/metafile-esm.json +1 -1
  19. package/node/index.cjs +102 -4
  20. package/node/index.cjs.map +1 -1
  21. package/node/index.js +1 -1
  22. package/package.json +1 -1
  23. package/src/index.ts +1 -1
  24. package/src/jsr.json +1 -1
  25. package/src/lru-map-set.ts +153 -0
  26. package/src/resolve-once.ts +16 -6
  27. package/test/index.cjs +102 -4
  28. package/test/index.cjs.map +1 -1
  29. package/test/index.js +3 -3
  30. package/ts/src/index.d.ts +1 -1
  31. package/ts/src/index.d.ts.map +1 -1
  32. package/ts/src/index.js +1 -1
  33. package/ts/src/index.js.map +1 -1
  34. package/ts/src/lru-map-set.d.ts +32 -0
  35. package/ts/src/lru-map-set.d.ts.map +1 -0
  36. package/ts/src/lru-map-set.js +114 -0
  37. package/ts/src/lru-map-set.js.map +1 -0
  38. package/ts/src/lru-map-set.test.d.ts +2 -0
  39. package/ts/src/lru-map-set.test.d.ts.map +1 -0
  40. package/ts/src/lru-map-set.test.js +81 -0
  41. package/ts/src/lru-map-set.test.js.map +1 -0
  42. package/ts/src/resolve-once.d.ts +9 -4
  43. package/ts/src/resolve-once.d.ts.map +1 -1
  44. package/ts/src/resolve-once.js +11 -6
  45. package/ts/src/resolve-once.js.map +1 -1
  46. package/ts/src/resolve-once.test.js +10 -0
  47. package/ts/src/resolve-once.test.js.map +1 -1
  48. package/web/index.cjs +102 -4
  49. package/web/index.cjs.map +1 -1
  50. package/web/index.js +2 -2
  51. package/chunk-H3CAVBMO.js.map +0 -1
  52. package/src/lru-cache.ts +0 -68
  53. package/ts/src/lru-cache.d.ts +0 -15
  54. package/ts/src/lru-cache.d.ts.map +0 -1
  55. package/ts/src/lru-cache.js +0 -46
  56. package/ts/src/lru-cache.js.map +0 -1
  57. package/ts/src/lru-cache.test.d.ts +0 -2
  58. package/ts/src/lru-cache.test.d.ts.map +0 -1
  59. package/ts/src/lru-cache.test.js +0 -54
  60. package/ts/src/lru-cache.test.js.map +0 -1
  61. /package/{chunk-Z3IR6QEZ.js.map → chunk-ERFPFVXB.js.map} +0 -0
  62. /package/{chunk-WGRZHIFK.js.map → chunk-RQKI6UPM.js.map} +0 -0
package/src/lru-cache.ts DELETED
@@ -1,68 +0,0 @@
1
- export interface LRUCacheParam {
2
- readonly maxEntries: number;
3
- readonly maxAge: number;
4
- }
5
- export class LRUCache<T, K> {
6
- private cache: Map<T, K> = new Map<T, K>();
7
- private param: LRUCacheParam;
8
-
9
- constructor(c: Partial<LRUCacheParam> = {}) {
10
- this.param = {
11
- maxEntries: c.maxEntries || 100,
12
- maxAge: c.maxAge || 0,
13
- };
14
- }
15
-
16
- private touch(key: T): K {
17
- // there could be undefined or null in value
18
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
19
- const value = this.cache.get(key)!;
20
- this.cache.delete(key);
21
- this.cache.set(key, value);
22
- return value;
23
- }
24
-
25
- get size(): number {
26
- return this.cache.size;
27
- }
28
-
29
- async getPut(key: T, createFN: (key: T) => Promise<K>): Promise<K | undefined> {
30
- const val = this.get(key);
31
- if (val) {
32
- return val;
33
- } else {
34
- const val = await createFN(key);
35
- this.put(key, val as K);
36
- return val;
37
- }
38
- }
39
-
40
- get(key: T): K | undefined {
41
- if (this.cache.has(key)) {
42
- return this.touch(key);
43
- }
44
- return this.cache.get(key);
45
- }
46
-
47
- put(key: T, value: K): void {
48
- this.cache.delete(key);
49
- if (this.cache.size >= this.param.maxEntries) {
50
- // delete the least recently accessed
51
- // const key = Array.from(this.cache.keys())[0];
52
- // this.cache.delete(key) or
53
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
54
- this.cache.delete(this.cache.keys().next().value!);
55
- this.cache.set(key, value);
56
- } else {
57
- this.cache.set(key, value);
58
- }
59
- }
60
-
61
- // getLeastRecent(): K {
62
- // return Array.from(this.cache)[0];
63
- // }
64
-
65
- // getMostRecent(): K {
66
- // return Array.from(this.cache)[this.cache.size - 1];
67
- // }
68
- }
@@ -1,15 +0,0 @@
1
- export interface LRUCacheParam {
2
- readonly maxEntries: number;
3
- readonly maxAge: number;
4
- }
5
- export declare class LRUCache<T, K> {
6
- private cache;
7
- private param;
8
- constructor(c?: Partial<LRUCacheParam>);
9
- private touch;
10
- get size(): number;
11
- getPut(key: T, createFN: (key: T) => Promise<K>): Promise<K | undefined>;
12
- get(key: T): K | undefined;
13
- put(key: T, value: K): void;
14
- }
15
- //# sourceMappingURL=lru-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lru-cache.d.ts","sourceRoot":"","sources":["../../../src/lru-cache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AACD,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,KAAK,CAAgB;gBAEjB,CAAC,GAAE,OAAO,CAAC,aAAa,CAAM;IAO1C,OAAO,CAAC,KAAK;IASb,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAW9E,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAO1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;CAqB5B"}
@@ -1,46 +0,0 @@
1
- export class LRUCache {
2
- constructor(c = {}) {
3
- this.cache = new Map();
4
- this.param = {
5
- maxEntries: c.maxEntries || 100,
6
- maxAge: c.maxAge || 0,
7
- };
8
- }
9
- touch(key) {
10
- const value = this.cache.get(key);
11
- this.cache.delete(key);
12
- this.cache.set(key, value);
13
- return value;
14
- }
15
- get size() {
16
- return this.cache.size;
17
- }
18
- async getPut(key, createFN) {
19
- const val = this.get(key);
20
- if (val) {
21
- return val;
22
- }
23
- else {
24
- const val = await createFN(key);
25
- this.put(key, val);
26
- return val;
27
- }
28
- }
29
- get(key) {
30
- if (this.cache.has(key)) {
31
- return this.touch(key);
32
- }
33
- return this.cache.get(key);
34
- }
35
- put(key, value) {
36
- this.cache.delete(key);
37
- if (this.cache.size >= this.param.maxEntries) {
38
- this.cache.delete(this.cache.keys().next().value);
39
- this.cache.set(key, value);
40
- }
41
- else {
42
- this.cache.set(key, value);
43
- }
44
- }
45
- }
46
- //# sourceMappingURL=lru-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lru-cache.js","sourceRoot":"","sources":["../../../src/lru-cache.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,QAAQ;IAInB,YAAY,IAA4B,EAAE;QAHlC,UAAK,GAAc,IAAI,GAAG,EAAQ,CAAC;QAIzC,IAAI,CAAC,KAAK,GAAG;YACX,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,GAAG;YAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC;SACtB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,GAAM;QAGlB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAM,EAAE,QAAgC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,GAAG,CAAC;QACb,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAK7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;CASF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=lru-cache.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lru-cache.test.d.ts","sourceRoot":"","sources":["../../../src/lru-cache.test.ts"],"names":[],"mappings":""}
@@ -1,54 +0,0 @@
1
- import { LRUCache } from "@adviser/cement";
2
- it("get-put without createFN", () => {
3
- const cache = new LRUCache({
4
- maxEntries: 1,
5
- });
6
- expect(cache.size).toBe(0);
7
- cache.put("a", 1);
8
- expect(cache.size).toBe(1);
9
- cache.put("a", 1);
10
- expect(cache.size).toBe(1);
11
- cache.put("b", 2);
12
- expect(cache.size).toBe(1);
13
- cache.put("b", 2);
14
- expect(cache.size).toBe(1);
15
- });
16
- it("get-put evict in order", () => {
17
- const cache = new LRUCache({
18
- maxEntries: 2,
19
- });
20
- expect(cache.size).toBe(0);
21
- cache.put("a", 1);
22
- cache.put("b", 2);
23
- expect(cache.size).toBe(2);
24
- cache.put("c", 3);
25
- expect(cache.size).toBe(2);
26
- expect(cache.get("a")).toBe(undefined);
27
- expect(cache.get("b")).toBe(2);
28
- expect(cache.get("c")).toBe(3);
29
- expect(cache.get("b")).toBe(2);
30
- cache.put("d", 4);
31
- expect(cache.get("a")).toBe(undefined);
32
- expect(cache.get("b")).toBe(2);
33
- expect(cache.get("c")).toBe(undefined);
34
- expect(cache.get("d")).toBe(4);
35
- });
36
- it("get-put with createFN", async () => {
37
- const cache = new LRUCache({
38
- maxEntries: 2,
39
- });
40
- expect(cache.size).toBe(0);
41
- expect(await cache.getPut("a", () => Promise.resolve(1))).toBe(1);
42
- expect(await cache.getPut("b", () => Promise.resolve(2))).toBe(2);
43
- expect(await cache.getPut("c", () => Promise.resolve(3))).toBe(3);
44
- expect(await cache.getPut("d", () => Promise.resolve(4))).toBe(4);
45
- expect(cache.size).toBe(2);
46
- expect(await cache.getPut("c", () => Promise.resolve(5))).toBe(3);
47
- expect(cache.size).toBe(2);
48
- expect(await cache.getPut("e", () => Promise.resolve(5))).toBe(5);
49
- expect(await cache.getPut("f", () => Promise.resolve(6))).toBe(6);
50
- expect(cache.size).toBe(2);
51
- expect(await cache.getPut("c", () => Promise.resolve(7))).toBe(7);
52
- expect(cache.size).toBe(2);
53
- });
54
- //# sourceMappingURL=lru-cache.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lru-cache.test.js","sourceRoot":"","sources":["../../../src/lru-cache.test.ts"],"names":[],"mappings":"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"}