@lodestar/utils 1.6.0-dev.b00d84f2a5 → 1.6.0-dev.de53bad00e

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/err.d.ts ADDED
@@ -0,0 +1,34 @@
1
+ declare const symErr: unique symbol;
2
+ export type Err<T> = {
3
+ [symErr]: true;
4
+ error: T;
5
+ };
6
+ export type Result<T, E> = T | Err<E>;
7
+ export declare function Err<T>(error: T): Err<T>;
8
+ /**
9
+ * Typeguard for Err<T>. Allows the pattern
10
+ * ```ts
11
+ * function getNumSquare(): Result<number, Error> {
12
+ * const value = getNum();
13
+ * if (isErr(value)) {
14
+ * return value; // return as error
15
+ * }
16
+ * return value ** 2;
17
+ * }
18
+ * function getNum(): Result<number, Error>
19
+ * ```
20
+ * Since the non-error is not wrapped, it uses a symbol to prevent collisions
21
+ */
22
+ export declare function isErr<T, E>(result: Result<T, E>): result is Err<E>;
23
+ /**
24
+ * Given an array of results, run a function only on an array of ok results.
25
+ * Returns a new array of results with same length as `results` where the ok
26
+ * value may be Err or T2.
27
+ */
28
+ export declare function mapOkResults<T1, T2, E>(results: Result<T1, E>[], fn: (items: T1[]) => Result<T2, E>[]): Result<T2, E>[];
29
+ /**
30
+ * See {@link mapOkResults} but `fn` is async
31
+ */
32
+ export declare function mapOkResultsAsync<T1, T2, E>(results: Result<T1, E>[], fn: (items: T1[]) => Promise<Result<T2, E>[]>): Promise<Result<T2, E>[]>;
33
+ export {};
34
+ //# sourceMappingURL=err.d.ts.map
package/lib/err.js ADDED
@@ -0,0 +1,81 @@
1
+ const symErr = Symbol("err");
2
+ // eslint-disable-next-line @typescript-eslint/naming-convention
3
+ export function Err(error) {
4
+ return { [symErr]: true, error };
5
+ }
6
+ /**
7
+ * Typeguard for Err<T>. Allows the pattern
8
+ * ```ts
9
+ * function getNumSquare(): Result<number, Error> {
10
+ * const value = getNum();
11
+ * if (isErr(value)) {
12
+ * return value; // return as error
13
+ * }
14
+ * return value ** 2;
15
+ * }
16
+ * function getNum(): Result<number, Error>
17
+ * ```
18
+ * Since the non-error is not wrapped, it uses a symbol to prevent collisions
19
+ */
20
+ export function isErr(result) {
21
+ return result !== null && typeof result === "object" && result[symErr] === true;
22
+ }
23
+ /**
24
+ * Given an array of results, run a function only on an array of ok results.
25
+ * Returns a new array of results with same length as `results` where the ok
26
+ * value may be Err or T2.
27
+ */
28
+ export function mapOkResults(results, fn) {
29
+ const oks = [];
30
+ for (let i = 0; i < results.length; i++) {
31
+ const result = results[i];
32
+ if (!isErr(result)) {
33
+ oks.push(result);
34
+ }
35
+ }
36
+ const outOksResults = fn(oks);
37
+ if (outOksResults.length !== oks.length) {
38
+ throw Error("mapOkResults fn must return same length");
39
+ }
40
+ const outResults = [];
41
+ for (let i = 0, j = 0; i < results.length; i++) {
42
+ const result = results[i];
43
+ if (isErr(result)) {
44
+ outResults.push(result);
45
+ }
46
+ else {
47
+ outResults.push(outOksResults[j]);
48
+ j++;
49
+ }
50
+ }
51
+ return outResults;
52
+ }
53
+ /**
54
+ * See {@link mapOkResults} but `fn` is async
55
+ */
56
+ export async function mapOkResultsAsync(results, fn) {
57
+ const oks = [];
58
+ for (let i = 0; i < results.length; i++) {
59
+ const result = results[i];
60
+ if (!isErr(result)) {
61
+ oks.push(result);
62
+ }
63
+ }
64
+ const outOksResults = await fn(oks);
65
+ if (outOksResults.length !== oks.length) {
66
+ throw Error("mapOkResults fn must return same length");
67
+ }
68
+ const outResults = [];
69
+ for (let i = 0, j = 0; i < results.length; i++) {
70
+ const result = results[i];
71
+ if (isErr(result)) {
72
+ outResults.push(result);
73
+ }
74
+ else {
75
+ outResults.push(outOksResults[j]);
76
+ j++;
77
+ }
78
+ }
79
+ return outResults;
80
+ }
81
+ //# sourceMappingURL=err.js.map
package/lib/err.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"err.js","sourceRoot":"","sources":["../src/err.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAM7B,gEAAgE;AAChE,MAAM,UAAU,GAAG,CAAI,KAAQ;IAC7B,OAAO,EAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,KAAK,CAAO,MAAoB;IAC9C,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAK,MAAiB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAwB,EACxB,EAAoC;IAEpC,MAAM,GAAG,GAAS,EAAE,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAClB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClB;KACF;IAED,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;QACvC,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;KACxD;IAED,MAAM,UAAU,GAAoB,EAAE,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;YACjB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzB;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,EAAE,CAAC;SACL;KACF;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAwB,EACxB,EAA6C;IAE7C,MAAM,GAAG,GAAS,EAAE,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAClB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClB;KACF;IAED,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;QACvC,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;KACxD;IAED,MAAM,UAAU,GAAoB,EAAE,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;YACjB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzB;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,EAAE,CAAC;SACL;KACF;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
package/lib/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from "./logger/index.js";
2
2
  export * from "./yaml/index.js";
3
3
  export * from "./assert.js";
4
4
  export * from "./bytes.js";
5
+ export * from "./err.js";
5
6
  export * from "./errors.js";
6
7
  export * from "./format.js";
7
8
  export * from "./map.js";
package/lib/index.js CHANGED
@@ -2,6 +2,7 @@ export * from "./logger/index.js";
2
2
  export * from "./yaml/index.js";
3
3
  export * from "./assert.js";
4
4
  export * from "./bytes.js";
5
+ export * from "./err.js";
5
6
  export * from "./errors.js";
6
7
  export * from "./format.js";
7
8
  export * from "./map.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,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"}
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,UAAU,CAAC;AACzB,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/promise.d.ts CHANGED
@@ -2,4 +2,25 @@
2
2
  * While promise t is not finished, call function `fn` per `interval`
