effect-app 0.180.4 → 0.180.6

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,17 @@
1
1
  # @effect-app/prelude
2
2
 
3
+ ## 0.180.6
4
+
5
+ ### Patch Changes
6
+
7
+ - dba2711: fix generic
8
+
9
+ ## 0.180.5
10
+
11
+ ### Patch Changes
12
+
13
+ - e470bd5: add forkDaemon and forkScoped in FiberBag.
14
+
3
15
  ## 0.180.4
4
16
 
5
17
  ### Patch Changes
@@ -8,10 +8,17 @@ var _core = require("@effect-app/core");
8
8
  var _service = require("../service.cjs");
9
9
  const make = _core.Effect.gen(function* ($) {
10
10
  const ref = yield* $(_core.Ref.make([]));
11
+ const join = ref.pipe(_core.Ref.get, _core.Effect.tap(bag => _core.Effect.logDebug("[FiberBag] Joining " + bag.length + " fibers")), _core.Effect.andThen(_core.Fiber.joinAll));
12
+ const add = (...fibers) => ref.pipe(_core.Ref.update(_ => [..._, ...fibers]));
13
+ const addAll = fibers => ref.pipe(_core.Ref.update(_ => [..._, ...fibers]));
14
+ const forkDaemon = effect => effect.pipe(_core.Effect.forkDaemon, _core.Effect.andThen(add));
15
+ const forkScoped = effect => effect.pipe(_core.Effect.forkScoped, _core.Effect.andThen(add));
11
16
  return {
12
- join: ref.pipe(_core.Ref.get, _core.Effect.tap(bag => _core.Effect.logDebug("[FiberBag] Joining " + bag.length + " fibers")), _core.Effect.andThen(_core.Fiber.joinAll)),
13
- add: (...fibers) => ref.pipe(_core.Ref.update(_ => [..._, ...fibers])),
14
- addAll: fibers => ref.pipe(_core.Ref.update(_ => [..._, ...fibers]))
17
+ join,
18
+ forkDaemon,
19
+ forkScoped,
20
+ add,
21
+ addAll
15
22
  };
16
23
  });
