effect-app 4.0.1 → 4.0.3
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 +13 -0
- package/dist/Schema.d.ts +14 -2
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +4 -2
- package/dist/waitingGate.d.ts +38 -0
- package/dist/waitingGate.d.ts.map +1 -0
- package/dist/waitingGate.js +63 -0
- package/dist/withToast.d.ts.map +1 -1
- package/dist/withToast.js +42 -3
- package/package.json +3 -3
- package/src/Schema.ts +27 -3
- package/src/waitingGate.ts +82 -0
- package/src/withToast.ts +51 -5
- package/test/dist/waitingGate.test.d.ts.map +1 -0
- package/test/special.test.ts +4 -2
- package/test/waitingGate.test.ts +64 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @effect-app/prelude
|
|
2
2
|
|
|
3
|
+
## 4.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6317235: Upgrade Effect packages to npm `4.0.5`. `TaggedUnion` and `ExtendTaggedUnion` reject duplicate `_tag` values at compile time, matching `Schema.toTaggedUnion`. JSON Schema for `PositiveInt` and `NonNegativeInt` now includes `Schema.Int`'s safe-integer maximum.
|
|
8
|
+
|
|
9
|
+
## 4.0.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 76911ed: Add `suspendWaiting` so a command can park on a dialog without the spinner or the waiting toast. The button stays disabled. Both come back when the effect finishes and the rest of the command runs.
|
|
14
|
+
- 7a99d1b: Upgrade Effect packages to npm `4.0.2`.
|
|
15
|
+
|
|
3
16
|
## 4.0.1
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/Schema.d.ts
CHANGED
|
@@ -264,6 +264,18 @@ type TaggedUnionWithTags<Members extends TaggedUnionMembers> = S.toTaggedUnion<"
|
|
|
264
264
|
readonly generateGuards: <K extends string>(property: K) => PropertyGuards<Members, K>;
|
|
265
265
|
readonly generateGuardsFor: <A>() => <K extends TaggedPropertyKeys<A, Members>>(property: K) => PropertyGuardsFor<Members, K, A>;
|
|
266
266
|
};
|
|
267
|
-
|
|
268
|
-
|
|
267
|
+
type TaggedFor<Tag extends PropertyKey> = {
|
|
268
|
+
readonly Type: {
|
|
269
|
+
readonly [K in Tag]: PropertyKey;
|
|
270
|
+
};
|
|
271
|
+
};
|
|
272
|
+
type FlattenTaggedMembers<Schemas> = Schemas extends readonly [infer Head, ...infer Tail] ? Head extends S.Union<infer Inner> ? [...FlattenTaggedMembers<Inner>, ...FlattenTaggedMembers<Tail>] : [Head, ...FlattenTaggedMembers<Tail>] : [];
|
|
273
|
+
type DiscriminantKey<T extends PropertyKey> = T extends number ? `${T}` : T;
|
|
274
|
+
type EnsureUniqueDiscriminants<Tags extends ReadonlyArray<PropertyKey>, Seen = never> = Tags extends readonly [infer Head extends PropertyKey, ...infer Tail extends ReadonlyArray<PropertyKey>] ? [DiscriminantKey<Head> & Seen] extends [never] ? EnsureUniqueDiscriminants<Tail, Seen | DiscriminantKey<Head>> : never : unknown;
|
|
275
|
+
type TaggedDiscriminants<Members extends ReadonlyArray<TaggedFor<"_tag">>, Flattened extends ReadonlyArray<TaggedFor<"_tag">> = FlattenTaggedMembers<Members>> = {
|
|
276
|
+
readonly [I in keyof Flattened]: Flattened[I]["Type"]["_tag"];
|
|
277
|
+
};
|
|
278
|
+
type UniqueTaggedUnion<Members extends TaggedUnionMembers> = S.Union<Members> & NoInfer<EnsureUniqueDiscriminants<TaggedDiscriminants<Members>>>;
|
|
279
|
+
export declare const ExtendTaggedUnion: <Members extends TaggedUnionMembers>(schema: UniqueTaggedUnion<Members>) => TaggedUnionWithTags<Members>;
|
|
280
|
+
export declare const TaggedUnion: <Members extends TaggedUnionMembers>(members: Members & NoInfer<EnsureUniqueDiscriminants<TaggedDiscriminants<Members>>>) => TaggedUnionWithTags<Members>;
|
|
269
281
|
//# sourceMappingURL=Schema.d.ts.map
|
package/dist/Schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"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"}
|
package/dist/Schema.js
CHANGED
|
@@ -239,5 +239,7 @@ const extendTaggedUnionWithTags = (schema) => extendM(schema.pipe(S.toTaggedUnio
|
|
|
239
239
|
};
|
|
240
240
|
});
|
|
241
241
|
export const ExtendTaggedUnion = (schema) => extendTaggedUnionWithTags(schema);
|
|
242
|
-
export const TaggedUnion = (members) =>
|
|
243
|
-
|
|
242
|
+
export const TaggedUnion = (members) =>
|
|
243
|
+
// `Schema.Union` does not carry the uniqueness proof checked on `members`.
|
|
244
|
+
extendTaggedUnionWithTags(S.Union(members));
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUNsQyxPQUFPLEtBQUssa0JBQWtCLE1BQU0scUJBQXFCLENBQUE7QUFNekQsT0FBTyxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQTJCLE1BQU0sbUJBQW1CLENBQUE7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhHLE9BQU8sRUFBRSxXQUFXLElBQUksWUFBWSxFQUF1QyxNQUFNLHlCQUF5QixDQUFBO0FBRTFHLE9BQU8sS0FBSyxTQUFTLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUE2QixNQUFNLFlBQVksQ0FBQTtBQUVoRiw4RUFBOEU7QUFDOUUsbURBQW1EO0FBQ25ELEVBQUU7QUFDRiwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLG1EQUFtRDtBQUNuRCx1RUFBdUU7QUFDdkUsa0JBQWtCO0FBQ2xCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsMEVBQTBFO0FBQzFFLHNFQUFzRTtBQUN0RSxzREFBc0Q7QUFDdEQsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSxxRUFBcUU7QUFDckUsc0VBQXNFO0FBQ3RFLHlFQUF5RTtBQUN6RSx3RUFBd0U7QUFDeEUsOEVBQThFO0FBRTlFOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXREOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRW5EOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV0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
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as Context from "./Context.js";
|
|
2
|
+
import * as Effect from "./Effect.js";
|
|
3
|
+
/**
|
|
4
|
+
* Notified with the suspension depth after each change. `0` means the command
|
|
5
|
+
* is doing work. A positive depth means it is parked on a caller.
|
|
6
|
+
*/
|
|
7
|
+
export type WaitingGateController = (depth: number) => Effect.Effect<void>;
|
|
8
|
+
export interface WaitingGateShape {
|
|
9
|
+
/** `false` for the default gate. Suspension then changes nothing. */
|
|
10
|
+
readonly active: boolean;
|
|
11
|
+
readonly depth: number;
|
|
12
|
+
readonly add: (delta: number) => Effect.Effect<void>;
|
|
13
|
+
/** Stack a controller. The returned function restores the previous one. */
|
|
14
|
+
readonly bind: (controller: WaitingGateController) => () => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Per-command gate for {@link suspendWaiting}. Commands provide an active gate.
|
|
18
|
+
* The default is inactive, so the helper is a no-op outside a command.
|
|
19
|
+
*/
|
|
20
|
+
export declare const WaitingGate: Context.Reference<WaitingGateShape>;
|
|
21
|
+
/** Build the gate one command owns. `onDepth` runs synchronously inside `add`. */
|
|
22
|
+
export declare const makeWaitingGate: (onDepth?: (depth: number) => void) => WaitingGateShape;
|
|
23
|
+
/**
|
|
24
|
+
* Run `self` while command chrome is quiet.
|
|
25
|
+
*
|
|
26
|
+
* The spinner and the waiting toast pause for `self` and resume when it
|
|
27
|
+
* finishes, including when it is interrupted. The command stays blocked for
|
|
28
|
+
* the whole run, so the button cannot start again.
|
|
29
|
+
*
|
|
30
|
+
* Outside a command the default gate is inactive and `self` runs unchanged.
|
|
31
|
+
*
|
|
32
|
+
* ```ts
|
|
33
|
+
* const decision = yield* suspendWaiting(ask(pickupDate))
|
|
34
|
+
* yield* close(orderId)
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare const suspendWaiting: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
38
|
+
//# sourceMappingURL=waitingGate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waitingGate.d.ts","sourceRoot":"","sources":["../src/waitingGate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpD,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,qBAAqB,KAAK,MAAM,IAAI,CAAA;CACjE;AASD;;;GAGG;AACH,eAAO,MAAM,WAAW,qCAEtB,CAAA;AAEF,kFAAkF;AAClF,eAAO,MAAM,eAAe,aAAc,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAAG,gBAwBnE,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAOzF,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as Context from "./Context.js";
|
|
2
|
+
import * as Effect from "./Effect.js";
|
|
3
|
+
const inactiveWaitingGate = {
|
|
4
|
+
active: false,
|
|
5
|
+
depth: 0,
|
|
6
|
+
add: () => Effect.void,
|
|
7
|
+
bind: () => () => { }
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Per-command gate for {@link suspendWaiting}. Commands provide an active gate.
|
|
11
|
+
* The default is inactive, so the helper is a no-op outside a command.
|
|
12
|
+
*/
|
|
13
|
+
export const WaitingGate = Context.Reference("effect-app/WaitingGate", {
|
|
14
|
+
defaultValue: () => inactiveWaitingGate
|
|
15
|
+
});
|
|
16
|
+
/** Build the gate one command owns. `onDepth` runs synchronously inside `add`. */
|
|
17
|
+
export const makeWaitingGate = (onDepth) => {
|
|
18
|
+
let depth = 0;
|
|
19
|
+
let controller;
|
|
20
|
+
return {
|
|
21
|
+
active: true,
|
|
22
|
+
get depth() {
|
|
23
|
+
return depth;
|
|
24
|
+
},
|
|
25
|
+
add: (delta) => Effect.uninterruptible(Effect.gen(function* () {
|
|
26
|
+
depth += delta;
|
|
27
|
+
if (depth < 0)
|
|
28
|
+
depth = 0;
|
|
29
|
+
const next = depth;
|
|
30
|
+
onDepth?.(next);
|
|
31
|
+
if (controller)
|
|
32
|
+
yield* controller(next);
|
|
33
|
+
})),
|
|
34
|
+
bind: (next) => {
|
|
35
|
+
const previous = controller;
|
|
36
|
+
controller = next;
|
|
37
|
+
return () => {
|
|
38
|
+
if (controller === next)
|
|
39
|
+
controller = previous;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Run `self` while command chrome is quiet.
|
|
46
|
+
*
|
|
47
|
+
* The spinner and the waiting toast pause for `self` and resume when it
|
|
48
|
+
* finishes, including when it is interrupted. The command stays blocked for
|
|
49
|
+
* the whole run, so the button cannot start again.
|
|
50
|
+
*
|
|
51
|
+
* Outside a command the default gate is inactive and `self` runs unchanged.
|
|
52
|
+
*
|
|
53
|
+
* ```ts
|
|
54
|
+
* const decision = yield* suspendWaiting(ask(pickupDate))
|
|
55
|
+
* yield* close(orderId)
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export const suspendWaiting = (self) => Effect.uninterruptibleMask((restore) => Effect.gen(function* () {
|
|
59
|
+
const gate = yield* WaitingGate;
|
|
60
|
+
yield* gate.add(1);
|
|
61
|
+
return yield* Effect.ensuring(restore(self), gate.add(-1));
|
|
62
|
+
}));
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdGluZ0dhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvd2FpdGluZ0dhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFpQnJDLE1BQU0sbUJBQW1CLEdBQXFCO0lBQzVDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsS0FBSyxFQUFFLENBQUM7SUFDUixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUk7SUFDdEIsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUM7Q0FDckIsQ0FBQTtBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFtQix3QkFBd0IsRUFBRTtJQUN2RixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsbUJBQW1CO0NBQ3hDLENBQUMsQ0FBQTtBQUVGLGtGQUFrRjtBQUNsRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFpQyxFQUFvQixFQUFFO0lBQ3JGLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQTtJQUNiLElBQUksVUFBNkMsQ0FBQTtJQUNqRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLElBQUk7UUFDWixJQUFJLEtBQUs7WUFDUCxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUM7UUFDRCxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNiLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDekMsS0FBSyxJQUFJLEtBQUssQ0FBQTtZQUNkLElBQUksS0FBSyxHQUFHLENBQUM7Z0JBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUN4QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUE7WUFDbEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDZixJQUFJLFVBQVU7Z0JBQUUsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDYixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUE7WUFDM0IsVUFBVSxHQUFHLElBQUksQ0FBQTtZQUNqQixPQUFPLEdBQUcsRUFBRTtnQkFDVixJQUFJLFVBQVUsS0FBSyxJQUFJO29CQUFFLFVBQVUsR0FBRyxRQUFRLENBQUE7WUFDaEQsQ0FBQyxDQUFBO1FBQ0gsQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQVUsSUFBNEIsRUFBMEIsRUFBRSxDQUM5RixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztJQUNsQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUE7SUFDL0IsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNsQixPQUFPLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzVELENBQUMsQ0FBQyxDQUNILENBQUEifQ==
|
package/dist/withToast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withToast.d.ts","sourceRoot":"","sources":["../src/withToast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAkB,KAAK,EAAgB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"withToast.d.ts","sourceRoot":"","sources":["../src/withToast.ts"],"names":[],"mappings":"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"}
|
package/dist/withToast.js
CHANGED
|
@@ -6,6 +6,7 @@ import * as Layer from "./Layer.js";
|
|
|
6
6
|
import * as S from "./Schema.js";
|
|
7
7
|
import { CurrentToastId, Toast } from "./toast.js";
|
|
8
8
|
import { wrapEffect } from "./utils.js";
|
|
9
|
+
import { WaitingGate } from "./waitingGate.js";
|
|
9
10
|
// @effect-diagnostics-next-line missingEffectServiceDependency:off
|
|
10
11
|
export class WithToast extends Context.Service()("WithToast", {
|
|
11
12
|
make: Effect.gen(function* () {
|
|
@@ -22,8 +23,46 @@ export class WithToast extends Context.Service()("WithToast", {
|
|
|
22
23
|
const toastId = t === null
|
|
23
24
|
? stableToastId
|
|
24
25
|
: stableToastId ?? `wait-${Math.random().toString(36).slice(2)}`;
|
|
25
|
-
const
|
|
26
|
-
|
|
26
|
+
const gate = yield* WaitingGate;
|
|
27
|
+
let waitingFiber;
|
|
28
|
+
let toastShown = false;
|
|
29
|
+
let unbind = () => { };
|
|
30
|
+
const armWaiting = () => Effect.gen(function* () {
|
|
31
|
+
if (waitingFiber !== undefined || t === null || toastId === undefined)
|
|
32
|
+
return;
|
|
33
|
+
waitingFiber = yield* Effect.forkChild(Effect.sleep("1 seconds").pipe(Effect.andThen(Effect.uninterruptible(Effect.gen(function* () {
|
|
34
|
+
toastShown = true;
|
|
35
|
+
yield* toast.info(t, { id: toastId, timeout: Infinity, ...meta });
|
|
36
|
+
}))), Effect.asVoid));
|
|
37
|
+
});
|
|
38
|
+
const disarmWaiting = () => Effect.gen(function* () {
|
|
39
|
+
const fiber = waitingFiber;
|
|
40
|
+
waitingFiber = undefined;
|
|
41
|
+
if (fiber)
|
|
42
|
+
yield* Fiber.interrupt(fiber);
|
|
43
|
+
if (toastShown && toastId !== undefined) {
|
|
44
|
+
toastShown = false;
|
|
45
|
+
yield* toast.dismiss(toastId);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
// An active gate pauses the toast while `suspendWaiting` is parked and
|
|
49
|
+
// starts a fresh one-second delay when work resumes. The inactive
|
|
50
|
+
// default keeps the original fork.
|
|
51
|
+
if (t !== null && gate.active) {
|
|
52
|
+
unbind = gate.bind((depth) => (depth === 0 ? armWaiting() : disarmWaiting()));
|
|
53
|
+
if (gate.depth === 0)
|
|
54
|
+
yield* armWaiting();
|
|
55
|
+
}
|
|
56
|
+
else if (t !== null) {
|
|
57
|
+
waitingFiber = yield* Effect.forkChild(Effect.sleep("1 seconds").pipe(Effect.andThen(toast.info(t, { id: toastId, timeout: Infinity, ...meta })), Effect.asVoid));
|
|
58
|
+
}
|
|
59
|
+
const interruptWaiting = Effect.uninterruptible(Effect.gen(function* () {
|
|
60
|
+
unbind();
|
|
61
|
+
const fiber = waitingFiber;
|
|
62
|
+
waitingFiber = undefined;
|
|
63
|
+
if (fiber)
|
|
64
|
+
yield* Fiber.interrupt(fiber);
|
|
65
|
+
}));
|
|
27
66
|
return yield* self.pipe(Effect.tap(Effect.fnUntraced(function* (a) {
|
|
28
67
|
yield* interruptWaiting;
|
|
29
68
|
const t = yield* wrapEffect(options.onSuccess)(a, ...args);
|
|
@@ -61,4 +100,4 @@ export class WithToast extends Context.Service()("WithToast", {
|
|
|
61
100
|
static Default = this.DefaultWithoutDependencies;
|
|
62
101
|
static handle = (options) => (self, ...args) => this.use((_) => _(options)(self, ...args));
|
|
63
102
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRvYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dpdGhUb2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUVuQyxPQUFPLEtBQUssQ0FBQyxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxZQUFZLENBQUE7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFrQzlDLG1FQUFtRTtBQUNuRSxNQUFNLE9BQU8sU0FBVSxTQUFRLE9BQU8sQ0FBQyxPQUFPLEVBQWEsQ0FBQyxXQUFXLEVBQUU7SUFDdkUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUMxQixPQUFPLENBQ0wsT0FBbUQsRUFDbkQsRUFBRSxDQUNGLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUMsSUFBNEIsRUFBRSxHQUFHLElBQVU7WUFDckUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUE7WUFFNUMsTUFBTSxhQUFhLEdBQUcsT0FBTyxPQUFPLENBQUMsYUFBYSxLQUFLLFVBQVU7Z0JBQy9ELENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNoQyxDQUFDLENBQUMsT0FBTyxDQUFD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"@types/validator": "^13.15.10",
|
|
23
23
|
"fast-check": "^4.9.0",
|
|
24
24
|
"typescript": "~6.0.3",
|
|
25
|
-
"vitest": "^
|
|
25
|
+
"vitest": "^5.0.5"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"effect": "^4.0.
|
|
28
|
+
"effect": "^4.0.5"
|
|
29
29
|
},
|
|
30
30
|
"typesVersions": {
|
|
31
31
|
"*": {
|
package/src/Schema.ts
CHANGED
|
@@ -466,8 +466,28 @@ type TaggedUnionWithTags<Members extends TaggedUnionMembers> = S.toTaggedUnion<"
|
|
|
466
466
|
) => PropertyGuardsFor<Members, K, A>
|
|
467
467
|
}
|
|
468
468
|
|
|
469
|
+
// Mirrors effect `Schema.toTaggedUnion`: duplicate `_tag` values, including `1` and `"1"`, are rejected.
|
|
470
|
+
type TaggedFor<Tag extends PropertyKey> = { readonly Type: { readonly [K in Tag]: PropertyKey } }
|
|
471
|
+
type FlattenTaggedMembers<Schemas> = Schemas extends readonly [infer Head, ...infer Tail]
|
|
472
|
+
? Head extends S.Union<infer Inner> ? [...FlattenTaggedMembers<Inner>, ...FlattenTaggedMembers<Tail>]
|
|
473
|
+
: [Head, ...FlattenTaggedMembers<Tail>]
|
|
474
|
+
: []
|
|
475
|
+
type DiscriminantKey<T extends PropertyKey> = T extends number ? `${T}` : T
|
|
476
|
+
type EnsureUniqueDiscriminants<Tags extends ReadonlyArray<PropertyKey>, Seen = never> = Tags extends
|
|
477
|
+
readonly [infer Head extends PropertyKey, ...infer Tail extends ReadonlyArray<PropertyKey>]
|
|
478
|
+
? [DiscriminantKey<Head> & Seen] extends [never] ? EnsureUniqueDiscriminants<Tail, Seen | DiscriminantKey<Head>>
|
|
479
|
+
: never
|
|
480
|
+
: unknown
|
|
481
|
+
type TaggedDiscriminants<
|
|
482
|
+
Members extends ReadonlyArray<TaggedFor<"_tag">>,
|
|
483
|
+
Flattened extends ReadonlyArray<TaggedFor<"_tag">> = FlattenTaggedMembers<Members>
|
|
484
|
+
> = { readonly [I in keyof Flattened]: Flattened[I]["Type"]["_tag"] }
|
|
485
|
+
type UniqueTaggedUnion<Members extends TaggedUnionMembers> =
|
|
486
|
+
& S.Union<Members>
|
|
487
|
+
& NoInfer<EnsureUniqueDiscriminants<TaggedDiscriminants<Members>>>
|
|
488
|
+
|
|
469
489
|
const extendTaggedUnionWithTags = <Members extends TaggedUnionMembers>(
|
|
470
|
-
schema:
|
|
490
|
+
schema: UniqueTaggedUnion<Members>
|
|
471
491
|
): TaggedUnionWithTags<Members> =>
|
|
472
492
|
extendM(schema.pipe(S.toTaggedUnion("_tag")), (tagged) => {
|
|
473
493
|
const makeGuards = (property: string) => {
|
|
@@ -491,9 +511,13 @@ const extendTaggedUnionWithTags = <Members extends TaggedUnionMembers>(
|
|
|
491
511
|
})
|
|
492
512
|
|
|
493
513
|
export const ExtendTaggedUnion = <Members extends TaggedUnionMembers>(
|
|
494
|
-
schema:
|
|
514
|
+
schema: UniqueTaggedUnion<Members>
|
|
495
515
|
): TaggedUnionWithTags<Members> => extendTaggedUnionWithTags(schema)
|
|
496
516
|
|
|
497
517
|
export const TaggedUnion = <
|
|
498
518
|
Members extends TaggedUnionMembers
|
|
499
|
-
>(
|
|
519
|
+
>(
|
|
520
|
+
members: Members & NoInfer<EnsureUniqueDiscriminants<TaggedDiscriminants<Members>>>
|
|
521
|
+
): TaggedUnionWithTags<Members> =>
|
|
522
|
+
// `Schema.Union` does not carry the uniqueness proof checked on `members`.
|
|
523
|
+
extendTaggedUnionWithTags(S.Union(members) as UniqueTaggedUnion<Members>)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import * as Context from "./Context.ts"
|
|
2
|
+
import * as Effect from "./Effect.ts"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Notified with the suspension depth after each change. `0` means the command
|
|
6
|
+
* is doing work. A positive depth means it is parked on a caller.
|
|
7
|
+
*/
|
|
8
|
+
export type WaitingGateController = (depth: number) => Effect.Effect<void>
|
|
9
|
+
|
|
10
|
+
export interface WaitingGateShape {
|
|
11
|
+
/** `false` for the default gate. Suspension then changes nothing. */
|
|
12
|
+
readonly active: boolean
|
|
13
|
+
readonly depth: number
|
|
14
|
+
readonly add: (delta: number) => Effect.Effect<void>
|
|
15
|
+
/** Stack a controller. The returned function restores the previous one. */
|
|
16
|
+
readonly bind: (controller: WaitingGateController) => () => void
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const inactiveWaitingGate: WaitingGateShape = {
|
|
20
|
+
active: false,
|
|
21
|
+
depth: 0,
|
|
22
|
+
add: () => Effect.void,
|
|
23
|
+
bind: () => () => {}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Per-command gate for {@link suspendWaiting}. Commands provide an active gate.
|
|
28
|
+
* The default is inactive, so the helper is a no-op outside a command.
|
|
29
|
+
*/
|
|
30
|
+
export const WaitingGate = Context.Reference<WaitingGateShape>("effect-app/WaitingGate", {
|
|
31
|
+
defaultValue: () => inactiveWaitingGate
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
/** Build the gate one command owns. `onDepth` runs synchronously inside `add`. */
|
|
35
|
+
export const makeWaitingGate = (onDepth?: (depth: number) => void): WaitingGateShape => {
|
|
36
|
+
let depth = 0
|
|
37
|
+
let controller: WaitingGateController | undefined
|
|
38
|
+
return {
|
|
39
|
+
active: true,
|
|
40
|
+
get depth() {
|
|
41
|
+
return depth
|
|
42
|
+
},
|
|
43
|
+
add: (delta) =>
|
|
44
|
+
Effect.uninterruptible(Effect.gen(function*() {
|
|
45
|
+
depth += delta
|
|
46
|
+
if (depth < 0) depth = 0
|
|
47
|
+
const next = depth
|
|
48
|
+
onDepth?.(next)
|
|
49
|
+
if (controller) yield* controller(next)
|
|
50
|
+
})),
|
|
51
|
+
bind: (next) => {
|
|
52
|
+
const previous = controller
|
|
53
|
+
controller = next
|
|
54
|
+
return () => {
|
|
55
|
+
if (controller === next) controller = previous
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Run `self` while command chrome is quiet.
|
|
63
|
+
*
|
|
64
|
+
* The spinner and the waiting toast pause for `self` and resume when it
|
|
65
|
+
* finishes, including when it is interrupted. The command stays blocked for
|
|
66
|
+
* the whole run, so the button cannot start again.
|
|
67
|
+
*
|
|
68
|
+
* Outside a command the default gate is inactive and `self` runs unchanged.
|
|
69
|
+
*
|
|
70
|
+
* ```ts
|
|
71
|
+
* const decision = yield* suspendWaiting(ask(pickupDate))
|
|
72
|
+
* yield* close(orderId)
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export const suspendWaiting = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
|
76
|
+
Effect.uninterruptibleMask((restore) =>
|
|
77
|
+
Effect.gen(function*() {
|
|
78
|
+
const gate = yield* WaitingGate
|
|
79
|
+
yield* gate.add(1)
|
|
80
|
+
return yield* Effect.ensuring(restore(self), gate.add(-1))
|
|
81
|
+
})
|
|
82
|
+
)
|
package/src/withToast.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type * as Option from "./Option.ts"
|
|
|
7
7
|
import * as S from "./Schema.ts"
|
|
8
8
|
import { CurrentToastId, Toast, type ToastId } from "./toast.ts"
|
|
9
9
|
import { wrapEffect } from "./utils.ts"
|
|
10
|
+
import { WaitingGate } from "./waitingGate.ts"
|
|
10
11
|
|
|
11
12
|
export interface ToastOptions<A, E, Args extends ReadonlyArray<unknown>, WaiR, SucR, ErrR> {
|
|
12
13
|
stableToastId?: undefined | string | ((...args: Args) => string | undefined)
|
|
@@ -66,12 +67,57 @@ export class WithToast extends Context.Service<WithToast>()("WithToast", {
|
|
|
66
67
|
? stableToastId
|
|
67
68
|
: stableToastId ?? `wait-${Math.random().toString(36).slice(2)}`
|
|
68
69
|
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
const gate = yield* WaitingGate
|
|
71
|
+
let waitingFiber: Fiber.Fiber<void> | undefined
|
|
72
|
+
let toastShown = false
|
|
73
|
+
let unbind = () => {}
|
|
74
|
+
|
|
75
|
+
const armWaiting = () =>
|
|
76
|
+
Effect.gen(function*() {
|
|
77
|
+
if (waitingFiber !== undefined || t === null || toastId === undefined) return
|
|
78
|
+
waitingFiber = yield* Effect.forkChild(
|
|
79
|
+
Effect.sleep("1 seconds").pipe(
|
|
80
|
+
Effect.andThen(Effect.uninterruptible(Effect.gen(function*() {
|
|
81
|
+
toastShown = true
|
|
82
|
+
yield* toast.info(t, { id: toastId, timeout: Infinity, ...meta })
|
|
83
|
+
}))),
|
|
84
|
+
Effect.asVoid
|
|
85
|
+
)
|
|
86
|
+
)
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
const disarmWaiting = () =>
|
|
90
|
+
Effect.gen(function*() {
|
|
91
|
+
const fiber = waitingFiber
|
|
92
|
+
waitingFiber = undefined
|
|
93
|
+
if (fiber) yield* Fiber.interrupt(fiber)
|
|
94
|
+
if (toastShown && toastId !== undefined) {
|
|
95
|
+
toastShown = false
|
|
96
|
+
yield* toast.dismiss(toastId)
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
// An active gate pauses the toast while `suspendWaiting` is parked and
|
|
101
|
+
// starts a fresh one-second delay when work resumes. The inactive
|
|
102
|
+
// default keeps the original fork.
|
|
103
|
+
if (t !== null && gate.active) {
|
|
104
|
+
unbind = gate.bind((depth) => (depth === 0 ? armWaiting() : disarmWaiting()))
|
|
105
|
+
if (gate.depth === 0) yield* armWaiting()
|
|
106
|
+
} else if (t !== null) {
|
|
107
|
+
waitingFiber = yield* Effect.forkChild(
|
|
108
|
+
Effect.sleep("1 seconds").pipe(
|
|
109
|
+
Effect.andThen(toast.info(t, { id: toastId!, timeout: Infinity, ...meta })),
|
|
110
|
+
Effect.asVoid
|
|
111
|
+
)
|
|
72
112
|
)
|
|
73
|
-
|
|
74
|
-
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const interruptWaiting = Effect.uninterruptible(Effect.gen(function*() {
|
|
116
|
+
unbind()
|
|
117
|
+
const fiber = waitingFiber
|
|
118
|
+
waitingFiber = undefined
|
|
119
|
+
if (fiber) yield* Fiber.interrupt(fiber)
|
|
120
|
+
}))
|
|
75
121
|
|
|
76
122
|
return yield* self.pipe(
|
|
77
123
|
Effect.tap(Effect.fnUntraced(function*(a) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waitingGate.test.d.ts","sourceRoot":"","sources":["../waitingGate.test.ts"],"names":[],"mappings":""}
|
package/test/special.test.ts
CHANGED
|
@@ -1108,7 +1108,8 @@ describe("Post-processing integration — real Effect Schema types", () => {
|
|
|
1108
1108
|
const doc = specialJsonSchemaDocument(AppSchema.PositiveInt)
|
|
1109
1109
|
expect(doc.definitions["PositiveInt"]).toStrictEqual({
|
|
1110
1110
|
type: "integer",
|
|
1111
|
-
exclusiveMinimum: 0
|
|
1111
|
+
exclusiveMinimum: 0,
|
|
1112
|
+
maximum: Number.MAX_SAFE_INTEGER
|
|
1112
1113
|
})
|
|
1113
1114
|
})
|
|
1114
1115
|
|
|
@@ -1152,7 +1153,8 @@ describe("Post-processing integration — real Effect Schema types", () => {
|
|
|
1152
1153
|
const doc = specialJsonSchemaDocument(AppSchema.NonNegativeInt)
|
|
1153
1154
|
expect(doc.definitions["NonNegativeInt"]).toStrictEqual({
|
|
1154
1155
|
type: "integer",
|
|
1155
|
-
minimum: 0
|
|
1156
|
+
minimum: 0,
|
|
1157
|
+
maximum: Number.MAX_SAFE_INTEGER
|
|
1156
1158
|
})
|
|
1157
1159
|
})
|
|
1158
1160
|
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as Deferred from "effect/Deferred"
|
|
2
|
+
import * as Effect from "effect/Effect"
|
|
3
|
+
import * as Fiber from "effect/Fiber"
|
|
4
|
+
import { describe, expect, test } from "vitest"
|
|
5
|
+
import { makeWaitingGate, suspendWaiting, WaitingGate } from "../src/waitingGate.js"
|
|
6
|
+
|
|
7
|
+
const run = <A, E>(self: Effect.Effect<A, E, never>) => Effect.runPromise(self)
|
|
8
|
+
|
|
9
|
+
describe("suspendWaiting", () => {
|
|
10
|
+
test("brackets depth and tells the controller", async () => {
|
|
11
|
+
const depths: Array<number> = []
|
|
12
|
+
const gate = makeWaitingGate((depth) => depths.push(depth))
|
|
13
|
+
gate.bind((depth) => Effect.sync(() => depths.push(depth)))
|
|
14
|
+
|
|
15
|
+
await run(
|
|
16
|
+
suspendWaiting(Effect.sync(() => {
|
|
17
|
+
expect(gate.depth).toBe(1)
|
|
18
|
+
}))
|
|
19
|
+
.pipe(Effect.provideService(WaitingGate, gate))
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
expect(gate.depth).toBe(0)
|
|
23
|
+
expect(depths).toEqual([1, 1, 0, 0])
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
test("nests", async () => {
|
|
27
|
+
const gate = makeWaitingGate()
|
|
28
|
+
await run(
|
|
29
|
+
suspendWaiting(suspendWaiting(Effect.sync(() => {
|
|
30
|
+
expect(gate.depth).toBe(2)
|
|
31
|
+
})))
|
|
32
|
+
.pipe(Effect.provideService(WaitingGate, gate))
|
|
33
|
+
)
|
|
34
|
+
expect(gate.depth).toBe(0)
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
test("restores depth when the effect is interrupted", async () => {
|
|
38
|
+
const gate = makeWaitingGate()
|
|
39
|
+
await run(Effect.gen(function*() {
|
|
40
|
+
const entered = yield* Deferred.make<void>()
|
|
41
|
+
const fiber = yield* suspendWaiting(Effect.gen(function*() {
|
|
42
|
+
yield* Deferred.succeed(entered, undefined)
|
|
43
|
+
return yield* Effect.never
|
|
44
|
+
}))
|
|
45
|
+
.pipe(
|
|
46
|
+
Effect.provideService(WaitingGate, gate),
|
|
47
|
+
Effect.forkChild
|
|
48
|
+
)
|
|
49
|
+
yield* Deferred.await(entered)
|
|
50
|
+
expect(gate.depth).toBe(1)
|
|
51
|
+
yield* Fiber.interrupt(fiber)
|
|
52
|
+
expect(gate.depth).toBe(0)
|
|
53
|
+
}))
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
test("does nothing on the default gate", async () => {
|
|
57
|
+
await run(Effect.gen(function*() {
|
|
58
|
+
const gate = yield* WaitingGate
|
|
59
|
+
expect(gate.active).toBe(false)
|
|
60
|
+
yield* suspendWaiting(Effect.void)
|
|
61
|
+
expect(gate.depth).toBe(0)
|
|
62
|
+
}))
|
|
63
|
+
})
|
|
64
|
+
})
|