@atproto/common-web 0.3.1 → 0.3.2
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/CHANGELOG.md +8 -0
- package/dist/arrays.d.ts.map +1 -1
- package/dist/async.d.ts +15 -1
- package/dist/async.d.ts.map +1 -1
- package/dist/async.js +31 -9
- package/dist/async.js.map +1 -1
- package/dist/check.d.ts.map +1 -1
- package/dist/did-doc.d.ts +1 -15
- package/dist/did-doc.d.ts.map +1 -1
- package/dist/retry.d.ts +4 -2
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +6 -3
- package/dist/retry.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/util.d.ts +5 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +15 -6
- package/dist/util.js.map +1 -1
- package/package.json +3 -2
- package/src/async.ts +58 -7
- package/src/retry.ts +8 -2
- package/src/util.ts +25 -10
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.tests.tsbuildinfo +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @atproto/common-web
|
|
2
2
|
|
|
3
|
+
## 0.3.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#3177](https://github.com/bluesky-social/atproto/pull/3177) [`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `createRetryable` utility function
|
|
8
|
+
|
|
9
|
+
- [#3177](https://github.com/bluesky-social/atproto/pull/3177) [`72eba67af`](https://github.com/bluesky-social/atproto/commit/72eba67af1af8320b5400bcb9319d5c3c8407d99) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `allFulfilled` utility
|
|
10
|
+
|
|
3
11
|
## 0.3.1
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/dist/arrays.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../src/arrays.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../src/arrays.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,CAAC,OAAO,CAAC,EAAE,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAQhE,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,OACxB,CAAC,EAAE,MACJ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,KAC5B,CAAC,EASH,CAAA"}
|
package/dist/async.d.ts
CHANGED
|
@@ -27,5 +27,19 @@ export declare class AsyncBuffer<T> {
|
|
|
27
27
|
export declare class AsyncBufferFullError extends Error {
|
|
28
28
|
constructor(maxSize: number);
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Utility function that behaves like {@link Promise.allSettled} but returns the
|
|
32
|
+
* same result as {@link Promise.all} in case every promise is fulfilled, and
|
|
33
|
+
* throws an {@link AggregateError} if there are more than one errors.
|
|
34
|
+
*/
|
|
35
|
+
export declare function allFulfilled<T extends readonly unknown[] | []>(promises: T): Promise<{
|
|
36
|
+
-readonly [P in keyof T]: Awaited<T[P]>;
|
|
37
|
+
}>;
|
|
38
|
+
export declare function allFulfilled<T>(promises: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;
|
|
39
|
+
export declare function handleAllSettledErrors<T extends readonly PromiseSettledResult<unknown>[] | []>(results: T): {
|
|
40
|
+
-readonly [P in keyof T]: T[P] extends PromiseSettledResult<infer U> ? U : never;
|
|
41
|
+
};
|
|
42
|
+
export declare function handleAllSettledErrors<T>(results: PromiseSettledResult<T>[]): T[];
|
|
43
|
+
export declare function isRejectedResult(result: PromiseSettledResult<unknown>): result is PromiseRejectedResult;
|
|
44
|
+
export declare function isFulfilledResult<T>(result: PromiseSettledResult<T>): result is PromiseFulfilledResult<T>;
|
|
31
45
|
//# sourceMappingURL=async.d.ts.map
|
package/dist/async.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,GAAU,CAAC,OAClC,cAAc,CAAC,CAAC,CAAC,UACd,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,YACvC,OAAO,CAAC,OAAO,CAAC,yBAExB,OAAO,CAAC,CAAC,EAAE,CAiCb,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAO,UAMnC,CAAA;AAED,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,UAAU,EAM3D,CAAA;AAED,eAAO,MAAM,WAAW,gBAAuB,UAAU,EAAE,KAAG,OAAO,CAAC,IAAI,CAEzE,CAAA;AAED,qBAAa,WAAW,CAAC,CAAC;IAOL,OAAO,CAAC,EAAE,MAAM;IANnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAqB;gBAEjB,OAAO,CAAC,EAAE,MAAM,YAAA;IAOnC,IAAI,IAAI,IAAI,CAAC,EAAE,CAEd;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,YAAY;IAIZ,IAAI,CAAC,IAAI,EAAE,CAAC;IAKZ,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE;IAKZ,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC;IA0BlC,KAAK,CAAC,GAAG,EAAE,OAAO;IAMlB,KAAK;CAIN;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAG5B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EAC5D,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAAA;AACvD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,QAAQ,EAAE,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GACrC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAOxB,wBAAgB,sBAAsB,CACpC,CAAC,SAAS,SAAS,oBAAoB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAEvD,OAAO,EAAE,CAAC,GACT;IACD,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAChE,CAAC,GACD,KAAK;CACV,CAAA;AACD,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,GACjC,CAAC,EAAE,CAAA;AAkBN,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACpC,MAAM,IAAI,qBAAqB,CAEjC;AAMD,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC9B,MAAM,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAErC"}
|
package/dist/async.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.AsyncBufferFullError = exports.AsyncBuffer = exports.allComplete = exports.createDeferrables = exports.createDeferrable = exports.readFromGenerator = void 0;
|
|
4
|
+
exports.allFulfilled = allFulfilled;
|
|
5
|
+
exports.handleAllSettledErrors = handleAllSettledErrors;
|
|
6
|
+
exports.isRejectedResult = isRejectedResult;
|
|
7
|
+
exports.isFulfilledResult = isFulfilledResult;
|
|
4
8
|
const util_1 = require("./util");
|
|
5
9
|
// reads values from a generator into a list
|
|
6
10
|
// breaks when isDone signals `true` AND `waitFor` completes OR when a max length is reached
|
|
@@ -170,18 +174,36 @@ class AsyncBufferFullError extends Error {
|
|
|
170
174
|
}
|
|
171
175
|
}
|
|
172
176
|
exports.AsyncBufferFullError = AsyncBufferFullError;
|
|
173
|
-
|
|
174
|
-
|
|
177
|
+
function allFulfilled(promises) {
|
|
178
|
+
return Promise.allSettled(promises).then(handleAllSettledErrors);
|
|
179
|
+
}
|
|
180
|
+
function handleAllSettledErrors(results) {
|
|
181
|
+
const errors = results.filter(isRejectedResult).map(extractReason);
|
|
175
182
|
if (errors.length === 0) {
|
|
176
|
-
|
|
183
|
+
// No need to filter here, it is safe to assume that all promises are fulfilled
|
|
184
|
+
return results.map(extractValue);
|
|
177
185
|
}
|
|
178
186
|
if (errors.length === 1) {
|
|
179
187
|
throw errors[0];
|
|
180
188
|
}
|
|
181
|
-
throw new AggregateError(errors,
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
const isRejected = (result) => {
|
|
189
|
+
throw new AggregateError(errors, `Multiple errors: ${errors.map(stringifyReason).join('\n')}`);
|
|
190
|
+
}
|
|
191
|
+
function isRejectedResult(result) {
|
|
185
192
|
return result.status === 'rejected';
|
|
186
|
-
}
|
|
193
|
+
}
|
|
194
|
+
function extractReason(result) {
|
|
195
|
+
return result.reason;
|
|
196
|
+
}
|
|
197
|
+
function isFulfilledResult(result) {
|
|
198
|
+
return result.status === 'fulfilled';
|
|
199
|
+
}
|
|
200
|
+
function extractValue(result) {
|
|
201
|
+
return result.value;
|
|
202
|
+
}
|
|
203
|
+
function stringifyReason(reason) {
|
|
204
|
+
if (reason instanceof Error) {
|
|
205
|
+
return reason.message;
|
|
206
|
+
}
|
|
207
|
+
return String(reason);
|
|
208
|
+
}
|
|
187
209
|
//# sourceMappingURL=async.js.map
|
package/dist/async.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../src/async.ts"],"names":[],"mappings":"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"}
|
package/dist/check.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,CAAA;IAC1B,SAAS,EAAE,CACT,GAAG,EAAE,OAAO,KACT;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAA;CACnE;AAED,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CACrB;AAED,eAAO,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,CAAA;IAC1B,SAAS,EAAE,CACT,GAAG,EAAE,OAAO,KACT;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAA;CACnE;AAED,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CACrB;AAED,eAAO,MAAM,EAAE,GAAI,CAAC,OAAO,OAAO,OAAO,SAAS,CAAC,CAAC,CAAC,KAAG,GAAG,IAAI,CAE9D,CAAA;AAED,eAAO,MAAM,MAAM,GAChB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,SACjB,OAAO,KAAG,CAAC,IAAI,CACO,CAAA;AAE5B,eAAO,MAAM,MAAM,GAAI,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,KAAG,CAE3D,CAAA;AAED,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAEpE,CAAA"}
|
package/dist/did-doc.d.ts
CHANGED
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const isValidDidDoc: (doc: unknown) => doc is
|
|
3
|
-
id: string;
|
|
4
|
-
alsoKnownAs?: string[] | undefined;
|
|
5
|
-
verificationMethod?: {
|
|
6
|
-
id: string;
|
|
7
|
-
type: string;
|
|
8
|
-
controller: string;
|
|
9
|
-
publicKeyMultibase?: string | undefined;
|
|
10
|
-
}[] | undefined;
|
|
11
|
-
service?: {
|
|
12
|
-
id: string;
|
|
13
|
-
type: string;
|
|
14
|
-
serviceEndpoint: string | Record<string, unknown>;
|
|
15
|
-
}[] | undefined;
|
|
16
|
-
};
|
|
2
|
+
export declare const isValidDidDoc: (doc: unknown) => doc is DidDocument;
|
|
17
3
|
export declare const getDid: (doc: DidDocument) => string;
|
|
18
4
|
export declare const getHandle: (doc: DidDocument) => string | undefined;
|
|
19
5
|
export declare const getSigningKey: (doc: DidDocument) => {
|
package/dist/did-doc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"did-doc.d.ts","sourceRoot":"","sources":["../src/did-doc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,eAAO,MAAM,aAAa,QAAS,OAAO
|
|
1
|
+
{"version":3,"file":"did-doc.d.ts","sourceRoot":"","sources":["../src/did-doc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,eAAO,MAAM,aAAa,QAAS,OAAO,KAAG,GAAG,IAAI,WAEnD,CAAA;AAED,eAAO,MAAM,MAAM,QAAS,WAAW,KAAG,MAMzC,CAAA;AAED,eAAO,MAAM,SAAS,QAAS,WAAW,KAAG,MAAM,GAAG,SAYrD,CAAA;AAGD,eAAO,MAAM,aAAa,QACnB,WAAW,KACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAAG,SAEjD,CAAA;AAED,eAAO,MAAM,uBAAuB,QAC7B,WAAW,SACT,MAAM,KACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAAG,SAgBjD,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAS,WAAW,KAAG,MAAM,GAAG,SAI5D,CAAA;AAED,eAAO,MAAM,cAAc,QAAS,WAAW,KAAG,MAAM,GAAG,SAK1D,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAS,WAAW,KAAG,MAAM,GAAG,SAK9D,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAS,WAAW,KAAG,MAAM,GAAG,SAK5D,CAAA;AAED,eAAO,MAAM,kBAAkB,QACxB,WAAW,QACV;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,uBAkBpC,CAAA;AA4ED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKtB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA"}
|
package/dist/retry.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export type RetryOptions = {
|
|
2
2
|
maxRetries?: number;
|
|
3
3
|
getWaitMs?: (n: number) => number | null;
|
|
4
|
-
retryable?: (err: unknown) => boolean;
|
|
5
4
|
};
|
|
6
|
-
export declare function retry<T>(fn: () => Promise<T>, opts?: RetryOptions
|
|
5
|
+
export declare function retry<T>(fn: () => Promise<T>, opts?: RetryOptions & {
|
|
6
|
+
retryable?: (err: unknown) => boolean;
|
|
7
|
+
}): Promise<T>;
|
|
8
|
+
export declare function createRetryable(retryable: (err: unknown) => boolean): <T>(fn: () => Promise<T>, opts?: RetryOptions) => Promise<T>;
|
|
7
9
|
export declare function backoffMs(n: number, multiplier?: number, max?: number): number;
|
|
8
10
|
//# sourceMappingURL=retry.d.ts.map
|
package/dist/retry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;CACzC,CAAA;AAED,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE,YAAY,GAAG;IACnB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAA;CACjC,GACL,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,IACpD,CAAC,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,SAAS,YAAY,gBAE3D;AAGD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAM,EAAE,GAAG,SAAO,UAIhE"}
|
package/dist/retry.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.retry = retry;
|
|
4
|
+
exports.createRetryable = createRetryable;
|
|
5
|
+
exports.backoffMs = backoffMs;
|
|
4
6
|
const util_1 = require("./util");
|
|
5
7
|
async function retry(fn, opts = {}) {
|
|
6
8
|
const { maxRetries = 3, retryable = () => true, getWaitMs = backoffMs } = opts;
|
|
@@ -26,14 +28,15 @@ async function retry(fn, opts = {}) {
|
|
|
26
28
|
}
|
|
27
29
|
throw doneError;
|
|
28
30
|
}
|
|
29
|
-
|
|
31
|
+
function createRetryable(retryable) {
|
|
32
|
+
return async (fn, opts) => retry(fn, { ...opts, retryable });
|
|
33
|
+
}
|
|
30
34
|
// Waits exponential backoff with max and jitter: ~100, ~200, ~400, ~800, ~1000, ~1000, ...
|
|
31
35
|
function backoffMs(n, multiplier = 100, max = 1000) {
|
|
32
36
|
const exponentialMs = Math.pow(2, n) * multiplier;
|
|
33
37
|
const ms = Math.min(exponentialMs, max);
|
|
34
38
|
return jitter(ms);
|
|
35
39
|
}
|
|
36
|
-
exports.backoffMs = backoffMs;
|
|
37
40
|
// Adds randomness +/-15% of value
|
|
38
41
|
function jitter(value) {
|
|
39
42
|
const delta = value * 0.15;
|
package/dist/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":";;AAOA,sBA2BC;AAED,0CAGC;AAGD,8BAIC;AA9CD,iCAA6B;AAOtB,KAAK,UAAU,KAAK,CACzB,EAAoB,EACpB,OAEI,EAAE;IAEN,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,IAAI,CAAA;IAC9E,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,SAAkB,CAAA;IACtB,OAAO,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YACjC,MAAM,SAAS,GACb,OAAO,GAAG,UAAU,IAAI,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,CAAA;YAC3D,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,CAAA;gBACZ,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjB,MAAM,IAAA,WAAI,EAAC,MAAM,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,GAAG,CAAA;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAA;AACjB,CAAC;AAED,SAAgB,eAAe,CAAC,SAAoC;IAClE,OAAO,KAAK,EAAK,EAAoB,EAAE,IAAmB,EAAE,EAAE,CAC5D,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AACrC,CAAC;AAED,2FAA2F;AAC3F,SAAgB,SAAS,CAAC,CAAS,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAA;IACjD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IACvC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC;AAED,kCAAkC;AAClC,SAAS,MAAM,CAAC,KAAa;IAC3B,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAA;IAC1B,OAAO,KAAK,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,EAAU;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;IACxC,OAAO,IAAI,GAAG,IAAI,CAAA;AACpB,CAAC"}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAS7B,eAAO,MAAM,MAAM;;;;;;;CAOlB,CAAA;AAED,eAAO,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAS7B,eAAO,MAAM,MAAM;;;;;;;CAOlB,CAAA;AAED,eAAO,MAAM,GAAG;SAIT,GAAG,CAAC,GAAG,CAAC;WAIR,GAAG,CAAC,UAAU,CAAC;YAIf,GAAG,CAAC,MAAM,CAAC;SAIX,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aAI5B,GAAG,CAAC,OAAO,CAAC;CAClB,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAEnE,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
export declare const noUndefinedVals: <T>(obj: Record<string, T | undefined>) => Record<string, T>;
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Returns a shallow copy of the object without the specified keys. If the input
|
|
4
|
+
* is nullish, it returns the input.
|
|
5
|
+
*/
|
|
6
|
+
export declare function omit<T extends undefined | null | Record<string, unknown>, K extends keyof NonNullable<T>>(object: T, rejectedKeys: readonly K[]): T extends undefined ? undefined : T extends null ? null : Omit<T, K>;
|
|
4
7
|
export declare const jitter: (maxMs: number) => number;
|
|
5
8
|
export declare const wait: (ms: number) => Promise<unknown>;
|
|
6
9
|
export type BailableWait = {
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,GAAI,CAAC,OAC1B,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,KACjC,MAAM,CAAC,MAAM,EAAE,CAAC,CAOlB,CAAA;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAClB,CAAC,SAAS,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,CAAC,SAAS,MAAM,WAAW,CAAC,CAAC,CAAC,EAE9B,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,SAAS,CAAC,EAAE,GACzB,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAoBvE,eAAO,MAAM,MAAM,UAAW,MAAM,WAEnC,CAAA;AAED,eAAO,MAAM,IAAI,OAAQ,MAAM,qBAE9B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,YAAY,OAAQ,MAAM,KAAG,YAUzC,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAU,UAAU,EAAE,KAAG,UAWvD,CAAA;AAED,eAAO,MAAM,cAAc,WACjB,aAAa,CAAC,UAAU,CAAC,KAChC,OAAO,CAAC,UAAU,CAMpB,CAAA;AAID,eAAO,MAAM,SAAS,MAAO,MAAM,KAAG,MAQrC,CAAA;AAED,eAAO,MAAM,SAAS,MAAO,MAAM,KAAG,MAMrC,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,CAAC,OAC5B,CAAC,EAAE,MACJ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,iBAI/B,CAAA;AAED,eAAO,MAAM,gBAAgB,QACtB,OAAO,KACX,GAAG,IAAI,MAAM,CAAC,cAEhB,CAAA;AAED,eAAO,MAAM,SAAS,QAAS,OAAO,OAAO,MAAM,KAAG,OAErD,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,OAAO,CAAC,EAAE,aAAa,MAAM,KAAG,CAAC,EAAE,EAS9D,CAAA;AAED,eAAO,MAAM,KAAK,QAAS,MAAM,KAAG,MAAM,EAMzC,CAAA;AAED,eAAO,MAAM,UAAU,SAAU,MAAM,EAAE,KAAG,MAAM,EAEjD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAC7B,MAAM,GAAG,SAAS,YACf,CAAC,KACV,MAAM,GAAG,CAGX,CAAA"}
|
package/dist/util.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseIntWithFallback = exports.dedupeStrs = exports.range = exports.chunkArray = exports.errHasMsg = exports.isErrnoException = exports.asyncFilter = exports.s32decode = exports.s32encode = exports.streamToBuffer = exports.flattenUint8Arrays = exports.bailableWait = exports.wait = exports.jitter = exports.
|
|
3
|
+
exports.parseIntWithFallback = exports.dedupeStrs = exports.range = exports.chunkArray = exports.errHasMsg = exports.isErrnoException = exports.asyncFilter = exports.s32decode = exports.s32encode = exports.streamToBuffer = exports.flattenUint8Arrays = exports.bailableWait = exports.wait = exports.jitter = exports.noUndefinedVals = void 0;
|
|
4
|
+
exports.omit = omit;
|
|
4
5
|
const noUndefinedVals = (obj) => {
|
|
5
6
|
Object.keys(obj).forEach((k) => {
|
|
6
7
|
if (obj[k] === undefined) {
|
|
@@ -10,12 +11,20 @@ const noUndefinedVals = (obj) => {
|
|
|
10
11
|
return obj;
|
|
11
12
|
};
|
|
12
13
|
exports.noUndefinedVals = noUndefinedVals;
|
|
13
|
-
function omit(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
function omit(src, rejectedKeys) {
|
|
15
|
+
// Hot path
|
|
16
|
+
if (!src)
|
|
17
|
+
return src;
|
|
18
|
+
const dst = {};
|
|
19
|
+
const srcKeys = Object.keys(src);
|
|
20
|
+
for (let i = 0; i < srcKeys.length; i++) {
|
|
21
|
+
const key = srcKeys[i];
|
|
22
|
+
if (!rejectedKeys.includes(key)) {
|
|
23
|
+
dst[key] = src[key];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return dst;
|
|
17
27
|
}
|
|
18
|
-
exports.omit = omit;
|
|
19
28
|
const jitter = (maxMs) => {
|
|
20
29
|
return Math.round((Math.random() - 0.5) * maxMs * 2);
|
|
21
30
|
};
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAsBA,oBAiBC;AAvCM,MAAM,eAAe,GAAG,CAC7B,GAAkC,EACf,EAAE;IACrB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;QACf,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,GAAwB,CAAA;AACjC,CAAC,CAAA;AATY,QAAA,eAAe,mBAS3B;AAaD,SAAgB,IAAI,CAClB,GAA+C,EAC/C,YAA+B;IAE/B,WAAW;IAEX,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;IAEpB,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAEM,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;AACtD,CAAC,CAAA;AAFY,QAAA,MAAM,UAElB;AAEM,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA;AAFY,QAAA,IAAI,QAEhB;AAOM,MAAM,YAAY,GAAG,CAAC,EAAU,EAAgB,EAAE;IACvD,IAAI,IAAI,CAAA;IACR,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QACnC,IAAI,GAAG,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,GAAG,EAAE,CAAA;QACP,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;AAC1C,CAAC,CAAA;AAVY,QAAA,YAAY,gBAUxB;AAEM,MAAM,kBAAkB,GAAG,CAAC,IAAkB,EAAc,EAAE;IACnE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACtC,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;IACzB,CAAC,EAAE,CAAC,CAAC,CAAA;IACL,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IACxC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,CAAA;IACtB,CAAC,CAAC,CAAA;IACF,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAXY,QAAA,kBAAkB,sBAW9B;AAEM,MAAM,cAAc,GAAG,KAAK,EACjC,MAAiC,EACZ,EAAE;IACvB,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IACD,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAAC,CAAA;AACnC,CAAC,CAAA;AARY,QAAA,cAAc,kBAQ1B;AAED,MAAM,QAAQ,GAAG,kCAAkC,CAAA;AAE5C,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAChB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QACtB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AARY,QAAA,SAAS,aAQrB;AAEM,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE;IAC7C,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AANY,QAAA,SAAS,aAMrB;AAEM,MAAM,WAAW,GAAG,KAAK,EAC9B,GAAQ,EACR,EAA8B,EAC9B,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACzC,CAAC,CAAA;AANY,QAAA,WAAW,eAMvB;AAEM,MAAM,gBAAgB,GAAG,CAC9B,GAAY,EACkB,EAAE;IAChC,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC,CAAA;AAJY,QAAA,gBAAgB,oBAI5B;AAEM,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE,GAAW,EAAW,EAAE;IAC9D,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAA;AACnE,CAAC,CAAA;AAFY,QAAA,SAAS,aAErB;AAEM,MAAM,UAAU,GAAG,CAAI,GAAQ,EAAE,SAAiB,EAAS,EAAE;IAClE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrB,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAW,CAAC,CAAA;AACjB,CAAC,CAAA;AATY,QAAA,UAAU,cAStB;AAEM,MAAM,KAAK,GAAG,CAAC,GAAW,EAAY,EAAE;IAC7C,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AANY,QAAA,KAAK,SAMjB;AAEM,MAAM,UAAU,GAAG,CAAC,IAAc,EAAY,EAAE;IACrD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3B,CAAC,CAAA;AAFY,QAAA,UAAU,cAEtB;AAEM,MAAM,oBAAoB,GAAG,CAClC,KAAyB,EACzB,QAAW,EACC,EAAE;IACd,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACxC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAA;AAC1C,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/common-web",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Shared web-platform-friendly code for atproto libraries",
|
|
6
6
|
"keywords": [
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"zod": "^3.23.8"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"jest": "^28.1.2"
|
|
24
|
+
"jest": "^28.1.2",
|
|
25
|
+
"typescript": "^5.6.3"
|
|
25
26
|
},
|
|
26
27
|
"scripts": {
|
|
27
28
|
"test": "jest",
|
package/src/async.ts
CHANGED
|
@@ -152,24 +152,75 @@ export class AsyncBufferFullError extends Error {
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
|
|
155
|
+
/**
|
|
156
|
+
* Utility function that behaves like {@link Promise.allSettled} but returns the
|
|
157
|
+
* same result as {@link Promise.all} in case every promise is fulfilled, and
|
|
158
|
+
* throws an {@link AggregateError} if there are more than one errors.
|
|
159
|
+
*/
|
|
160
|
+
export function allFulfilled<T extends readonly unknown[] | []>(
|
|
161
|
+
promises: T,
|
|
162
|
+
): Promise<{ -readonly [P in keyof T]: Awaited<T[P]> }>
|
|
163
|
+
export function allFulfilled<T>(
|
|
164
|
+
promises: Iterable<T | PromiseLike<T>>,
|
|
165
|
+
): Promise<Awaited<T>[]>
|
|
166
|
+
export function allFulfilled(
|
|
167
|
+
promises: Iterable<Promise<unknown>>,
|
|
168
|
+
): Promise<unknown[]> {
|
|
169
|
+
return Promise.allSettled(promises).then(handleAllSettledErrors)
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export function handleAllSettledErrors<
|
|
173
|
+
T extends readonly PromiseSettledResult<unknown>[] | [],
|
|
174
|
+
>(
|
|
175
|
+
results: T,
|
|
176
|
+
): {
|
|
177
|
+
-readonly [P in keyof T]: T[P] extends PromiseSettledResult<infer U>
|
|
178
|
+
? U
|
|
179
|
+
: never
|
|
180
|
+
}
|
|
181
|
+
export function handleAllSettledErrors<T>(
|
|
182
|
+
results: PromiseSettledResult<T>[],
|
|
183
|
+
): T[]
|
|
184
|
+
export function handleAllSettledErrors(
|
|
156
185
|
results: PromiseSettledResult<unknown>[],
|
|
157
|
-
)
|
|
158
|
-
const errors = results.filter(
|
|
186
|
+
): unknown[] {
|
|
187
|
+
const errors = results.filter(isRejectedResult).map(extractReason)
|
|
159
188
|
if (errors.length === 0) {
|
|
160
|
-
|
|
189
|
+
// No need to filter here, it is safe to assume that all promises are fulfilled
|
|
190
|
+
return (results as PromiseFulfilledResult<unknown>[]).map(extractValue)
|
|
161
191
|
}
|
|
162
192
|
if (errors.length === 1) {
|
|
163
193
|
throw errors[0]
|
|
164
194
|
}
|
|
165
195
|
throw new AggregateError(
|
|
166
196
|
errors,
|
|
167
|
-
|
|
197
|
+
`Multiple errors: ${errors.map(stringifyReason).join('\n')}`,
|
|
168
198
|
)
|
|
169
199
|
}
|
|
170
200
|
|
|
171
|
-
|
|
201
|
+
export function isRejectedResult(
|
|
172
202
|
result: PromiseSettledResult<unknown>,
|
|
173
|
-
): result is PromiseRejectedResult
|
|
203
|
+
): result is PromiseRejectedResult {
|
|
174
204
|
return result.status === 'rejected'
|
|
175
205
|
}
|
|
206
|
+
|
|
207
|
+
function extractReason(result: PromiseRejectedResult): unknown {
|
|
208
|
+
return result.reason
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export function isFulfilledResult<T>(
|
|
212
|
+
result: PromiseSettledResult<T>,
|
|
213
|
+
): result is PromiseFulfilledResult<T> {
|
|
214
|
+
return result.status === 'fulfilled'
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
function extractValue<T>(result: PromiseFulfilledResult<T>): T {
|
|
218
|
+
return result.value
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function stringifyReason(reason: unknown): string {
|
|
222
|
+
if (reason instanceof Error) {
|
|
223
|
+
return reason.message
|
|
224
|
+
}
|
|
225
|
+
return String(reason)
|
|
226
|
+
}
|
package/src/retry.ts
CHANGED
|
@@ -3,12 +3,13 @@ import { wait } from './util'
|
|
|
3
3
|
export type RetryOptions = {
|
|
4
4
|
maxRetries?: number
|
|
5
5
|
getWaitMs?: (n: number) => number | null
|
|
6
|
-
retryable?: (err: unknown) => boolean
|
|
7
6
|
}
|
|
8
7
|
|
|
9
8
|
export async function retry<T>(
|
|
10
9
|
fn: () => Promise<T>,
|
|
11
|
-
opts: RetryOptions
|
|
10
|
+
opts: RetryOptions & {
|
|
11
|
+
retryable?: (err: unknown) => boolean
|
|
12
|
+
} = {},
|
|
12
13
|
): Promise<T> {
|
|
13
14
|
const { maxRetries = 3, retryable = () => true, getWaitMs = backoffMs } = opts
|
|
14
15
|
let retries = 0
|
|
@@ -33,6 +34,11 @@ export async function retry<T>(
|
|
|
33
34
|
throw doneError
|
|
34
35
|
}
|
|
35
36
|
|
|
37
|
+
export function createRetryable(retryable: (err: unknown) => boolean) {
|
|
38
|
+
return async <T>(fn: () => Promise<T>, opts?: RetryOptions) =>
|
|
39
|
+
retry(fn, { ...opts, retryable })
|
|
40
|
+
}
|
|
41
|
+
|
|
36
42
|
// Waits exponential backoff with max and jitter: ~100, ~200, ~400, ~800, ~1000, ~1000, ...
|
|
37
43
|
export function backoffMs(n: number, multiplier = 100, max = 1000) {
|
|
38
44
|
const exponentialMs = Math.pow(2, n) * multiplier
|
package/src/util.ts
CHANGED
|
@@ -9,19 +9,34 @@ export const noUndefinedVals = <T>(
|
|
|
9
9
|
return obj as Record<string, T>
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Returns a shallow copy of the object without the specified keys. If the input
|
|
14
|
+
* is nullish, it returns the input.
|
|
15
|
+
*/
|
|
12
16
|
export function omit<
|
|
13
|
-
T extends undefined | Record<string, unknown>,
|
|
17
|
+
T extends undefined | null | Record<string, unknown>,
|
|
14
18
|
K extends keyof NonNullable<T>,
|
|
15
|
-
>(
|
|
19
|
+
>(
|
|
20
|
+
object: T,
|
|
21
|
+
rejectedKeys: readonly K[],
|
|
22
|
+
): T extends undefined ? undefined : T extends null ? null : Omit<T, K>
|
|
16
23
|
export function omit(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
): undefined | Record<string, unknown> {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
src: undefined | null | Record<string, unknown>,
|
|
25
|
+
rejectedKeys: readonly string[],
|
|
26
|
+
): undefined | null | Record<string, unknown> {
|
|
27
|
+
// Hot path
|
|
28
|
+
|
|
29
|
+
if (!src) return src
|
|
30
|
+
|
|
31
|
+
const dst = {}
|
|
32
|
+
const srcKeys = Object.keys(src)
|
|
33
|
+
for (let i = 0; i < srcKeys.length; i++) {
|
|
34
|
+
const key = srcKeys[i]
|
|
35
|
+
if (!rejectedKeys.includes(key)) {
|
|
36
|
+
dst[key] = src[key]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return dst
|
|
25
40
|
}
|
|
26
41
|
|
|
27
42
|
export const jitter = (maxMs: number) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./src/arrays.ts","./src/async.ts","./src/check.ts","./src/did-doc.ts","./src/index.ts","./src/ipld.ts","./src/retry.ts","./src/strings.ts","./src/tid.ts","./src/times.ts","./src/types.ts","./src/util.ts"],"version":"5.6.3"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./tests/check.test.ts","./tests/retry.test.ts","./tests/strings.test.ts","./tests/tid.test.ts","./tests/util.test.ts"],"version":"5.6.3"}
|