17
24
  /**
@@ -22,6 +29,8 @@ const make = _core.Effect.gen(function* ($) {
22
29
  class FiberBag extends (0, _service.TagClassMakeId)("FiberBag", make)() {
23
30
  static Live = this.toLayer();
24
31
  static JoinLive = this.pipe(_core.Effect.andThen(_ => _.join), _core.Layer.effectDiscard, _core.Layer.provide(this.Live));
32
+ static forkScoped = effect => _core.Effect.andThen(this, _ => _.forkScoped(effect));
33
+ static forkDaemon = effect => _core.Effect.andThen(this, _ => _.forkDaemon(effect));
25
34
  }
26
35
  exports.FiberBag = FiberBag;
27
36
  //# sourceMappingURL=FiberBag.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FiberBag.cjs","names":["_core","require","_service","make","Effect","gen","$","ref","Ref","join","pipe","get","tap","bag","logDebug","length","andThen","Fiber","joinAll","add","fibers","update","_","addAll","FiberBag","TagClassMakeId","Live","toLayer","JoinLive","Layer","effectDiscard","provide"],"sources":["../../src/services/FiberBag.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA,MAAME,IAAI,GAAGC,YAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;EACjC,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,SAAG,CAACL,IAAI,CAAsC,EAAE,CAAC,CAAC;EACvE,OAAO;IACLM,IAAI,EAAEF,GAAG,CAACG,IAAI,CACZF,SAAG,CAACG,GAAG,EACPP,YAAM,CAACQ,GAAG,CAAEC,GAAG,IAAKT,YAAM,CAACU,QAAQ,CAAC,qBAAqB,GAAGD,GAAG,CAACE,MAAM,GAAG,SAAS,CAAC,CAAC,EACpFX,YAAM,CAACY,OAAO,CAACC,WAAK,CAACC,OAAO,CAAC,CAC9B;IACDC,GAAG,EAAEA,CAAC,GAAGC,MAAkC,KAAKb,GAAG,CAACG,IAAI,CAACF,SAAG,CAACa,MAAM,CAAEC,CAAC,IAAK,CAAC,GAAGA,CAAC,EAAE,GAAGF,MAAM,CAAC,CAAC,CAAC;IAC9FG,MAAM,EAAGH,MAA2C,IAAKb,GAAG,CAACG,IAAI,CAACF,SAAG,CAACa,MAAM,CAAEC,CAAC,IAAK,CAAC,GAAGA,CAAC,EAAE,GAAGF,MAAM,CAAC,CAAC;GACvG;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOI,QAAS,SAAQ,IAAAC,uBAAc,EAAC,UAAU,EAAEtB,IAAI,CAAC,EAAY;EACxE,OAAgBuB,IAAI,GAAG,IAAI,CAACC,OAAO,EAAE;EACrC,OAAgBC,QAAQ,GAAG,IAAI,CAAClB,IAAI,CAACN,YAAM,CAACY,OAAO,CAAEM,CAAC,IAAKA,CAAC,CAACb,IAAI,CAAC,EAAEoB,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"FiberBag.cjs","names":["_core","require","_service","make","Effect","gen","$","ref","Ref","join","pipe","get","tap","bag","logDebug","length","andThen","Fiber","joinAll","add","fibers","update","_","addAll","forkDaemon","effect","forkScoped","FiberBag","TagClassMakeId","Live","toLayer","JoinLive","Layer","effectDiscard","provide"],"sources":["../../src/services/FiberBag.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA,MAAME,IAAI,GAAGC,YAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;EACjC,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,SAAG,CAACL,IAAI,CAAsC,EAAE,CAAC,CAAC;EACvE,MAAMM,IAAI,GAAGF,GAAG,CAACG,IAAI,CACnBF,SAAG,CAACG,GAAG,EACPP,YAAM,CAACQ,GAAG,CAAEC,GAAG,IAAKT,YAAM,CAACU,QAAQ,CAAC,qBAAqB,GAAGD,GAAG,CAACE,MAAM,GAAG,SAAS,CAAC,CAAC,EACpFX,YAAM,CAACY,OAAO,CAACC,WAAK,CAACC,OAAO,CAAC,CAC9B;EACD,MAAMC,GAAG,GAAGA,CAAC,GAAGC,MAAkC,KAAKb,GAAG,CAACG,IAAI,CAACF,SAAG,CAACa,MAAM,CAAEC,CAAC,IAAK,CAAC,GAAGA,CAAC,EAAE,GAAGF,MAAM,CAAC,CAAC,CAAC;EACrG,MAAMG,MAAM,GAAIH,MAA2C,IAAKb,GAAG,CAACG,IAAI,CAACF,SAAG,CAACa,MAAM,CAAEC,CAAC,IAAK,CAAC,GAAGA,CAAC,EAAE,GAAGF,MAAM,CAAC,CAAC,CAAC;EAE9G,MAAMI,UAAU,GAAOC,MAA+B,IAAKA,MAAM,CAACf,IAAI,CAACN,YAAM,CAACoB,UAAU,EAAEpB,YAAM,CAACY,OAAO,CAACG,GAAG,CAAC,CAAC;EAC9G,MAAMO,UAAU,GAAOD,MAA+B,IAAKA,MAAM,CAACf,IAAI,CAACN,YAAM,CAACsB,UAAU,EAAEtB,YAAM,CAACY,OAAO,CAACG,GAAG,CAAC,CAAC;EAE9G,OAAO;IACLV,IAAI;IACJe,UAAU;IACVE,UAAU;IACVP,GAAG;IACHI;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOI,QAAS,SAAQ,IAAAC,uBAAc,EAAC,UAAU,EAAEzB,IAAI,CAAC,EAAY;EACxE,OAAgB0B,IAAI,GAAG,IAAI,CAACC,OAAO,EAAE;EACrC,OAAgBC,QAAQ,GAAG,IAAI,CAACrB,IAAI,CAACN,YAAM,CAACY,OAAO,CAAEM,CAAC,IAAKA,CAAC,CAACb,IAAI,CAAC,EAAEuB,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC;EAElH,OAAyBH,UAAU,GAAOD,MAA+B,IACvErB,YAAM,CAACY,OAAO,CAAC,IAAI,EAAGM,CAAC,IAAKA,CAAC,CAACI,UAAU,CAACD,MAAM,CAAC,CAAC;EACnD,OAAyBD,UAAU,GAAOC,MAA+B,IACvErB,YAAM,CAACY,OAAO,CAAC,IAAI,EAAGM,CAAC,IAAKA,CAAC,CAACE,UAAU,CAACC,MAAM,CAAC,CAAC"}
@@ -2,35 +2,47 @@ import { Effect, Fiber, Layer } from "@effect-app/core";
2
2
  declare const FiberBag_base: {
3
3
  new (service: {
4
4
  join: Effect.Effect<void, never, never>;
5
+ forkDaemon: <R>(effect: Effect<never, never, R>) => Effect.Effect<void, never, R>;
6
+ forkScoped: <R_1>(effect: Effect<never, never, R_1>) => Effect.Effect<void, never, R_1 | import("effect/Scope").Scope>;
5
7
  add: (...fibers: Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
6
8
  addAll: (fibers: readonly Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
7
9
  }): Readonly<{
8
10
  join: Effect.Effect<void, never, never>;
11
+ forkDaemon: <R>(effect: Effect<never, never, R>) => Effect.Effect<void, never, R>;
12
+ forkScoped: <R_1>(effect: Effect<never, never, R_1>) => Effect.Effect<void, never, R_1 | import("effect/Scope").Scope>;
9
13
  add: (...fibers: Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
10
14
  addAll: (fibers: readonly Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
11
15
  }> & import("effect/Context").TagClassShape<"FiberBag", {
12
16
  join: Effect.Effect<void, never, never>;
17
+ forkDaemon: <R>(effect: Effect<never, never, R>) => Effect.Effect<void, never, R>;
18
+ forkScoped: <R_1>(effect: Effect<never, never, R_1>) => Effect.Effect<void, never, R_1 | import("effect/Scope").Scope>;
13
19
  add: (...fibers: Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
14
20
  addAll: (fibers: readonly Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
15
21
  }>;
16
22
  toLayer: {
17
23
  (): Layer<FiberBag, never, never>;
18
- <E, R>(eff: Effect<{
24
+ <E, R_2>(eff: Effect<{
19
25
  join: Effect.Effect<void, never, never>;
26
+ forkDaemon: <R>(effect: Effect<never, never, R>) => Effect.Effect<void, never, R>;
27
+ forkScoped: <R_1>(effect: Effect<never, never, R_1>) => Effect.Effect<void, never, R_1 | import("effect/Scope").Scope>;
20
28
  add: (...fibers: Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
21
29
  addAll: (fibers: readonly Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
22
- }, E, R>): Layer<FiberBag, E, R>;
30
+ }, E, R_2>): Layer<FiberBag, E, R_2>;
23
31
  };
24
32
  toLayerScoped: {
25
33
  (): Layer<FiberBag, never, never>;
26
- <E_1, R_1>(eff: Effect<{
34
+ <E_1, R_3>(eff: Effect<{
27
35
  join: Effect.Effect<void, never, never>;
36
+ forkDaemon: <R>(effect: Effect<never, never, R>) => Effect.Effect<void, never, R>;
37
+ forkScoped: <R_1>(effect: Effect<never, never, R_1>) => Effect.Effect<void, never, R_1 | import("effect/Scope").Scope>;
28
38
  add: (...fibers: Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
29
39
  addAll: (fibers: readonly Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
30
- }, E_1, R_1>): Layer<FiberBag, E_1, Exclude<R_1, import("effect/Scope").Scope>>;
40
+ }, E_1, R_3>): Layer<FiberBag, E_1, Exclude<R_3, import("effect/Scope").Scope>>;
31
41
  };
32
42
  wrap: (service: {
33
43
  join: Effect.Effect<void, never, never>;
44
+ forkDaemon: <R>(effect: Effect<never, never, R>) => Effect.Effect<void, never, R>;
45
+ forkScoped: <R_1>(effect: Effect<never, never, R_1>) => Effect.Effect<void, never, R_1 | import("effect/Scope").Scope>;
34
46
  add: (...fibers: Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
35
47
  addAll: (fibers: readonly Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, never>;
36
48
  }) => FiberBag;
@@ -40,6 +52,8 @@ declare const FiberBag_base: {
40
52
  join: Effect.Effect<void, never, FiberBag>;
41
53
  };
42
54
  } & {
55
+ forkDaemon: (effect: Effect<never, never, unknown>) => Effect.Effect<void, never, unknown>;
56
+ forkScoped: (effect: Effect<never, never, unknown>) => Effect.Effect<void, never, unknown>;
43
57
  add: (...args: Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, FiberBag>;
44
58
  addAll: (fibers: readonly Fiber.Fiber<void, never>[]) => Effect.Effect<void, never, FiberBag>;
45
59
  };
@@ -51,6 +65,8 @@ declare const FiberBag_base: {
51
65
  export declare class FiberBag extends FiberBag_base {
52
66
  static readonly Live: Layer<FiberBag, never, never>;
53
67
  static readonly JoinLive: Layer.Layer<never, never, never>;
68
+ static readonly forkScoped: <R>(effect: Effect<never, never, R>) => Effect.Effect<void, never, FiberBag | import("effect/Scope").Scope | R>;
69
+ static readonly forkDaemon: <R>(effect: Effect<never, never, R>) => Effect.Effect<void, never, FiberBag | R>;
54
70
  }
55
71
  export {};
56
72
  //# sourceMappingURL=FiberBag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FiberBag.d.ts","sourceRoot":"","sources":["../../src/services/FiberBag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAO,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgB5D;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,aAA4C;IACxE,MAAM,CAAC,QAAQ,CAAC,IAAI,gCAAiB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAA0F;CACnH"}
1
+ {"version":3,"file":"FiberBag.d.ts","sourceRoot":"","sources":["../../src/services/FiberBag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAO,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyB5D;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,aAA4C;IACxE,MAAM,CAAC,QAAQ,CAAC,IAAI,gCAAiB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAA0F;IAElH,gBAAyB,UAAU,kHACgB;IACnD,gBAAyB,UAAU,mFACgB;CACpD"}
@@ -2,10 +2,17 @@ import { Effect, Fiber, Layer, Ref } from "@effect-app/core";
2
2
  import { TagClassMakeId } from "../service.js";
3
3
  const make = Effect.gen(function* ($) {
4
4
  const ref = yield* $(Ref.make([]));
5
+ const join = ref.pipe(Ref.get, Effect.tap((bag) => Effect.logDebug("[FiberBag] Joining " + bag.length + " fibers")), Effect.andThen(Fiber.joinAll));
6
+ const add = (...fibers) => ref.pipe(Ref.update((_) => [..._, ...fibers]));
7
+ const addAll = (fibers) => ref.pipe(Ref.update((_) => [..._, ...fibers]));
8
+ const forkDaemon = (effect) => effect.pipe(Effect.forkDaemon, Effect.andThen(add));
9
+ const forkScoped = (effect) => effect.pipe(Effect.forkScoped, Effect.andThen(add));
5
10
  return {
6
- join: ref.pipe(Ref.get, Effect.tap((bag) => Effect.logDebug("[FiberBag] Joining " + bag.length + " fibers")), Effect.andThen(Fiber.joinAll)),
7
- add: (...fibers) => ref.pipe(Ref.update((_) => [..._, ...fibers])),
8
- addAll: (fibers) => ref.pipe(Ref.update((_) => [..._, ...fibers]))
11
+ join,
12
+ forkDaemon,
13
+ forkScoped,
14
+ add,
15
+ addAll
9
16
  };
10
17
  });
11
18
  /**
@@ -16,5 +23,7 @@ const make = Effect.gen(function* ($) {
16
23
  export class FiberBag extends TagClassMakeId("FiberBag", make)() {
17
24
  static Live = this.toLayer();
18
25
  static JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
26
+ static forkScoped = (effect) => Effect.andThen(this, (_) => _.forkScoped(effect));
27
+ static forkDaemon = (effect) => Effect.andThen(this, (_) => _.forkDaemon(effect));
19
28
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmliZXJCYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvRmliZXJCYWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO0lBQ2pDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFzQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3ZFLE9BQU87UUFDTCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FDWixHQUFHLENBQUMsR0FBRyxFQUNQLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMscUJBQXFCLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxFQUNwRixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDOUI7UUFDRCxHQUFHLEVBQUUsQ0FBQyxHQUFHLE1BQWtDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUYsTUFBTSxFQUFFLENBQUMsTUFBMkMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUN4RyxDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFFBQVMsU0FBUSxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFZO0lBQ3hFLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3JDLE1BQU0sQ0FBVSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBIn0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmliZXJCYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvRmliZXJCYWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO0lBQ2pDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFzQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3ZFLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQ25CLEdBQUcsQ0FBQyxHQUFHLEVBQ1AsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEVBQ3BGLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUM5QixDQUFBO0lBQ0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQWtDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNyRyxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQTJDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUU5RyxNQUFNLFVBQVUsR0FBRyxDQUFJLE1BQStCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDOUcsTUFBTSxVQUFVLEdBQUcsQ0FBSSxNQUErQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBRTlHLE9BQU87UUFDTCxJQUFJO1FBQ0osVUFBVTtRQUNWLFVBQVU7UUFDVixHQUFHO1FBQ0gsTUFBTTtLQUNQLENBQUE7QUFDSCxDQUFDLENBQUMsQ0FBQTtBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sUUFBUyxTQUFRLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQVk7SUFDeEUsTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDckMsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFFbEgsTUFBTSxDQUFtQixVQUFVLEdBQUcsQ0FBSSxNQUErQixFQUFFLEVBQUUsQ0FDM0UsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNuRCxNQUFNLENBQW1CLFVBQVUsR0FBRyxDQUFJLE1BQStCLEVBQUUsRUFBRSxDQUMzRSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-app",
3
- "version": "0.180.4",
3
+ "version": "0.180.6",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -13,9 +13,9 @@
13
13
  "ts-pattern": "^5.0.8",
14
14
  "uuid": "^9.0.1",
15
15
  "validator": "^13.11.0",
16
- "@effect-app/fluent-extensions": "0.143.1",
17
16
  "@effect-app/core": "0.150.2",
18
- "@effect-app/schema": "0.202.2"
17
+ "@effect-app/schema": "0.202.2",
18
+ "@effect-app/fluent-extensions": "0.143.1"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@babel/cli": "^7.23.9",
@@ -3,14 +3,23 @@ import { TagClassMakeId } from "../service.js"
3
3
 
4
4
  const make = Effect.gen(function*($) {
5
5
  const ref = yield* $(Ref.make<readonly Fiber.Fiber<void, never>[]>([]))
6
+ const join = ref.pipe(
7
+ Ref.get,
8
+ Effect.tap((bag) => Effect.logDebug("[FiberBag] Joining " + bag.length + " fibers")),
9
+ Effect.andThen(Fiber.joinAll)
10
+ )
11
+ const add = (...fibers: Fiber.Fiber<void, never>[]) => ref.pipe(Ref.update((_) => [..._, ...fibers]))
12
+ const addAll = (fibers: readonly Fiber.Fiber<void, never>[]) => ref.pipe(Ref.update((_) => [..._, ...fibers]))
13
+
14
+ const forkDaemon = <R>(effect: Effect<never, never, R>) => effect.pipe(Effect.forkDaemon, Effect.andThen(add))
15
+ const forkScoped = <R>(effect: Effect<never, never, R>) => effect.pipe(Effect.forkScoped, Effect.andThen(add))
16
+
6
17
  return {
7
- join: ref.pipe(
8
- Ref.get,
9
- Effect.tap((bag) => Effect.logDebug("[FiberBag] Joining " + bag.length + " fibers")),
10
- Effect.andThen(Fiber.joinAll)
11
- ),
12
- add: (...fibers: Fiber.Fiber<void, never>[]) => ref.pipe(Ref.update((_) => [..._, ...fibers])),
13
- addAll: (fibers: readonly Fiber.Fiber<void, never>[]) => ref.pipe(Ref.update((_) => [..._, ...fibers]))
18
+ join,
19
+ forkDaemon,
20
+ forkScoped,
21
+ add,
22
+ addAll
14
23
  }
15
24
  })
16
25
 
@@ -22,4 +31,9 @@ const make = Effect.gen(function*($) {
22
31
  export class FiberBag extends TagClassMakeId("FiberBag", make)<FiberBag>() {
23
32
  static readonly Live = this.toLayer()
24
33
  static readonly JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live))
34
+
35
+ static override readonly forkScoped = <R>(effect: Effect<never, never, R>) =>
36
+ Effect.andThen(this, (_) => _.forkScoped(effect))
37
+ static override readonly forkDaemon = <R>(effect: Effect<never, never, R>) =>
38
+ Effect.andThen(this, (_) => _.forkDaemon(effect))
25
39
  }