@adviser/cement 0.4.63 → 0.4.64-dev

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 (106) hide show
  1. package/cjs/index.cjs +1 -0
  2. package/cjs/index.cjs.map +1 -1
  3. package/cjs/index.d.ts +1 -0
  4. package/cjs/index.d.ts.map +1 -1
  5. package/cjs/keyed-ng.cjs +93 -0
  6. package/cjs/keyed-ng.cjs.map +1 -0
  7. package/cjs/keyed-ng.d.ts +51 -0
  8. package/cjs/keyed-ng.d.ts.map +1 -0
  9. package/cjs/keyed-ng.test.cjs +151 -0
  10. package/cjs/keyed-ng.test.cjs.map +1 -0
  11. package/cjs/keyed-ng.test.d.ts +2 -0
  12. package/cjs/keyed-ng.test.d.ts.map +1 -0
  13. package/cjs/lru-map-set.cjs +2 -1
  14. package/cjs/lru-map-set.cjs.map +1 -1
  15. package/cjs/lru-map-set.d.ts +4 -1
  16. package/cjs/lru-map-set.d.ts.map +1 -1
  17. package/cjs/resolve-once.cjs +67 -104
  18. package/cjs/resolve-once.cjs.map +1 -1
  19. package/cjs/resolve-once.d.ts +26 -62
  20. package/cjs/resolve-once.d.ts.map +1 -1
  21. package/cjs/resolve-once.test.cjs +119 -31
  22. package/cjs/resolve-once.test.cjs.map +1 -1
  23. package/cjs/version.cjs +1 -1
  24. package/cjs/version.cjs.map +1 -1
  25. package/cjs/version.d.ts.map +1 -1
  26. package/deno.json +1 -1
  27. package/esm/index.d.ts +1 -0
  28. package/esm/index.d.ts.map +1 -1
  29. package/esm/index.js +1 -0
  30. package/esm/index.js.map +1 -1
  31. package/esm/keyed-ng.d.ts +51 -0
  32. package/esm/keyed-ng.d.ts.map +1 -0
  33. package/esm/keyed-ng.js +89 -0
  34. package/esm/keyed-ng.js.map +1 -0
  35. package/esm/keyed-ng.test.d.ts +2 -0
  36. package/esm/keyed-ng.test.d.ts.map +1 -0
  37. package/esm/keyed-ng.test.js +149 -0
  38. package/esm/keyed-ng.test.js.map +1 -0
  39. package/esm/lru-map-set.d.ts +4 -1
  40. package/esm/lru-map-set.d.ts.map +1 -1
  41. package/esm/lru-map-set.js +2 -1
  42. package/esm/lru-map-set.js.map +1 -1
  43. package/esm/resolve-once.d.ts +26 -62
  44. package/esm/resolve-once.d.ts.map +1 -1
  45. package/esm/resolve-once.js +66 -102
  46. package/esm/resolve-once.js.map +1 -1
  47. package/esm/resolve-once.test.js +119 -31
  48. package/esm/resolve-once.test.js.map +1 -1
  49. package/esm/version.d.ts.map +1 -1
  50. package/esm/version.js +1 -1
  51. package/esm/version.js.map +1 -1
  52. package/package.json +3 -3
  53. package/src/index.ts +1 -0
  54. package/src/keyed-ng.ts +628 -0
  55. package/src/lru-map-set.ts +6 -2
  56. package/src/resolve-once.ts +281 -324
  57. package/ts/cjs/index.d.ts +1 -0
  58. package/ts/cjs/index.d.ts.map +1 -1
  59. package/ts/cjs/index.js +1 -0
  60. package/ts/cjs/index.js.map +1 -1
  61. package/ts/cjs/keyed-ng.d.ts +51 -0
  62. package/ts/cjs/keyed-ng.d.ts.map +1 -0
  63. package/ts/cjs/keyed-ng.js +93 -0
  64. package/ts/cjs/keyed-ng.js.map +1 -0
  65. package/ts/cjs/keyed-ng.test.d.ts +2 -0
  66. package/ts/cjs/keyed-ng.test.d.ts.map +1 -0
  67. package/ts/cjs/keyed-ng.test.js +151 -0
  68. package/ts/cjs/keyed-ng.test.js.map +1 -0
  69. package/ts/cjs/lru-map-set.d.ts +4 -1
  70. package/ts/cjs/lru-map-set.d.ts.map +1 -1
  71. package/ts/cjs/lru-map-set.js +2 -1
  72. package/ts/cjs/lru-map-set.js.map +1 -1
  73. package/ts/cjs/resolve-once.d.ts +26 -62
  74. package/ts/cjs/resolve-once.d.ts.map +1 -1
  75. package/ts/cjs/resolve-once.js +67 -104
  76. package/ts/cjs/resolve-once.js.map +1 -1
  77. package/ts/cjs/resolve-once.test.js +119 -31
  78. package/ts/cjs/resolve-once.test.js.map +1 -1
  79. package/ts/cjs/version.d.ts.map +1 -1
  80. package/ts/cjs/version.js +1 -1
  81. package/ts/cjs/version.js.map +1 -1
  82. package/ts/esm/index.d.ts +1 -0
  83. package/ts/esm/index.d.ts.map +1 -1
  84. package/ts/esm/index.js +1 -0
  85. package/ts/esm/index.js.map +1 -1
  86. package/ts/esm/keyed-ng.d.ts +51 -0
  87. package/ts/esm/keyed-ng.d.ts.map +1 -0
  88. package/ts/esm/keyed-ng.js +89 -0
  89. package/ts/esm/keyed-ng.js.map +1 -0
  90. package/ts/esm/keyed-ng.test.d.ts +2 -0
  91. package/ts/esm/keyed-ng.test.d.ts.map +1 -0
  92. package/ts/esm/keyed-ng.test.js +149 -0
  93. package/ts/esm/keyed-ng.test.js.map +1 -0
  94. package/ts/esm/lru-map-set.d.ts +4 -1
  95. package/ts/esm/lru-map-set.d.ts.map +1 -1
  96. package/ts/esm/lru-map-set.js +2 -1
  97. package/ts/esm/lru-map-set.js.map +1 -1
  98. package/ts/esm/resolve-once.d.ts +26 -62
  99. package/ts/esm/resolve-once.d.ts.map +1 -1
  100. package/ts/esm/resolve-once.js +66 -102
  101. package/ts/esm/resolve-once.js.map +1 -1
  102. package/ts/esm/resolve-once.test.js +119 -31
  103. package/ts/esm/resolve-once.test.js.map +1 -1
  104. package/ts/esm/version.d.ts.map +1 -1
  105. package/ts/esm/version.js +1 -1
  106. package/ts/esm/version.js.map +1 -1