3
3
  */
4
4
  export declare function callFnWhenAwait<T>(p: Promise<NonNullable<T>>, fn: () => void, interval: number): Promise<NonNullable<T>>;
5
+ export declare enum RaceEvent {
6
+ /** all reject/resolve before cutoff */
7
+ precutoff = "precutoff-return",
8
+ /** cutoff reached as some were pending till cutoff **/
9
+ cutoff = "cutoff-reached",
10
+ /** atleast one resolved till cutoff so no race required */
11
+ resolvedatcutoff = "resolved-at-cutoff",
12
+ /** if none reject/resolve before cutoff but one resolves or all reject before timeout */
13
+ pretimeout = "pretimeout-return",
14
+ /** timeout reached as none resolved and some were pending till timeout*/
15
+ timeout = "timeout-reached",
16
+ /** promise resolved */
17
+ resolved = "resolved",
18
+ /** promise rejected */
19
+ rejected = "rejected"
20
+ }
21
+ /**
22
+ * Wait for promises to resolve till cutoff and then race them beyond the cutoff with an overall timeout
23
+ * @return resolved values or rejections or still pending errors corresponding to input promises
24
+ */
25
+ export declare function racePromisesWithCutoff<T>(promises: Promise<T>[], cutoffMs: number, timeoutMs: number, eventCb: (event: RaceEvent, delayMs: number, index?: number) => void): Promise<(Error | T)[]>;
5
26
  //# sourceMappingURL=promise.d.ts.map
package/lib/promise.js CHANGED
@@ -19,4 +19,102 @@ export async function callFnWhenAwait(p, fn, interval) {
19
19
  }
20
20
  return t;
21
21
  }
