@agoric/internal 0.3.3-upgrade-16-dev-f908f89.0 → 0.3.3-upgrade-16-dev-d492653.0
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/package.json +4 -4
- package/src/types.d.ts +1 -9
- package/src/utils.d.ts +8 -0
- package/src/utils.d.ts.map +1 -1
- package/src/utils.js +40 -0
- package/src/node/utils.d.ts +0 -9
- package/src/node/utils.d.ts.map +0 -1
- package/src/node/utils.js +0 -46
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/internal",
|
|
3
|
-
"version": "0.3.3-upgrade-16-dev-
|
|
3
|
+
"version": "0.3.3-upgrade-16-dev-d492653.0+d492653",
|
|
4
4
|
"description": "Externally unsupported utilities internal to agoric-sdk",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"lint:types": "tsc"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@agoric/assert": "0.6.1-upgrade-16-dev-
|
|
24
|
-
"@agoric/base-zone": "0.1.1-upgrade-16-dev-
|
|
23
|
+
"@agoric/assert": "0.6.1-upgrade-16-dev-d492653.0+d492653",
|
|
24
|
+
"@agoric/base-zone": "0.1.1-upgrade-16-dev-d492653.0+d492653",
|
|
25
25
|
"@endo/common": "^1.2.2",
|
|
26
26
|
"@endo/far": "^1.1.2",
|
|
27
27
|
"@endo/init": "^1.1.2",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"typeCoverage": {
|
|
59
59
|
"atLeast": 93.89
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "d49265372b3cdd681558791b0c780e1c3062bdcc"
|
|
62
62
|
}
|
package/src/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable max-classes-per-file */
|
|
2
|
-
import type {
|
|
2
|
+
import type { RemotableBrand } from '@endo/eventual-send';
|
|
3
3
|
import type { Primitive } from '@endo/pass-style';
|
|
4
4
|
import type { Callable } from './utils.js';
|
|
5
5
|
|
|
@@ -56,11 +56,3 @@ export type DataOnly<T> =
|
|
|
56
56
|
export type Remote<Primary, Local = DataOnly<Primary>> =
|
|
57
57
|
| Primary
|
|
58
58
|
| RemotableBrand<Local, Primary>;
|
|
59
|
-
|
|
60
|
-
// TODO: Add type tests for FarRef and Remote.
|
|
61
|
-
/**
|
|
62
|
-
* Potentially remote promises or settled references.
|
|
63
|
-
*/
|
|
64
|
-
export type FarRef<Primary, Local = DataOnly<Primary>> = ERef<
|
|
65
|
-
Remote<Primary, Local>
|
|
66
|
-
>;
|
package/src/utils.d.ts
CHANGED
|
@@ -35,6 +35,14 @@ export function makeMeasureSeconds(currentTimeMillisec: typeof import("perf_hook
|
|
|
35
35
|
result: T;
|
|
36
36
|
duration: number;
|
|
37
37
|
}>;
|
|
38
|
+
export function PromiseAllOrErrors<T>(items: readonly (T | PromiseLike<T>)[]): Promise<T[]>;
|
|
39
|
+
/**
|
|
40
|
+
* @type {<T>(
|
|
41
|
+
* trier: () => Promise<T>,
|
|
42
|
+
* finalizer: (error?: unknown) => Promise<void>,
|
|
43
|
+
* ) => Promise<T>}
|
|
44
|
+
*/
|
|
45
|
+
export const aggregateTryFinally: <T>(trier: () => Promise<T>, finalizer: (error?: unknown) => Promise<void>) => Promise<T>;
|
|
38
46
|
export function assertAllDefined<T extends Record<string, unknown>>(obj: T): asserts obj is AllDefined<T>;
|
|
39
47
|
export const forever: AsyncIterable<undefined>;
|
|
40
48
|
export function whileTrue<T>(produce: () => T): AsyncIterable<Awaited<T>>;
|
package/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["utils.js"],"names":[],"mappings":"AAYA,kCAAoC;AAEpC,sCAAsC;AAEtC;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;GAKG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,oCAFU,CAAC,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAA8B,CAAC,AAA5B,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAKxE;AAYK,wDALI,cAAc,YAAY,EAAE,WAAW,CAAC,GAAG,GACzC,CAAC,CAAC,EACd,EAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACjB,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAW/C;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["utils.js"],"names":[],"mappings":"AAYA,kCAAoC;AAEpC,sCAAsC;AAEtC;;;;;GAKG;AAEH;;GAEG;AAEH;;;;;GAKG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,oCAFU,CAAC,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAA8B,CAAC,AAA5B,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAKxE;AAYK,wDALI,cAAc,YAAY,EAAE,WAAW,CAAC,GAAG,GACzC,CAAC,CAAC,EACd,EAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KACjB,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAW/C;AAOM,mCAFc,CAAC,SADX,SAAS,CACC,CAAC,AADA,GAAG,WAAW,CACf,CAAC,AADgB,CAAC,CAAC,EAAE,GAC7B,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBxB;AAED;;;;;GAKG;AACH,kCALU,CAAC,CAAC,EACX,KAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,SAAa,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,KAC1C,OAAO,CAAC,CAAC,CAAC,CAYd;AAgBG,iCAHgC,CAAC,uCAAD,CAAC,AAD5B,GACC,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAaxC;AAQD,+CAAoD;AAS7C,0BAF4B,CAAC,WAHzB,MAGwB,CAAC,AAHlB,GAGL,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAYlC;AASG,0BAF4B,CAAC,WAHzB,MAGwB,CAAC,AAHlB,GAGL,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAelC;AAEJ,mDAAmD;AACnD,kBADW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAoB,CAAC,AAAlB,EAAE,EAAE,EAAE,EAAc,CAAC,AAAZ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CACsB;AAErE;;;;GAIG;AACH,yBAF0C,CAAC,mCAAD,CAAC,AADhC,KACH,OAAO,CAAC,GAAG,CAAC,IAAI,MAAkB,CAAC,AAAZ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,CAMhD;AAWK,gCAHkB,CAAC,0BAAf,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAC5B,MAAM,mCAwGhB;;;;;;qBA1SoC,CAAC,IAAzB,GAAG,OAAO,IAAI,MAAU,CAAC,AAAJ,GAAG,CAAC,CAAC,OAAO,CAAC,GAAE,GAAG,EAAE;uBAMzC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;gCAM8B,CAAC,eADtD,GACP,CAAC,IAAI,MAAuD,CAAC,AAAjD,GAAgD,CAAC,AAA7C,CAA8C,CAAC,AAA7C,CAAC,SAAS,QAAQ,GAAwB,CAAC,AAArB,CAAsB,CAAC,AAArB,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACnE;0BASe,CAAC,IAAD,CAAC,AAJN,SAAS,WAAW,CAAC,GAAG,CAAC,GAC9B,OAAO,CAGG,CAAC,AAHF,CAAC,GAGA,CAAC,AAFV,SAAS,EAAE,GACV,QAAQ,CAAC,mBAAmB,CACpB,CAAC,AADqB,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC;uBA8EkB,CAAC,oCAA3B,GAAG,CAAC,IAAI,MAAkB,CAAC,AAAZ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAE"}
|
package/src/utils.js
CHANGED
|
@@ -74,6 +74,46 @@ export const makeMeasureSeconds = currentTimeMillisec => {
|
|
|
74
74
|
return measureSeconds;
|
|
75
75
|
};
|
|
76
76
|
|
|
77
|
+
/**
|
|
78
|
+
* @template T
|
|
79
|
+
* @param {readonly (T | PromiseLike<T>)[]} items
|
|
80
|
+
* @returns {Promise<T[]>}
|
|
81
|
+
*/
|
|
82
|
+
export const PromiseAllOrErrors = async items => {
|
|
83
|
+
return Promise.allSettled(items).then(results => {
|
|
84
|
+
const errors = /** @type {PromiseRejectedResult[]} */ (
|
|
85
|
+
results.filter(({ status }) => status === 'rejected')
|
|
86
|
+
).map(result => result.reason);
|
|
87
|
+
if (!errors.length) {
|
|
88
|
+
return /** @type {PromiseFulfilledResult<T>[]} */ (results).map(
|
|
89
|
+
result => result.value,
|
|
90
|
+
);
|
|
91
|
+
} else if (errors.length === 1) {
|
|
92
|
+
throw errors[0];
|
|
93
|
+
} else {
|
|
94
|
+
throw AggregateError(errors);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* @type {<T>(
|
|
101
|
+
* trier: () => Promise<T>,
|
|
102
|
+
* finalizer: (error?: unknown) => Promise<void>,
|
|
103
|
+
* ) => Promise<T>}
|
|
104
|
+
*/
|
|
105
|
+
export const aggregateTryFinally = async (trier, finalizer) =>
|
|
106
|
+
trier().then(
|
|
107
|
+
async result => finalizer().then(() => result),
|
|
108
|
+
async tryError =>
|
|
109
|
+
finalizer(tryError)
|
|
110
|
+
.then(
|
|
111
|
+
() => tryError,
|
|
112
|
+
finalizeError => AggregateError([tryError, finalizeError]),
|
|
113
|
+
)
|
|
114
|
+
.then(error => Promise.reject(error)),
|
|
115
|
+
);
|
|
116
|
+
|
|
77
117
|
/**
|
|
78
118
|
* @template {Record<string, unknown>} T
|
|
79
119
|
* @typedef {{ [P in keyof T]: Exclude<T[P], undefined> }} AllDefined
|
package/src/node/utils.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export function PromiseAllOrErrors<T>(items: readonly (T | PromiseLike<T>)[]): Promise<T[]>;
|
|
2
|
-
/**
|
|
3
|
-
* @type {<T>(
|
|
4
|
-
* trier: () => Promise<T>,
|
|
5
|
-
* finalizer: (error?: unknown) => Promise<void>,
|
|
6
|
-
* ) => Promise<T>}
|
|
7
|
-
*/
|
|
8
|
-
export const aggregateTryFinally: <T>(trier: () => Promise<T>, finalizer: (error?: unknown) => Promise<void>) => Promise<T>;
|
|
9
|
-
//# sourceMappingURL=utils.d.ts.map
|
package/src/node/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["utils.js"],"names":[],"mappings":"AAYO,mCAFc,CAAC,SADX,SAAS,CACC,CAAC,AADA,GAAG,WAAW,CACf,CAAC,AADgB,CAAC,CAAC,EAAE,GAC7B,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBxB;AAED;;;;;GAKG;AACH,kCALU,CAAC,CAAC,EACX,KAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,SAAa,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,KAC1C,OAAO,CAAC,CAAC,CAAC,CAYd"}
|
package/src/node/utils.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// @ts-check
|
|
2
|
-
// @jessie-check
|
|
3
|
-
|
|
4
|
-
// These tools seem cross platform, but they rely on AggregateError in the error
|
|
5
|
-
// handling path, which is currently not available in xsnap
|
|
6
|
-
import 'node:process';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @template T
|
|
10
|
-
* @param {readonly (T | PromiseLike<T>)[]} items
|
|
11
|
-
* @returns {Promise<T[]>}
|
|
12
|
-
*/
|
|
13
|
-
export const PromiseAllOrErrors = async items => {
|
|
14
|
-
return Promise.allSettled(items).then(results => {
|
|
15
|
-
const errors = /** @type {PromiseRejectedResult[]} */ (
|
|
16
|
-
results.filter(({ status }) => status === 'rejected')
|
|
17
|
-
).map(result => result.reason);
|
|
18
|
-
if (!errors.length) {
|
|
19
|
-
return /** @type {PromiseFulfilledResult<T>[]} */ (results).map(
|
|
20
|
-
result => result.value,
|
|
21
|
-
);
|
|
22
|
-
} else if (errors.length === 1) {
|
|
23
|
-
throw errors[0];
|
|
24
|
-
} else {
|
|
25
|
-
throw AggregateError(errors);
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @type {<T>(
|
|
32
|
-
* trier: () => Promise<T>,
|
|
33
|
-
* finalizer: (error?: unknown) => Promise<void>,
|
|
34
|
-
* ) => Promise<T>}
|
|
35
|
-
*/
|
|
36
|
-
export const aggregateTryFinally = async (trier, finalizer) =>
|
|
37
|
-
trier().then(
|
|
38
|
-
async result => finalizer().then(() => result),
|
|
39
|
-
async tryError =>
|
|
40
|
-
finalizer(tryError)
|
|
41
|
-
.then(
|
|
42
|
-
() => tryError,
|
|
43
|
-
finalizeError => AggregateError([tryError, finalizeError]),
|
|
44
|
-
)
|
|
45
|
-
.then(error => Promise.reject(error)),
|
|
46
|
-
);
|