@@ -0,0 +1,149 @@
1
+ import { KeyedNg } from "./keyed-ng.js";
2
+ import { ResolveOnce, ResolveSeq } from "./resolve-once.js";
3
+ describe("KeyedFactory with ResolveOnce", () => {
4
+ it("works with resolve once", () => {
5
+ const my = new KeyedNg({
6
+ createValue: (item) => {
7
+ return new ResolveOnce({
8
+ ...item,
9
+ value: { X: item.givenKey.x, Y: item.givenKey.y, refKey: item.refKey },
10
+ ctx: item.ctx,
11
+ });
12
+ },
13
+ key2string: (givenKey) => givenKey.x + "---" + givenKey.y,
14
+ ctx: { bla: true },
15
+ });
16
+ const once = my.get({ x: 3, y: 4 }, { bla: false }).once(({ refKey: key, givenKey, ctx }) => {
17
+ return {
18
+ resX: givenKey.x * 2,
19
+ resY: givenKey.y * 3,
20
+ keyItem: {
21
+ key,
22
+ givenKey,
23
+ value: {
24
+ X: givenKey.x,
25
+ Y: givenKey.y,
26
+ key,
27
+ },
28
+ ctx,
29
+ },
30
+ };
31
+ });
32
+ expect(once).toEqual({
33
+ resX: 6,
34
+ resY: 12,
35
+ keyItem: {
36
+ key: "3---4",
37
+ givenKey: { x: 3, y: 4 },
38
+ value: { X: 3, Y: 4, key: "3---4" },
39
+ ctx: { bla: false },
40
+ },
41
+ });
42
+ });
43
+ it("works with resolve seq", async () => {
44
+ const my = new KeyedNg({
45
+ createValue: (item) => {
46
+ return new ResolveSeq({
47
+ ...item,
48
+ value: item.ctx,
49
+ ctx: item.ctx,
50
+ });
51
+ },
52
+ key2string: (givenKey) => givenKey.x + "---" + givenKey.y,
53
+ ctx: { bla: true },
54
+ });
55
+ const once = await my.get({ x: 3, y: 4 }, { bla: false }).add((item) => {
56
+ return {
57
+ resX: item.givenKey.x * 2,
58
+ resY: item.givenKey.y * 3,
59
+ keyItem: {
60
+ refKey: item.refKey,
61
+ givenKey: item.givenKey,
62
+ value: {
63
+ X: item.givenKey.x,
64
+ Y: item.givenKey.y,
65
+ refKey: item.refKey,
66
+ },
67
+ ctx: item.ctx,
68
+ },
69
+ };
70
+ });
71
+ expect(once).toEqual({
72
+ resX: 6,
73
+ resY: 12,
74
+ keyItem: {
75
+ refKey: "3---4",
76
+ givenKey: { x: 3, y: 4 },
77
+ value: { X: 3, Y: 4, refKey: "3---4" },
78
+ ctx: { bla: false },
79
+ },
80
+ });
81
+ });
82
+ it("keyed factory", () => {
83
+ const my = new KeyedNg({
84
+ createValue: (item) => ({
85
+ X: item.givenKey.x,
86
+ Y: item.givenKey.y,
87
+ key: item.refKey,
88
+ }),
89
+ key2string: (key) => key.x + "," + key.y,
90
+ ctx: { bla: true },
91
+ });
92
+ const obj = my.get({ x: 1, y: 2 });
93
+ expect(obj).toEqual({ X: 1, Y: 2, key: "1,2" });
94
+ expect(my.get({ x: 1, y: 2 })).toBe(obj);
95
+ expect(my.get({ x: 1, y: 2 })).toBe(obj);
96
+ expect(my.get({ x: 1, y: 2 })).toBe(obj);
97
+ expect(my.get({ x: 1, y: 2 })).toBe(obj);
98
+ expect(my.values()).toEqual([
99
+ {
100
+ ctx: {
101
+ bla: true,
102
+ },
103
+ givenKey: {
104
+ x: 1,
105
+ y: 2,
106
+ },
107
+ refKey: "1,2",
108
+ value: {
109
+ X: 1,
110
+ Y: 2,
111
+ key: "1,2",
112
+ },
113
+ },
114
+ ]);
115
+ const oitem = my.getItem({ x: 1, y: 2 });
116
+ expect(oitem).toEqual({
117
+ ctx: {
118
+ bla: true,
119
+ },
120
+ givenKey: {
121
+ x: 1,
122
+ y: 2,
123
+ },
124
+ refKey: "1,2",
125
+ value: {
126
+ X: 1,
127
+ Y: 2,
128
+ key: "1,2",
129
+ },
130
+ });
131
+ const oitem2 = my.getItem({ x: 2, y: 2 }, { bla: false });
132
+ expect(oitem2).toEqual({
133
+ ctx: {
134
+ bla: false,
135
+ },
136
+ givenKey: {
137
+ x: 2,
138
+ y: 2,
139
+ },
140
+ refKey: "2,2",
141
+ value: {
142
+ X: 2,
143
+ Y: 2,
144
+ key: "2,2",
145
+ },
146
+ });
147
+ });
148
+ });
149
+ //# sourceMappingURL=keyed-ng.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyed-ng.test.js","sourceRoot":"","sources":["../../../src/keyed-ng.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAuB5D,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC;IAC9C,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC;YACrB,WAAW,EAAE,CAAC,IAAI,EAA+E,EAAE,CAAC;gBAClG,OAAO,IAAI,WAAW,CAAiE;oBACrF,GAAG,IAAI;oBACP,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;oBACtE,GAAG,EAAE,IAAI,CAAC,GAAG;iBACd,CAAC,CAAC;YAAA,CACJ;YACD,UAAU,EAAE,CAAC,QAAqB,EAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;YAC9E,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;SACnB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;YAC3F,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACpB,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACpB,OAAO,EAAE;oBACP,GAAG;oBACH,QAAQ;oBACR,KAAK,EAAE;wBACL,CAAC,EAAE,QAAQ,CAAC,CAAC;wBACb,CAAC,EAAE,QAAQ,CAAC,CAAC;wBACb,GAAG;qBACJ;oBACD,GAAG;iBACJ;aACF,CAAC;QAAA,CACH,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,EAAE;YACR,OAAO,EAAE;gBACP,GAAG,EAAE,OAAO;gBACZ,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBACxB,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE;gBACnC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;aACpB;SACF,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC;YACrB,WAAW,EAAE,CAAC,IAAI,EAAwE,EAAE,CAAC;gBAC3F,OAAO,IAAI,UAAU,CAA2D;oBAC9E,GAAG,IAAI;oBACP,KAAK,EAAE,IAAI,CAAC,GAAG;oBACf,GAAG,EAAE,IAAI,CAAC,GAAG;iBACd,CAAC,CAAC;YAAA,CACJ;YACD,UAAU,EAAE,CAAC,QAAqB,EAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;YAC9E,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;SACnB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACtE,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACzB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;gBACzB,OAAO,EAAE;oBACP,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,KAAK,EAAE;wBACL,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAClB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;qBACpB;oBACD,GAAG,EAAE,IAAI,CAAC,GAAG;iBACd;aACF,CAAC;QAAA,CACH,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,EAAE;YACR,OAAO,EAAE;gBACP,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBACxB,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;gBACtC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE;aACpB;SACF,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC;YACrB,WAAW,EAAE,CAAC,IAAI,EAAyC,EAAE,CAAC,CAAC;gBAC7D,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClB,GAAG,EAAE,IAAI,CAAC,MAAM;aACjB,CAAC;YACF,UAAU,EAAE,CAAC,GAA6B,EAAU,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YAC1E,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;SACnB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;YAC1B;gBACE,GAAG,EAAE;oBACH,GAAG,EAAE,IAAI;iBACV;gBACD,QAAQ,EAAE;oBACR,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;iBACL;gBACD,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE;oBACL,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;oBACJ,GAAG,EAAE,KAAK;iBACX;aACF;SACF,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,GAAG,EAAE;gBACH,GAAG,EAAE,IAAI;aACV;YACD,QAAQ,EAAE;gBACR,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,GAAG,EAAE,KAAK;aACX;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,GAAG,EAAE;gBACH,GAAG,EAAE,KAAK;aACX;YACD,QAAQ,EAAE;gBACR,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL;YACD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,GAAG,EAAE,KAAK;aACX;SACF,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;AAAA,CACJ,CAAC,CAAC"}
@@ -18,6 +18,9 @@ export declare class LRUSet<T> {
18
18
  forEach(callbackfn: (value: T, key: T) => void): void;
19
19
  entries(): IterableIterator<[T, T, LRUCtx<T, T>]>;
20
20
  }
