@agoric/vow 0.1.1-dev-eef7b69.0.eef7b69 → 0.1.1-dev-f96725d.0.f96725d
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 +6 -6
- package/src/tools.d.ts.map +1 -1
- package/src/tools.js +10 -4
- package/src/types.d.ts +17 -9
- package/src/types.d.ts.map +1 -1
- package/src/types.ts +25 -14
- package/src/watch-utils.d.ts +13 -10
- package/src/watch-utils.d.ts.map +1 -1
- package/src/watch-utils.js +16 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agoric/vow",
|
|
3
|
-
"version": "0.1.1-dev-
|
|
3
|
+
"version": "0.1.1-dev-f96725d.0.f96725d",
|
|
4
4
|
"description": "Remote (shortening and disconnection-tolerant) Promise-likes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"lint:types": "yarn run -T tsc"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@agoric/base-zone": "0.1.1-dev-
|
|
24
|
-
"@agoric/internal": "0.3.3-dev-
|
|
23
|
+
"@agoric/base-zone": "0.1.1-dev-f96725d.0.f96725d",
|
|
24
|
+
"@agoric/internal": "0.3.3-dev-f96725d.0.f96725d",
|
|
25
25
|
"@endo/env-options": "^1.1.11",
|
|
26
26
|
"@endo/errors": "^1.2.13",
|
|
27
27
|
"@endo/eventual-send": "^1.3.4",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@agoric/internal": "workspace:*",
|
|
34
|
-
"@agoric/swingset-vat": "0.32.3-dev-
|
|
35
|
-
"@agoric/zone": "0.2.3-dev-
|
|
34
|
+
"@agoric/swingset-vat": "0.32.3-dev-f96725d.0.f96725d",
|
|
35
|
+
"@agoric/zone": "0.2.3-dev-f96725d.0.f96725d",
|
|
36
36
|
"@endo/far": "^1.1.14",
|
|
37
37
|
"@endo/init": "^1.1.12",
|
|
38
38
|
"ava": "^5.3.0",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"typeCoverage": {
|
|
59
59
|
"atLeast": 91.98
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "f96725dc568bd872664f68eb5f60b0853737e166"
|
|
62
62
|
}
|
package/src/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["tools.js"],"names":[],"mappings":"AAwBO,2CALI,IAAI,WAEZ;IAAmC,iBAAiB;CACpD,GAAU,QAAQ,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["tools.js"],"names":[],"mappings":"AAwBO,2CALI,IAAI,WAEZ;IAAmC,iBAAiB;CACpD,GAAU,QAAQ,CAwEpB;0BApFsB,mBAAmB;uCAEuC,YAAY;8BAAZ,YAAY"}
|
package/src/tools.js
CHANGED
|
@@ -10,7 +10,7 @@ import { makeWhen } from './when.js';
|
|
|
10
10
|
/**
|
|
11
11
|
* @import {Zone} from '@agoric/base-zone';
|
|
12
12
|
* @import {Passable} from '@endo/pass-style';
|
|
13
|
-
* @import {IsRetryableReason, AsPromiseFunction, Vow, VowTools} from './types.js';
|
|
13
|
+
* @import {IsRetryableReason, AsPromiseFunction, Fulfilled, Vow, VowTools} from './types.js';
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -50,13 +50,17 @@ export const prepareBasicVowTools = (zone, powers = {}) => {
|
|
|
50
50
|
* fulfilled and rejects when any of the input's promises or vows are
|
|
51
51
|
* rejected with the first rejection reason.
|
|
52
52
|
*
|
|
53
|
-
* @
|
|
53
|
+
* @template {readonly unknown[]} TS
|
|
54
|
+
* @param {TS} maybeVows
|
|
55
|
+
* @returns {Vow<{ [P in keyof TS]: Fulfilled<TS[P]> }>}
|
|
54
56
|
*/
|
|
55
57
|
const all = maybeVows => watchUtils.all(maybeVows);
|
|
56
58
|
|
|
57
59
|
/**
|
|
58
|
-
* @param {unknown[]} maybeVows
|
|
59
60
|
* @deprecated use `vowTools.all`
|
|
61
|
+
* @template {readonly unknown[]} TS
|
|
62
|
+
* @param {TS} maybeVows
|
|
63
|
+
* @returns {Vow<{ [P in keyof TS]: Fulfilled<TS[P]>}>}
|
|
60
64
|
*/
|
|
61
65
|
const allVows = all;
|
|
62
66
|
|
|
@@ -66,7 +70,9 @@ export const prepareBasicVowTools = (zone, powers = {}) => {
|
|
|
66
70
|
* resolves when all of the input's promises or vows are settled with an
|
|
67
71
|
* array of settled outcome objects.
|
|
68
72
|
*
|
|
69
|
-
* @
|
|
73
|
+
* @template {readonly unknown[]} TS
|
|
74
|
+
* @param {TS} maybeVows
|
|
75
|
+
* @returns {Vow<{ [P in keyof TS]: PromiseSettledResult<Fulfilled<TS[P]>> }>}
|
|
70
76
|
*/
|
|
71
77
|
const allSettled = maybeVows => watchUtils.allSettled(maybeVows);
|
|
72
78
|
|
package/src/types.d.ts
CHANGED
|
@@ -5,6 +5,14 @@ import type { CopyTagged, RemotableObject } from '@endo/pass-style';
|
|
|
5
5
|
* Return truthy if a rejection reason should result in a retry.
|
|
6
6
|
*/
|
|
7
7
|
export type IsRetryableReason = (reason: any, priorRetryValue: any) => any;
|
|
8
|
+
/**
|
|
9
|
+
* Types that are conceptually similar to Promise<F> in that they wrap a fulfilled type.
|
|
10
|
+
*/
|
|
11
|
+
export type VowLike<F> = Promise<F> | PromiseLike<F> | Vow<F>;
|
|
12
|
+
/**
|
|
13
|
+
* Extract the final fulfilment type from a chain of VowLikes.
|
|
14
|
+
*/
|
|
15
|
+
export type Fulfilled<T> = T extends VowLike<infer F> ? Fulfilled<F> : T;
|
|
8
16
|
/**
|
|
9
17
|
* Return type of a function that may
|
|
10
18
|
* return a promise or a vow.
|
|
@@ -80,7 +88,9 @@ export type VowTools = {
|
|
|
80
88
|
* fulfilled and rejects when any of the input's promises or vows are rejected
|
|
81
89
|
* with the first rejection reason.
|
|
82
90
|
*/
|
|
83
|
-
all: (maybeVows:
|
|
91
|
+
all: <TS extends readonly unknown[]>(maybeVows: TS) => Vow<{
|
|
92
|
+
[K in keyof TS]: Fulfilled<TS[K]>;
|
|
93
|
+
}>;
|
|
84
94
|
/**
|
|
85
95
|
* Vow-tolerant
|
|
86
96
|
* implementation of Promise.allSettled that takes an iterable of vows and other
|
|
@@ -88,14 +98,12 @@ export type VowTools = {
|
|
|
88
98
|
* the input's promises or vows are settled with an array of settled outcome
|
|
89
99
|
* objects.
|
|
90
100
|
*/
|
|
91
|
-
allSettled: (maybeVows:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
})[]>;
|
|
98
|
-
allVows: (maybeVows: unknown[]) => Vow<any[]>;
|
|
101
|
+
allSettled: <TS extends readonly unknown[]>(maybeVows: TS) => Vow<{
|
|
102
|
+
[K in keyof TS]: PromiseSettledResult<Fulfilled<TS[K]>>;
|
|
103
|
+
}>;
|
|
104
|
+
allVows: <TS extends readonly unknown[]>(maybeVows: TS) => Vow<{
|
|
105
|
+
[K in keyof TS]: Fulfilled<TS[K]>;
|
|
106
|
+
}>;
|
|
99
107
|
/**
|
|
100
108
|
* Convert a vow or promise to a promise, ensuring proper handling of ephemeral promises.
|
|
101
109
|
*/
|
package/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
|
package/src/types.ts
CHANGED
|
@@ -7,6 +7,16 @@ import type { CopyTagged, RemotableObject } from '@endo/pass-style';
|
|
|
7
7
|
*/
|
|
8
8
|
export type IsRetryableReason = (reason: any, priorRetryValue: any) => any;
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Types that are conceptually similar to Promise<F> in that they wrap a fulfilled type.
|
|
12
|
+
*/
|
|
13
|
+
export type VowLike<F> = Promise<F> | PromiseLike<F> | Vow<F>; // s| PromiseStep<F> …etc.
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Extract the final fulfilment type from a chain of VowLikes.
|
|
17
|
+
*/
|
|
18
|
+
export type Fulfilled<T> = T extends VowLike<infer F> ? Fulfilled<F> : T;
|
|
19
|
+
|
|
10
20
|
/**
|
|
11
21
|
* Return type of a function that may
|
|
12
22
|
* return a promise or a vow.
|
|
@@ -128,7 +138,11 @@ export type VowTools = {
|
|
|
128
138
|
* fulfilled and rejects when any of the input's promises or vows are rejected
|
|
129
139
|
* with the first rejection reason.
|
|
130
140
|
*/
|
|
131
|
-
all:
|
|
141
|
+
all: <TS extends readonly unknown[]>(
|
|
142
|
+
maybeVows: TS,
|
|
143
|
+
) => Vow<{
|
|
144
|
+
[K in keyof TS]: Fulfilled<TS[K]>;
|
|
145
|
+
}>;
|
|
132
146
|
/**
|
|
133
147
|
* Vow-tolerant
|
|
134
148
|
* implementation of Promise.allSettled that takes an iterable of vows and other
|
|
@@ -136,19 +150,16 @@ export type VowTools = {
|
|
|
136
150
|
* the input's promises or vows are settled with an array of settled outcome
|
|
137
151
|
* objects.
|
|
138
152
|
*/
|
|
139
|
-
allSettled:
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
)[]
|
|
150
|
-
>;
|
|
151
|
-
allVows: (maybeVows: unknown[]) => Vow<any[]>;
|
|
153
|
+
allSettled: <TS extends readonly unknown[]>(
|
|
154
|
+
maybeVows: TS,
|
|
155
|
+
) => Vow<{
|
|
156
|
+
[K in keyof TS]: PromiseSettledResult<Fulfilled<TS[K]>>;
|
|
157
|
+
}>;
|
|
158
|
+
allVows: <TS extends readonly unknown[]>(
|
|
159
|
+
maybeVows: TS,
|
|
160
|
+
) => Vow<{
|
|
161
|
+
[K in keyof TS]: Fulfilled<TS[K]>;
|
|
162
|
+
}>;
|
|
152
163
|
/**
|
|
153
164
|
* Convert a vow or promise to a promise, ensuring proper handling of ephemeral promises.
|
|
154
165
|
*/
|
package/src/watch-utils.d.ts
CHANGED
|
@@ -4,16 +4,18 @@ export function prepareWatchUtils(zone: Zone, { watch, when, makeVowKit, isRetry
|
|
|
4
4
|
makeVowKit: () => VowKit<any>;
|
|
5
5
|
isRetryableReason: IsRetryableReason;
|
|
6
6
|
}): () => import("@endo/exo").Guarded<{
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
/**
|
|
8
|
+
* @template {readonly unknown[]} S
|
|
9
|
+
* @param {S} specimens
|
|
10
|
+
* @returns {Vow<{ [P in keyof S]: Fulfilled<S[P]> }>}
|
|
11
|
+
*/
|
|
12
|
+
all<S extends readonly unknown[]>(specimens: S): Vow<{ [P in keyof S]: Fulfilled<S[P]>; }>;
|
|
13
|
+
/**
|
|
14
|
+
* @template {readonly unknown[]} S
|
|
15
|
+
* @param {S} specimens
|
|
16
|
+
* @returns {Vow<{ [P in keyof S]: PromiseSettledResult<Fulfilled<S[P]>> }>}
|
|
17
|
+
*/
|
|
18
|
+
allSettled<S extends readonly unknown[]>(specimens: S): Vow<{ [P in keyof S]: PromiseSettledResult<Fulfilled<S[P]>>; }>;
|
|
17
19
|
asPromise(specimenP: any, watcher?: import("./types.js").Watcher<any, any, never, any[]> | undefined, watcherArgs?: any[] | undefined): Promise<any>;
|
|
18
20
|
}>;
|
|
19
21
|
import type { Zone } from '@agoric/base-zone';
|
|
@@ -21,5 +23,6 @@ import type { Watch } from './watch.js';
|
|
|
21
23
|
import type { When } from './when.js';
|
|
22
24
|
import type { VowKit } from './types.js';
|
|
23
25
|
import type { IsRetryableReason } from './types.js';
|
|
26
|
+
import type { Fulfilled } from './types.js';
|
|
24
27
|
import type { Vow } from './types.js';
|
|
25
28
|
//# sourceMappingURL=watch-utils.d.ts.map
|
package/src/watch-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-utils.d.ts","sourceRoot":"","sources":["watch-utils.js"],"names":[],"mappings":"AA+BO,wCAPI,IAAI,kDAEZ;IAAsB,KAAK,EAAnB,KAAK;IACQ,IAAI,EAAjB,IAAI;IACsB,UAAU,EAApC,MAAM,OAAO,GAAG,CAAC;IACS,iBAAiB,EAA3C,iBAAiB;CAC3B;IA4CO
|
|
1
|
+
{"version":3,"file":"watch-utils.d.ts","sourceRoot":"","sources":["watch-utils.js"],"names":[],"mappings":"AA+BO,wCAPI,IAAI,kDAEZ;IAAsB,KAAK,EAAnB,KAAK;IACQ,IAAI,EAAjB,IAAI;IACsB,UAAU,EAApC,MAAM,OAAO,GAAG,CAAC;IACS,iBAAiB,EAA3C,iBAAiB;CAC3B;IA4CO;;;;OAIG;QAH+B,CAAC,SAAtB,SAAU,OAAO,EAAG,aACtB,CAAC,GACC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC;IAOrD;;;;OAIG;eAH+B,CAAC,SAAtB,SAAU,OAAO,EAAG,aACtB,CAAC,GACC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC;;GA6LlF;0BA1QsB,mBAAmB;2BAClB,YAAY;0BACb,WAAW;4BAC6C,YAAY;uCAAZ,YAAY;+BAAZ,YAAY;yBAAZ,YAAY"}
|
package/src/watch-utils.js
CHANGED
|
@@ -11,7 +11,7 @@ const { Fail, bare, details: X } = assert;
|
|
|
11
11
|
* @import {Zone} from '@agoric/base-zone';
|
|
12
12
|
* @import {Watch} from './watch.js';
|
|
13
13
|
* @import {When} from './when.js';
|
|
14
|
-
* @import {VowKit, AsPromiseFunction, IsRetryableReason, Vow} from './types.js';
|
|
14
|
+
* @import {VowKit, AsPromiseFunction, Fulfilled, IsRetryableReason, Vow} from './types.js';
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
const VowShape = M.tagged(
|
|
@@ -72,13 +72,23 @@ export const prepareWatchUtils = (
|
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
utils: {
|
|
75
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* @template {readonly unknown[]} S
|
|
77
|
+
* @param {S} specimens
|
|
78
|
+
* @returns {Vow<{ [P in keyof S]: Fulfilled<S[P]> }>}
|
|
79
|
+
*/
|
|
76
80
|
all(specimens) {
|
|
77
|
-
return
|
|
81
|
+
return /** @type {Vow<{ [P in keyof S]: Fulfilled<S[P]> }>} */ (
|
|
82
|
+
this.facets.helper.createVow(specimens, false)
|
|
83
|
+
);
|
|
78
84
|
},
|
|
79
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* @template {readonly unknown[]} S
|
|
87
|
+
* @param {S} specimens
|
|
88
|
+
* @returns {Vow<{ [P in keyof S]: PromiseSettledResult<Fulfilled<S[P]>> }>}
|
|
89
|
+
*/
|
|
80
90
|
allSettled(specimens) {
|
|
81
|
-
return /** @type {Vow<
|
|
91
|
+
return /** @type {Vow<{ [P in keyof S]: PromiseSettledResult<Fulfilled<S[P]>> }>} */ (
|
|
82
92
|
this.facets.helper.createVow(specimens, true)
|
|
83
93
|
);
|
|
84
94
|
},
|
|
@@ -121,7 +131,7 @@ export const prepareWatchUtils = (
|
|
|
121
131
|
},
|
|
122
132
|
helper: {
|
|
123
133
|
/**
|
|
124
|
-
* @param {unknown[]} specimens
|
|
134
|
+
* @param {readonly unknown[]} specimens
|
|
125
135
|
* @param {boolean} isAllSettled
|
|
126
136
|
*/
|
|
127
137
|
createVow(specimens, isAllSettled) {
|