@lodestar/utils 1.2.0-dev.60d9968b8d → 1.2.0-dev.64892640a4

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.
package/lib/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from "./assert.js";
4
4
  export * from "./bytes.js";
5
5
  export * from "./errors.js";
6
6
  export * from "./format.js";
7
+ export * from "./map.js";
7
8
  export * from "./math.js";
8
9
  export * from "./objects.js";
9
10
  export { retry, RetryOptions } from "./retry.js";
package/lib/index.js CHANGED
@@ -4,6 +4,7 @@ export * from "./assert.js";
4
4
  export * from "./bytes.js";
5
5
  export * from "./errors.js";
6
6
  export * from "./format.js";
7
+ export * from "./map.js";
7
8
  export * from "./math.js";
8
9
  export * from "./objects.js";
9
10
  export { retry } from "./retry.js";
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,KAAK,EAAe,MAAM,YAAY,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAmB,OAAO,EAAC,MAAM,YAAY,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,KAAK,EAAe,MAAM,YAAY,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAmB,OAAO,EAAC,MAAM,YAAY,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC"}
package/lib/map.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ export declare class MapDef<K, V> extends Map<K, V> {
2
+ private readonly getDefault;
3
+ constructor(getDefault: () => V);
4
+ getOrDefault(key: K): V;
5
+ }
6
+ /**
7
+ * 2 dimensions Es6 Map
8
+ */
9
+ export declare class Map2d<K1, K2, V> {
10
+ readonly map: Map<K1, Map<K2, V>>;
11
+ get(k1: K1, k2: K2): V | undefined;
12
+ set(k1: K1, k2: K2, v: V): void;
13
+ }
14
+ /**
15
+ * 2 dimensions Es6 Map + regular array
16
+ */
17
+ export declare class Map2dArr<K1, V> {
18
+ readonly map: Map<K1, V[]>;
19
+ get(k1: K1, idx: number): V | undefined;
20
+ set(k1: K1, idx: number, v: V): void;
21
+ }
22
+ /**
23
+ * Prune an arbitrary set removing the first keys to have a set.size === maxItems.
24
+ * Returns the count of deleted items.
25
+ */
26
+ export declare function pruneSetToMax<T>(set: Set<T> | Map<T, unknown>, maxItems: number): number;
27
+ //# sourceMappingURL=map.d.ts.map
package/lib/map.js ADDED
@@ -0,0 +1,73 @@
1
+ export class MapDef extends Map {
2
+ constructor(getDefault) {
3
+ super();
4
+ this.getDefault = getDefault;
5
+ }
6
+ getOrDefault(key) {
7
+ let value = super.get(key);
8
+ if (value === undefined) {
9
+ value = this.getDefault();
10
+ this.set(key, value);
11
+ }
12
+ return value;
13
+ }
14
+ }
15
+ /**
16
+ * 2 dimensions Es6 Map
17
+ */
18
+ export class Map2d {
19
+ constructor() {
20
+ this.map = new Map();
21
+ }
22
+ get(k1, k2) {
23
+ var _a;
24
+ return (_a = this.map.get(k1)) === null || _a === void 0 ? void 0 : _a.get(k2);
25
+ }
26
+ set(k1, k2, v) {
27
+ let map2 = this.map.get(k1);
28
+ if (!map2) {
29
+ map2 = new Map();
30
+ this.map.set(k1, map2);
31
+ }
32
+ map2.set(k2, v);
33
+ }
34
+ }
35
+ /**
36
+ * 2 dimensions Es6 Map + regular array
37
+ */
38
+ export class Map2dArr {
39
+ constructor() {
40
+ this.map = new Map();
41
+ }
42
+ get(k1, idx) {
43
+ var _a;
44
+ return (_a = this.map.get(k1)) === null || _a === void 0 ? void 0 : _a[idx];
45
+ }
46
+ set(k1, idx, v) {
47
+ let arr = this.map.get(k1);
48
+ if (!arr) {
49
+ arr = [];
50
+ this.map.set(k1, arr);
51
+ }
52
+ arr[idx] = v;
53
+ }
54
+ }
55
+ /**
56
+ * Prune an arbitrary set removing the first keys to have a set.size === maxItems.
57
+ * Returns the count of deleted items.
58
+ */
59
+ export function pruneSetToMax(set, maxItems) {
60
+ let itemsToDelete = set.size - maxItems;
61
+ const deletedItems = Math.max(0, itemsToDelete);
62
+ if (itemsToDelete > 0) {
63
+ for (const key of set.keys()) {
64
+ set.delete(key);
65
+ itemsToDelete--;
66
+ if (itemsToDelete <= 0) {
67
+ break;
68
+ }
69
+ }
70
+ }
71
+ return deletedItems;
72
+ }
73
+ //# sourceMappingURL=map.js.map
package/lib/map.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAa,SAAQ,GAAS;IACzC,YAA6B,UAAmB;QAC9C,KAAK,EAAE,CAAC;QADmB,eAAU,GAAV,UAAU,CAAS;IAEhD,CAAC;IAED,YAAY,CAAC,GAAM;QACjB,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACtB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,KAAK;IAAlB;QACW,QAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAc3C,CAAC;IAZC,GAAG,CAAC,EAAM,EAAE,EAAM;;QAChB,OAAO,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,0CAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,EAAM,EAAE,EAAM,EAAE,CAAI;QACtB,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,IAAI,GAAG,EAAS,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAQ;IAArB;QACW,QAAG,GAAG,IAAI,GAAG,EAAW,CAAC;IAcpC,CAAC;IAZC,GAAG,CAAC,EAAM,EAAE,GAAW;;QACrB,OAAO,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,0CAAG,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,EAAM,EAAE,GAAW,EAAE,CAAI;QAC3B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;SACvB;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAI,GAA6B,EAAE,QAAgB;IAC9E,IAAI,aAAa,GAAG,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAEhD,IAAI,aAAa,GAAG,CAAC,EAAE;QACrB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;YAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,IAAI,aAAa,IAAI,CAAC,EAAE;gBACtB,MAAM;aACP;SACF;KACF;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.2.0-dev.60d9968b8d",
14
+ "version": "1.2.0-dev.64892640a4",
15
15
  "type": "module",
16
16
  "exports": "./lib/index.js",
17
17
  "files": [
@@ -57,5 +57,5 @@
57
57
  "beacon",
58
58
  "blockchain"
59
59
  ],
60
- "gitHead": "68fb999c3049ca87dafd1c579fba18549f5f1a26"
60
+ "gitHead": "d8f3f580c5eff88df5215a1dfc4176c6b7b13541"
61
61
  }