21
+ export type LRUWithIdx<T> = T & {
22
+ readonly idx: number;
23
+ };
21
24
  export interface LRUCtx<T, K> {
22
25
  readonly update: boolean;
23
26
  readonly ref: LRUMap<K, T>;
@@ -56,7 +59,7 @@ export declare class LRUMap<K, V> {
56
59
  private buildItemCtx;
57
60
  delete(key: K): void;
58
61
  clear(): void;
59
- forEach(fn: (value: V, key: K, ctx: LRUCtx<V, K>) => void): void;
62
+ forEach(fn: (value: V, key: K, ctx: LRUWithIdx<LRUCtx<V, K>>) => void): void;
60
63
  entries(): IterableIterator<[K, V, LRUCtx<V, K>]>;
61
64
  }
62
65
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"lru-map-set.d.ts","sourceRoot":"","sources":["../../../src/lru-map-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,UAAU,eAAe,CAAC,CAAC,EAAE,CAAC;IAC5B,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC;IAGzE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAqB/E,qBAAa,MAAM,CAAC,CAAC;;IAGnB,YAAY,KAAK,GAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAM,EAE9C;IAED,QAAQ,CAAC,KAAK,GAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAM,GAAG,IAAI,CAElD;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAEnB;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAEhB;IAED,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAEnB;IAED,KAAK,IAAI,IAAI,CAEZ;IAED,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAEpD;IAED,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAEhD;CACF;AAED,MAAM,WAAW,MAAM,CAAC,CAAC,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;AAC5E,MAAM,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC;AA+CjC,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,IAAI,CAAgD;IAC5D,OAAO,CAAC,KAAK,CAAwB;IAErC,QAAQ,CAAC,KAAK;;;;MAIZ;IAEF,YAAY,CAAC,GAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAM,EAO1C;IAED,OAAO,CAAC,SAAS,CAAkE;IACnF,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAMjC;IACD,OAAO,CAAC,YAAY,CAAkE;IACtF,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAMpC;IAED,OAAO,CAAC,KAAK;IAUb,QAAQ,CAAC,KAAK,GAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAM,GAAG,IAAI,CAelD;IAED,IAAI,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAE1B;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAEnB;IAED,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,CAS7E;IAED,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAEzB;IAED,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAMtC;IAED,OAAO,CAAC,SAAS;IAOjB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAuB1B;IAED,OAAO,CAAC,YAAY;IASpB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAOnB;IAED,KAAK,IAAI,IAAI,CAOZ;IAED,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAI/D;IAEA,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAIjD;CAcF"}
1
+ {"version":3,"file":"lru-map-set.d.ts","sourceRoot":"","sources":["../../../src/lru-map-set.ts"],"names":[],"mappings":"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"}
@@ -183,8 +183,9 @@ export class LRUMap {
183
183
  this._map.clear();
184
184
  }
185
185
  forEach(fn) {
186
+ let idx = 0;
186
187
  this._map.forEach((v, k) => {
187
- fn(v.value, k, this.buildItemCtx(v, false));
188
+ fn(v.value, k, { ...this.buildItemCtx(v, false), idx: idx++ });
188
189
  });
189
190
  }
190
191
  *entries() {
@@ -1 +1 @@
1
- {"version":3,"file":"lru-map-set.js","sourceRoot":"","sources":["../../../src/lru-map-set.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lru-map-set.js","sourceRoot":"","sources":["../../../src/lru-map-set.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { Future } from "./future.js";
2
2
  import { UnPromisify } from "./is-promise.js";
3
- import { LRUMap, LRUParam, UnregFn } from "./lru-map-set.js";
3
+ import { UnregFn } from "./lru-map-set.js";
4
4
  import { Result } from "./result.js";
5
+ import { KeyedIf, KeyedNg, KeyedNgItem, KeyedNgItemWithoutValue, KeyedNgOptions } from "./keyed-ng.js";
5
6
  interface ResolveSeqItem<C, T, R> {
6
7
  readonly future: Future<T>;
7
8
  readonly fn: (c: C) => R;
@@ -60,64 +61,33 @@ export declare class ResolveOnce<T, CTX = void> implements ResolveOnceIf<T, CTX>
60
61
  once<R>(fn: (c: CTX) => R): ResultOnce<R>;
61
62
  reset<R>(fn?: (c: CTX) => R): ResultOnce<R>;
62
63
  }
63
- export interface KeyedParam<K, V> {
64
- readonly lru: Partial<LRUParam<V, K>>;
65
- }
66
- export type AddKeyedParam<K, V, CTX extends NonNullable<object>> = KeyedParam<K, V> & {
67
- readonly ctx: CTX;
68
- };
69
- export interface KeyedIf<T extends {
70
- reset: () => void;
71
- }, K = string> {
72
- onSet(fn: (key: K, value: T) => void): UnregFn;
73
- onDelete(fn: (key: K, value: T) => void): UnregFn;
74
- setParam(params: KeyedParam<K, T>): void;
75
- asyncGet(key: () => Promise<K>): Promise<T>;
76
- get(key: K | (() => K)): T;
77
- has(key: K | (() => K)): boolean;
78
- delete(key: K): void;
79
- unget(key: K): void;
80
- reset(): void;
81
- values(): T[];
82
- keys(): K[];
83
- forEach(fn: (k: K, v: T, idx: number) => void): void;
84
- entries(): Iterable<[K, T]>;
85
- }
86
- export declare class Keyed<T extends {
87
- reset: () => void;
88
- }, K = string, CTX extends NonNullable<object> = object> implements KeyedIf<T, K> {
89
- #private;
90
- protected readonly _map: LRUMap<K, T>;
91
- readonly factory: (ctx: AddKey<CTX, K>) => T;
92
- constructor(factory: (ctx: AddKey<CTX, K>) => T, ctx: Partial<AddKeyedParam<K, T, CTX>>);
93
- onSet(fn: (key: K, value: T) => void): UnregFn;
94
- onDelete(fn: (key: K, value: T) => void): UnregFn;
95
- setParam(params: KeyedParam<K, T>): void;
96
- asyncGet(key: () => Promise<K>): Promise<T>;
97
- get(key: K | (() => K)): T;
98
- has(key: K | (() => K)): boolean;
99
- delete(key: K): void;
100
- unget(key: K): void;
101
- reset(): void;
102
- values(): T[];
103
- keys(): K[];
104
- forEach(fn: (k: K, v: T, idx: number) => void): void;
105
- entries(): Iterable<[K, T]>;
106
- }
107
64
  export interface KeyItem<K, V> {
108
65
  readonly key: K;
109
66
  readonly value: Result<V>;
110
67
  }
111
- export declare class KeyedResolvOnce<T, K = string, CTX extends NonNullable<object> = object> implements Omit<KeyedIf<ResolveOnce<T, AddKey<CTX, K>>, K>, "forEach" | "keys" | "values" | "entries"> {
112
- readonly _keyed: KeyedIf<ResolveOnce<T, AddKey<CTX, K>>, K>;
113
- constructor(kp?: Partial<AddKeyedParam<K, ResolveOnce<T, CTX>, CTX>>);
68
+ export type AddKeyedParam<K, V, CTX extends NonNullable<object>> = Omit<KeyedNgOptions<K, V, CTX>, "createValue">;
69
+ export type WithKey<X extends NonNullable<object>, K> = X & {
70
+ readonly key: K;
71
+ };
72
+ export type WithOptionalReset<V> = V & {
73
+ readonly reset?: () => void;
74
+ };
75
+ export interface KeyedResolveOnceItem<K, T, CTX extends NonNullable<object>> {
76
+ readonly key: K;
77
+ readonly value: Result<T>;
78
+ readonly item: KeyedNgItem<K, ResolveOnce<WithOptionalReset<T>, KeyedNgItemWithoutValue<K, CTX>>, CTX>;
79
+ }
80
+ export declare class KeyedResolvOnce<T extends WithOptionalReset<PT>, K = string, CTX extends NonNullable<object> = object, PT = T> implements Omit<KeyedIf<KeyedNgItem<K, ResolveOnce<T, KeyedNgItemWithoutValue<K, CTX>>, CTX>, ResolveOnce<T, KeyedNgItemWithoutValue<K, CTX>>, K, CTX>, "entries" | "forEach" | "onSet" | "onDelete" | "values" | "setParam"> {
81
+ readonly _keyed: KeyedNg<K, ResolveOnce<WithOptionalReset<T>, KeyedNgItemWithoutValue<K, CTX>>, CTX>;
82
+ constructor(kp?: Partial<AddKeyedParam<K, T, CTX>>);
114
83
  keys(): K[];
115
- values(): KeyItem<K, T>[];
116
- onSet(fn: (key: K, value: ResolveOnce<T, AddKey<CTX, K>>) => void): UnregFn;
117
- onDelete(fn: (key: K, value: ResolveOnce<T, AddKey<CTX, K>>) => void): UnregFn;
118
- setParam(params: KeyedParam<K, ResolveOnce<T, AddKey<CTX, K>>>): void;
119
- asyncGet(key: () => Promise<K>): Promise<ResolveOnce<T, AddKey<CTX, K>>>;
120
- get(key: K | (() => K)): ResolveOnce<T, AddKey<CTX, K>>;
84
+ values(): KeyedResolveOnceItem<K, T, CTX>[];
85
+ onSet(fn: (key: K, value: ResolveOnce<T, KeyedNgItemWithoutValue<K, CTX>>) => void): UnregFn;
86
+ onDelete(fn: (key: K, value: ResolveOnce<T, KeyedNgItemWithoutValue<K, CTX>>) => void): UnregFn;
87
+ setParam(params: Partial<AddKeyedParam<K, ResolveOnce<T, CTX>, CTX>>): void;
88
+ asyncGet(key: () => Promise<K>): Promise<ResolveOnce<T, KeyedNgItemWithoutValue<K, CTX>>>;
89
+ get(key: K | (() => K), ctx?: CTX): ResolveOnce<T, KeyedNgItemWithoutValue<K, CTX>>;
90
+ getItem(key: K, ctx?: CTX): KeyedNgItem<K, ResolveOnce<T, KeyedNgItemWithoutValue<K, CTX>>, CTX>;
121
91
  has(key: K | (() => K)): boolean;
122
92
  delete(key: K): void;
123
93
  unget(key: K): void;
@@ -125,14 +95,8 @@ export declare class KeyedResolvOnce<T, K = string, CTX extends NonNullable<obje
125
95
  forEach(fn: (ki: KeyItem<K, T>, idx: number) => void): void;
126
96
  entries(): Iterable<KeyItem<K, T>>;
127
97
  }
128
- export type AddKey<X extends NonNullable<object>, K> = X & {
129
- key: K;
130
- };
131
- type WithCTX<K, T, CTX extends NonNullable<object>> = KeyedParam<K, ResolveSeq<T, AddKey<CTX, K>>> & {
132
- readonly ctx: CTX;
133
- };
134
- export declare class KeyedResolvSeq<T extends NonNullable<unknown>, K = string, CTX extends NonNullable<object> = object> extends Keyed<ResolveSeq<T, AddKey<CTX, K>>, K, CTX> {
135
- constructor(kp?: Partial<WithCTX<K, T, CTX>>);
98
+ export declare class KeyedResolvSeq<VALUEType extends NonNullable<unknown>, KEYType = string, CTX extends NonNullable<object> = object> extends KeyedNg<KEYType, ResolveSeq<VALUEType, KeyedNgItemWithoutValue<KEYType, CTX>>, CTX> {
99
+ constructor(kp?: Partial<Omit<KeyedNgOptions<KEYType, VALUEType, CTX>, "createValue">>);
136
100
  }
137
101
  export declare function Lazy<Args extends readonly unknown[], Return>(fn: (...args: Args) => Return): (...args: Args) => Return;
138
102
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-once.d.ts","sourceRoot":"","sources":["../../../src/resolve-once.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-once.d.ts","sourceRoot":"","sources":["../../../src/resolve-once.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMvG,UAAU,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAyBD,qBAAa,UAAU,CAAC,CAAC,EAAE,GAAG,SAAS,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAM;IAE7D,YAAY,GAAG,CAAC,EAAE,GAAG,EAEpB;IAKD,KAAK,IAAI,IAAI,CAEZ;IAED,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAM;IAO5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAOrB;IAMK,KAAK,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBxE;IAYD,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAO/D;CACF;AASD,KAAK,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;AAavE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAOxE,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI;IAC1C,IAAI,KAAK,IAAI,OAAO,CAAC;IACrB,IAAI,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACxC,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC;IAC/B,IAAI,KAAK,IAAI,YAAY,CAAC;IAE1B,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;CAC9C;AAYD,qBAAa,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI;;IACxC,KAAK,EAAE,YAAY,CAAa;IAKhC,QAAQ,CAAC,WAAW,SAAK;IAKzB,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAEzB;IAKD,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAE7B;IAKD,IAAI,KAAK,IAAI,OAAO,CAEnB;IAGD,YAAY,GAAG,CAAC,EAAE,GAAG,EAEpB;IAUD,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAgB/B;IAQD,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAQxC;CACF;AA4GD,qBAAa,gBAAgB,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI;;IACzC,KAAK,EAAE,YAAY,CAAa;IAKhC,YAAY,GAAG,CAAC,EAAE,GAAG,EAEpB;IAaD,IAAI,WAAW,IAAI,MAAM,CAExB;IAKD,IAAI,KAAK,IAAI,OAAO,CAEnB;IAKD,IAAI,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAKtC;IAKD,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAK7B;IASD,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAyB/B;IAQD,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAM5B;CACF;AA0BD,qBAAa,WAAW,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC;;IAMtE,YAAY,GAAG,CAAC,EAAE,GAAG,EAEpB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAKtC;IAED,IAAI,WAAW,IAAI,MAAM,CAKxB;IAED,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAK7B;IAED,IAAI,KAAK,IAAI,YAAY,CAKxB;IAED,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CA4BxC;IAED,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAe1C;CACF;AAgBD,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC3B;AAQD,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;AAOlH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;CAAE,CAAC;AAMhF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAQvE,MAAM,WAAW,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,WAAW,CAAC,MAAM,CAAC;IAEzE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAE1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;CACxG;AA+CD,qBAAa,eAAe,CAAC,CAAC,SAAS,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,CAAC,CACxH,YACE,IAAI,CAEF,OAAO,CACL,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EACpE,WAAW,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAC/C,CAAC,EACD,GAAG,CACJ,EACD,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CACrE;IAGH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAOrG,YAAY,EAAE,GAAE,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAM,EAcrD;IAOD,IAAI,IAAI,CAAC,EAAE,CAEV;IAsBD,MAAM,IAAI,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAS1C;IAQD,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAI3F;IAQD,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAI9F;IAOD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAE1E;IAQD,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAExF;IAmBD,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAKlF;IAWD,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAE/F;IAQD,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAE/B;IASD,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAEnB;IAUD,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAIlB;IAQD,KAAK,IAAI,IAAI,CAIZ;IAsBD,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAa1D;IAgBA,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAclC;CACF;AAqBD,qBAAa,cAAc,CACzB,SAAS,SAAS,WAAW,CAAC,OAAO,CAAC,EACtC,OAAO,GAAG,MAAM,EAChB,GAAG,SAAS,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CACxC,SAAQ,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,EAAE,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;IAM3F,YAAY,EAAE,GAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,aAAa,CAAC,CAAM,EAczF;CACF;AAsCD,wBAAgB,IAAI,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAGtH"}
@@ -1,8 +1,8 @@
1
1
  import { Future } from "./future.js";
2
2
  import { isPromise } from "./is-promise.js";
3
- import { LRUMap } from "./lru-map-set.js";
4
3
  import { Result } from "./result.js";
5
4
  import { Option } from "./option.js";
5
+ import { KeyedNg } from "./keyed-ng.js";
6
6
  export class ResolveSeq {
7
7
  ctx;
8
8
  _seqFutures = [];
@@ -308,6 +308,10 @@ export class ResolveOnce {
308
308
  }
309
309
  reset(fn) {
310
310
  if (this.#state === "initial") {
311
+ if (!fn) {
312
+ console.warn("ResolveOnce.reset called but not yet resolved and no fn given");
313
+ return undefined;
314
+ }
311
315
  return this.once(fn);
312
316
  }
313
317
  if (this.#state === "processing") {
@@ -317,115 +321,58 @@ export class ResolveOnce {
317
321
  return this.#syncOrAsync.Unwrap().reset(fn);
318
322
  }
319
323
  }
320
- export class Keyed {
321
- _map;
322
- #ctx;
323
- factory;
324
- constructor(factory, ctx) {
325
- this.#ctx = ctx.ctx || {};
326
- this.factory = factory;
327
- this._map = new LRUMap(ctx?.lru ?? { maxEntries: -1 });
328
- }
329
- onSet(fn) {
330
- return this._map.onSet(fn);
331
- }
332
- onDelete(fn) {
333
- return this._map.onDelete(fn);
334
- }
335
- setParam(params) {
336
- this._map.setParam(params.lru);
337
- }
338
- async asyncGet(key) {
339
- return this.get(await key());
340
- }
341
- get(key) {
342
- if (typeof key === "function") {
343
- key = key();
344
- }
345
- let keyed = this._map.get(key);
346
- if (!keyed) {
347
- keyed = this.factory({ ...this.#ctx, key: key });
348
- this._map.set(key, keyed);
349
- }
350
- return keyed;
351
- }
352
- has(key) {
353
- if (typeof key === "function") {
354
- key = key();
355
- }
356
- return this._map.has(key);
357
- }
358
- delete(key) {
359
- this._map.delete(key);
360
- }
361
- unget(key) {
362
- const keyed = this._map.get(key);
363
- keyed?.reset();
364
- this._map.delete(key);
365
- }
366
- reset() {
367
- this._map.forEach((keyed) => keyed.reset());
368
- this._map.clear();
369
- }
370
- values() {
371
- const results = [];
372
- this.forEach((_, v) => {
373
- results.push(v);
374
- });
375
- return results;
376
- }
377
- keys() {
378
- const results = [];
379
- this.forEach((k) => {
380
- results.push(k);
381
- });
382
- return results;
383
- }
384
- forEach(fn) {
385
- let idx = 0;
386
- for (const [k, v] of this._map.entries()) {
387
- fn(k, v, idx++);
388
- }
389
- }
390
- *entries() {
391
- for (const [k, v] of this._map.entries()) {
392
- yield [k, v];
393
- }
394
- }
395
- }
396
324
  export class KeyedResolvOnce {
397
325
  _keyed;
398
326
  constructor(kp = {}) {
399
- this._keyed = new Keyed((ctx) => new ResolveOnce(ctx), kp);
327
+ this._keyed = new KeyedNg({
328
+ createValue: (item) => {
329
+ return new ResolveOnce({
330
+ ...item,
331
+ ctx: kp.ctx ?? item.ctx,
332
+ });
333
+ },
334
+ key2string: kp.key2string,
335
+ ctx: kp.ctx,
336
+ lru: kp.lru,
337
+ });
400
338
  }
401
339
  keys() {
402
- const results = [];
403
- this.forEach((k) => {
404
- results.push(k.key);
405
- });
406
- return results;
340
+ return this._keyed.keys();
407
341
  }
408
342
  values() {
409
- const results = [];
410
- this.forEach((v) => {
411
- results.push(v);
412
- });
413
- return results;
343
+ return this._keyed
344
+ .values()
345
+ .filter((i) => i.value.ready)
346
+ .map((item) => ({
347
+ key: item.givenKey,
348
+ value: item.value.error ? Result.Err(item.value.error) : Result.Ok(item.value.value),
349
+ item,
350
+ }));
414
351
  }
415
352
  onSet(fn) {
416
- return this._keyed.onSet(fn);
353
+ return this._keyed.onSet((item) => {
354
+ fn(item.givenKey, item.value);
355
+ });
417
356
  }
418
357
  onDelete(fn) {
419
- return this._keyed.onDelete(fn);
358
+ return this._keyed.onDelete((item) => {
359
+ fn(item.givenKey, item.value);
360
+ });
420
361
  }
421
362
  setParam(params) {
422
- this._keyed.setParam(params);
363
+ this._keyed.setParam({ lru: params.lru });
423
364
  }
424
365
  asyncGet(key) {
425
366
  return this._keyed.asyncGet(key);
426
367
  }
427
- get(key) {
428
- return this._keyed.get(key);
368
+ get(key, ctx) {
369
+ if (typeof key === "function") {
370
+ key = key();
371
+ }
372
+ return this._keyed.getItem(key, ctx).value;
373
+ }
374
+ getItem(key, ctx) {
375
+ return this._keyed.getItem(key, ctx);
429
376
  }
430
377
  has(key) {
431
378
  return this._keyed.has(key);
@@ -434,27 +381,34 @@ export class KeyedResolvOnce {
434
381
  this._keyed.delete(key);
435
382
  }
436
383
  unget(key) {
437
- this._keyed.unget(key);
384
+ const item = this._keyed.getItem(key);
385
+ item.value.reset?.();
386
+ return this._keyed.delete(item.givenKey);
438
387
  }
439
388
  reset() {
440
- this._keyed.reset();
389
+ for (const v of this._keyed.values()) {
390
+ v.value.reset?.();
391
+ }
441
392
  }
442
393
  forEach(fn) {
443
- let idx = 0;
444
- for (const [k, v] of this._keyed.entries()) {
394
+ for (const [item, idx] of this._keyed.entries()) {
395
+ const v = item.value;
396
+ const k = item.givenKey;
445
397
  if (!v.ready) {
446
398
  continue;
447
399
  }
448
400
  if (v.error) {
449
- fn({ key: k, value: Result.Err(v.error) }, idx++);
401
+ fn({ key: k, value: Result.Err(v.error) }, idx);
450
402
  }
451
403
  else {
452
- fn({ key: k, value: Result.Ok(v.value) }, idx++);
404
+ fn({ key: k, value: Result.Ok(v.value) }, idx);
453
405
  }
454
406
  }
455
407
  }
456
408
  *entries() {
457
- for (const [k, v] of this._keyed.entries()) {
409
+ for (const [item] of this._keyed.entries()) {
410
+ const v = item.value;
411
+ const k = item.givenKey;
458
412
  if (!v.ready) {
459
413
  continue;
460
414
  }
@@ -467,9 +421,19 @@ export class KeyedResolvOnce {
467
421
  }
468
422
  }
469
423
  }
470
- export class KeyedResolvSeq extends Keyed {
424
+ export class KeyedResolvSeq extends KeyedNg {
471
425
  constructor(kp = {}) {
472
- super((ctx) => new ResolveSeq(ctx), kp);
426
+ super({
427
+ createValue: (item) => {
428
+ return new ResolveSeq({
429
+ ...item,
430
+ ctx: kp.ctx ?? item.ctx,
431
+ });
432
+ },
433
+ key2string: kp.key2string,
434
+ ctx: kp.ctx,
435
+ lru: kp.lru,
436
+ });
473
437
  }
474
438
  }
475
439
  class LazyContainer {