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 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
- export declare const ExtendTaggedUnion: <Members extends TaggedUnionMembers>(schema: S.Union<Members>) => TaggedUnionWithTags<Members>;
268
- export declare const TaggedUnion: <Members extends TaggedUnionMembers>(members: Members) => TaggedUnionWithTags<Members>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAA;AAElC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,KAAK,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE5E,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,KAAK,WAAW,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC1G,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAuBhF;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAEvD;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAE1D,cAAc,eAAe,CAAA;AAE7B,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE3J,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClI,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAEjD,8EAA8E;AAC9E,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAA;AAE5D,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAAC,CAAC,YAAsD,CAAA;AACtG,eAAO,MAAM,+BAA+B,EAAE,OAAO,CAAC,CAAC,mBAEtD,CAAA;AACD,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAA;AAExD;;;;;GAKG;AACH,MAAM,WAAW,IAAK,SAAQ,CAAC,CAAC,IAAI;CAAG;AACvC,eAAO,MAAM,IAAI,EAAE,IAAa,CAAA;AAMhC,wBAAgB,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,EACzD,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,CAAC,CAuDhB;AAED,MAAM,WAAW,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAE,SACtD,CAAC,CAAC,MAAM,CACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EACtB,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAC/B,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAC/B,GAAG,CAAC,OAAO,EAEX,MAAM,CAAC,MAAM,CAAC,EACd,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAChC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,EAAE,EACzB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KACpD,GAAG,SAAS,GACZ,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAGjC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;CACzD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAY,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;IACpC,KAAY,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9D,KAAY,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACpE,KAAY,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACtF,KAAY,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAEtF,KAAY,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAC1F,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtB,KAAY,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CAC7D;AAED,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACxC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,wDAAwD,CAAA;IAC1E,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GACpH,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;KAAE,CAAA;CAAE,GAAG,OAAO,GAC1E,wBAAwB,CAAC,CAAC,CAAC,CAAA;AAE/B,wBAAgB,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAEvF;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,EACzG,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,MAAM,GACb,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAE3B;AACD,MAAM,WAAW,YAAY,CAAC,GAAG,SAAS,SAAS,CAAC,YAAY,EAAE,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAC9F,SAAQ,MAAM,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC;CACtD;AACF,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC;IACpC,KAAY,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;IACpC,KAAY,IAAI,CAAC,GAAG,SAAS,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAC7F;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,CAAC,CAClC,CAAA;IACD,KAAY,OAAO,CAAC,GAAG,SAAS,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CACnG;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,CAAC,CAClC,CAAA;IACD,KAAY,gBAAgB,CAAC,GAAG,SAAS,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IACxF,CAAC,CAAC,MAAM,CAAC,gBAAgB,CACvB;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,CAAC,CAClC,CAAA;IACH,KAAY,gBAAgB,CAAC,GAAG,SAAS,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IACxF,CAAC,CAAC,MAAM,CAAC,gBAAgB,CACvB;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,CAAC,CAClC,CAAA;IACH,KAAY,MAAM,CAAC,GAAG,SAAS,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CACjG;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,CAAC,CAClC,CAAA;IACD,KAAY,GAAG,CAAC,GAAG,SAAS,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAC3F;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,CAAC,CAClC,CAAA;CACF;AAED,wBAAgB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,GAAG,EAClE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,GACX,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAEvB;AACD,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAY,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA;IAC9B,KAAY,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/E,KAAY,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CACtF;AAED,eAAO,MAAM,MAAM,eAAW,CAAA;AAC9B,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC,MAAM,WAAW,gBAAgB;IAC/B,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAA;CACvB;AAED,eAAO,MAAM,KAAK,iGAA+B,CAAA;AAEjD,MAAM,MAAM,KAAK,GAAG,SAAS,CAAA;AAE7B,eAAO,MAAM,WAAW,mQAAqC,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG,eAAe,CAAA;AAqCzC,eAAO,MAAM,IAAI,GACf,OAAO,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC,QAEvF,OAAO,KAMR,CAAC,CAAC,QAAQ,CACb,GACG,KAAK,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GACzD,CACF,CAAA;AAEH,KAAK,kBAAkB,GAAG,qBAAqB,CAC7C,CAAC,CAAC,GAAG,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CACrD,CAAA;AAED,KAAK,eAAe,CAAC,OAAO,SAAS,kBAAkB,IAAI,CAAC,CAAC,QAAQ,CACnE;KACG,KAAK,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;CACzD,CACF,CAAA;AAED,KAAK,kBAAkB,CAAC,CAAC,EAAE,OAAO,SAAS,kBAAkB,IAAI;KAC9D,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;CAC1E,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA;AAEnB,KAAK,iBAAiB,CACpB,OAAO,SAAS,kBAAkB,EAClC,CAAC,SAAS,MAAM,EAChB,CAAC,IAEC;IACA,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAC3D,MAAM,EAAE,CAAC,KACN,MAAM,IAAI,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;KAAE;CACpD,GACC;IACA,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAClF,IAAI,EAAE,IAAI,KACP,CACH,MAAM,EAAE,CAAC,KACN,MAAM,IAAI,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;SAAE,CAAC;KAAE,CAAA;CAC5G,CAAA;AAEH,KAAK,cAAc,CACjB,OAAO,SAAS,kBAAkB,EAClC,CAAC,SAAS,MAAM,IAEd;IACA,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAC3D,CAAC,SAAS;QAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;KAAE,EACxD,MAAM,EAAE,CAAC,KAAK,MAAM,IAAI,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;KAAE;CAC/D,GACC;IACA,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,SAAS,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAClF,IAAI,EAAE,IAAI,KACP,CAAC,CAAC,SAAS;QAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;KAAE,EAC5D,MAAM,EAAE,CAAC,KACN,MAAM,IAAI,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;SAAE,CAAC;KAAE,CAAA;CAC5G,CAAA;AAEH,KAAK,mBAAmB,CAAC,OAAO,SAAS,kBAAkB,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAChG,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IACvC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACtF,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,EAAE,OAAO,CAAC,EAC5E,QAAQ,EAAE,CAAC,KACR,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACtC,CAAA;AA0BD,eAAO,MAAM,iBAAiB,GAAI,OAAO,SAAS,kBAAkB,UAC1D,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KACvB,mBAAmB,CAAC,OAAO,CAAsC,CAAA;AAEpE,eAAO,MAAM,WAAW,GACtB,OAAO,SAAS,kBAAkB,WACzB,OAAO,KAAG,mBAAmB,CAAC,OAAO,CAAgD,CAAA"}
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) => extendTaggedUnionWithTags(S.Union(members));
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQUNsQyxPQUFPLEtBQUssa0JBQWtCLE1BQU0scUJBQXFCLENBQUE7QUFNekQsT0FBTyxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQTJCLE1BQU0sbUJBQW1CLENBQUE7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhHLE9BQU8sRUFBRSxXQUFXLElBQUksWUFBWSxFQUF1QyxNQUFNLHlCQUF5QixDQUFBO0FBRTFHLE9BQU8sS0FBSyxTQUFTLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUE2QixNQUFNLFlBQVksQ0FBQTtBQUVoRiw4RUFBOEU7QUFDOUUsbURBQW1EO0FBQ25ELEVBQUU7QUFDRiwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLG1EQUFtRDtBQUNuRCx1RUFBdUU7QUFDdkUsa0JBQWtCO0FBQ2xCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsMEVBQTBFO0FBQzFFLHNFQUFzRTtBQUN0RSxzREFBc0Q7QUFDdEQsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSxxRUFBcUU7QUFDckUsc0VBQXNFO0FBQ3RFLHlFQUF5RTtBQUN6RSx3RUFBd0U7QUFDeEUsOEVBQThFO0FBRTlFOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXREOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRW5EOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV0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
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==
@@ -1 +1 @@
1
- {"version":3,"file":"withToast.d.ts","sourceRoot":"","sources":["../src/withToast.ts"],"names":[],"mappings":"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"}
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 waitingFiber = t === null ? undefined : yield* Effect.forkChild(Effect.sleep("1 seconds").pipe(Effect.andThen(toast.info(t, { id: toastId, timeout: Infinity, ...meta }))));
26
- const interruptWaiting = waitingFiber ? Fiber.interrupt(waitingFiber) : Effect.void;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRvYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dpdGhUb2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUVuQyxPQUFPLEtBQUssQ0FBQyxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxZQUFZLENBQUE7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQWtDdkMsbUVBQW1FO0FBQ25FLE1BQU0sT0FBTyxTQUFVLFNBQVEsT0FBTyxDQUFDLE9BQU8sRUFBYSxDQUFDLFdBQVcsRUFBRTtJQUN2RSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQzFCLE9BQU8sQ0FDTCxPQUFtRCxFQUNuRCxFQUFFLENBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUE0QixFQUFFLEdBQUcsSUFBVTtZQUNyRSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQTtZQUU1QyxNQUFNLGFBQWEsR0FBRyxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssVUFBVTtnQkFDL0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFBO1lBRXpCLE1BQU0sU0FBUyxHQUFXLEtBQUssQ0FBQyxD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
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.1",
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": "^4.1.7"
25
+ "vitest": "^5.0.5"
26
26
  },
27
27
  "peerDependencies": {
28
- "effect": "^4.0.1"
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: S.Union<Members>
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: S.Union<Members>
514
+ schema: UniqueTaggedUnion<Members>
495
515
  ): TaggedUnionWithTags<Members> => extendTaggedUnionWithTags(schema)
496
516
 
497
517
  export const TaggedUnion = <
498
518
  Members extends TaggedUnionMembers
499
- >(members: Members): TaggedUnionWithTags<Members> => extendTaggedUnionWithTags(S.Union(members))
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 waitingFiber = t === null ? undefined : yield* Effect.forkChild(
70
- Effect.sleep("1 seconds").pipe(
71
- Effect.andThen(toast.info(t, { id: toastId!, timeout: Infinity, ...meta }))
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
- const interruptWaiting = waitingFiber ? Fiber.interrupt(waitingFiber) : Effect.void
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":""}
@@ -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
+ })