22
+ var PromiseStatus;
23
+ (function (PromiseStatus) {
24
+ PromiseStatus[PromiseStatus["resolved"] = 0] = "resolved";
25
+ PromiseStatus[PromiseStatus["rejected"] = 1] = "rejected";
26
+ PromiseStatus[PromiseStatus["pending"] = 2] = "pending";
27
+ })(PromiseStatus || (PromiseStatus = {}));
28
+ function mapStatusesToResponses(promisesStates) {
29
+ return promisesStates.map((pmStatus) => {
30
+ switch (pmStatus.status) {
31
+ case PromiseStatus.resolved:
32
+ return pmStatus.value;
33
+ case PromiseStatus.rejected:
34
+ return pmStatus.value;
35
+ case PromiseStatus.pending:
36
+ return Error("pending");
37
+ }
38
+ });
39
+ }
40
+ export var RaceEvent;
41
+ (function (RaceEvent) {
42
+ /** all reject/resolve before cutoff */
43
+ RaceEvent["precutoff"] = "precutoff-return";
44
+ /** cutoff reached as some were pending till cutoff **/
45
+ RaceEvent["cutoff"] = "cutoff-reached";
46
+ /** atleast one resolved till cutoff so no race required */
47
+ RaceEvent["resolvedatcutoff"] = "resolved-at-cutoff";
48
+ /** if none reject/resolve before cutoff but one resolves or all reject before timeout */
49
+ RaceEvent["pretimeout"] = "pretimeout-return";
50
+ /** timeout reached as none resolved and some were pending till timeout*/
51
+ RaceEvent["timeout"] = "timeout-reached";
52
+ // events for the promises for better tracking
53
+ /** promise resolved */
54
+ RaceEvent["resolved"] = "resolved";
55
+ /** promise rejected */
56
+ RaceEvent["rejected"] = "rejected";
57
+ })(RaceEvent || (RaceEvent = {}));
58
+ /**
59
+ * Wait for promises to resolve till cutoff and then race them beyond the cutoff with an overall timeout
60
+ * @return resolved values or rejections or still pending errors corresponding to input promises
61
+ */
62
+ export async function racePromisesWithCutoff(promises, cutoffMs, timeoutMs, eventCb) {
63
+ // start the cutoff and timeout timers
64
+ let cutoffObserved = false;
65
+ const cutoffPromise = new Promise((_resolve, reject) => setTimeout(reject, cutoffMs)).catch((e) => {
66
+ cutoffObserved = true;
67
+ throw e;
68
+ });
69
+ let timeoutObserved = false;
70
+ const timeoutPromise = new Promise((_resolve, reject) => setTimeout(reject, timeoutMs)).catch((e) => {
71
+ timeoutObserved = true;
72
+ throw e;
73
+ });
74
+ const startTime = Date.now();
75
+ // Track promises status and resolved values/rejected errors
76
+ // Even if the promises reject with the following decoration promises will not throw
77
+ const promisesStates = [];
78
+ promises.forEach((promise, index) => {
79
+ promisesStates[index] = { status: PromiseStatus.pending, value: null };
80
+ promise
81
+ .then((value) => {
82
+ eventCb(RaceEvent.resolved, Date.now() - startTime, index);
83
+ promisesStates[index] = { status: PromiseStatus.resolved, value };
84
+ })
85
+ .catch((e) => {
86
+ eventCb(RaceEvent.rejected, Date.now() - startTime, index);
87
+ promisesStates[index] = { status: PromiseStatus.rejected, value: e };
88
+ });
89
+ });
90
+ // Wait till cutoff time unless all original promises resolve/reject early
91
+ await Promise.allSettled(promises.map((promise) => Promise.race([promise, cutoffPromise])));
92
+ if (cutoffObserved) {
93
+ // If any is resolved, then just simply return as we are post cutoff
94
+ const anyResolved = promisesStates.reduce((acc, pmState) => acc || pmState.status === PromiseStatus.resolved, false);
95
+ if (anyResolved) {
96
+ eventCb(RaceEvent.resolvedatcutoff, Date.now() - startTime);
97
+ return mapStatusesToResponses(promisesStates);
98
+ }
99
+ else {
100
+ eventCb(RaceEvent.cutoff, Date.now() - startTime);
101
+ }
102
+ }
103
+ else {
104
+ eventCb(RaceEvent.precutoff, Date.now() - startTime);
105
+ return mapStatusesToResponses(promisesStates);
106
+ }
107
+ // Post deadline resolve with any of the promise or all rejected before timeout
108
+ await Promise.any(promises.map((promise) => Promise.race([promise, timeoutPromise]))).catch(
109
+ // just ignore if all reject as we will returned mapped rejections
110
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
111
+ (_e) => { });
112
+ if (timeoutObserved) {
113
+ eventCb(RaceEvent.timeout, Date.now() - startTime);
114
+ }
115
+ else {
116
+ eventCb(RaceEvent.pretimeout, Date.now() - startTime);
117
+ }
118
+ return mapStatusesToResponses(promisesStates);
119
+ }
22
120
  //# sourceMappingURL=promise.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promise.js","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,CAA0B,EAC1B,EAAc,EACd,QAAgB;IAEhB,IAAI,CAAC,GAA+B,SAAS,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,IAAwB,EAAE;QAC3C,OAAO,CAAC,KAAK,SAAS,EAAE;YACtB,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,SAAS;gBAAE,EAAE,EAAE,CAAC;SAC3B;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,2DAA2D;IAC3D,IAAI,CAAC,KAAK,SAAS,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;KAC9C;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"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"}
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.6.0-dev.b00d84f2a5",
14
+ "version": "1.6.0-dev.de53bad00e",
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": "179b142cb8b37681069ea08f6354fc828825fd11"
60
+ "gitHead": "2e7c3e8641ef9ea21ae7b6639c874ac6560fedb1"
61
61
  }