effect-app 0.201.5 → 0.202.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @effect-app/prelude
2
2
 
3
+ ## 0.202.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c0a2bb1: rename FiberBag to MainFiberSet
8
+
9
+ ## 0.201.6
10
+
11
+ ### Patch Changes
12
+
13
+ - 4a242e9: use built in FiberSet.join
14
+
3
15
  ## 0.201.5
4
16
 
5
17
  ### Patch Changes
@@ -3,16 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.FiberBag = void 0;
6
+ exports.MainFiberSet = void 0;
7
7
  var _core = require("@effect-app/core");
8
8
  const make = _core.Effect.gen(function* ($) {
9
9
  const set = yield* $(_core.FiberSet.make());
10
- const join = _core.Effect.sync(() => [...set]).pipe(_core.Effect.tap(bag => _core.Effect.logDebug("[FiberBag] Joining " + bag.length + " fibers")), _core.Effect.andThen(_core.Fiber.joinAll));
11
10
  const add = (...fibers) => _core.Effect.sync(() => fibers.forEach(_ => _core.FiberSet.unsafeAdd(set, _)));
12
11
  const addAll = fibers => _core.Effect.sync(() => fibers.forEach(_ => _core.FiberSet.unsafeAdd(set, _)));
13
12
  const run = _core.FiberSet.run(set);
14
13
  return {
15
- join,
14
+ join: _core.FiberSet.join(set),
16
15
  run,
17
16
  add,
18
17
  addAll
@@ -20,13 +19,13 @@ const make = _core.Effect.gen(function* ($) {
20
19
  });
21
20
  /**
22
21
  * Whenever you fork long running fibers e.g via `Effect.forkScoped` or `Effect.forkDaemon`
23
- * you should register these long running fibers in a `FiberBag`, and join them at the end of your main program.
22
+ * you should register these long running fibers in a FiberSet, and join them at the end of your main program.
24
23
  * This way any errors will blow up the main program instead of fibers dying unknowingly.
25
24
  */
26
- class FiberBag extends _core.Context.TagMakeId("FiberBag", make)() {
25
+ class MainFiberSet extends _core.Context.TagMakeId("MainFiberSet", make)() {
27
26
  static Live = this.toLayerScoped();
28
27
  static JoinLive = this.pipe(_core.Effect.andThen(_ => _.join), _core.Layer.effectDiscard, _core.Layer.provide(this.Live));
29
28
  static run = self => this.use(_ => _.run(self));
30
29
  }
31
- exports.FiberBag = FiberBag;
32
- //# sourceMappingURL=FiberBag.cjs.map
30
+ exports.MainFiberSet = MainFiberSet;
31
+ //# sourceMappingURL=MainFiberSet.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainFiberSet.cjs","names":["_core","require","make","Effect","gen","$","set","FiberSet","add","fibers","sync","forEach","_","unsafeAdd","addAll","run","join","MainFiberSet","Context","TagMakeId","Live","toLayerScoped","JoinLive","pipe","andThen","Layer","effectDiscard","provide","self","use"],"sources":["../../src/services/MainFiberSet.ts"],"sourcesContent":[null],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAKA,MAAMC,IAAI,GAAGC,YAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;EACjC,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,cAAQ,CAACL,IAAI,EAAgB,CAAC;EACnD,MAAMM,GAAG,GAAGA,CAAC,GAAGC,MAA0C,KACxDN,YAAM,CAACO,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,cAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EACtE,MAAME,MAAM,GAAIL,MAAmD,IACjEN,YAAM,CAACO,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,cAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EAEtE,MAAMG,GAAG,GAAGR,cAAQ,CAACQ,GAAG,CAACT,GAAG,CAAC;EAE7B,OAAO;IACLU,IAAI,EAAET,cAAQ,CAACS,IAAI,CAACV,GAAG,CAAC;IACxBS,GAAG;IACHP,GAAG;IACHM;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOG,YAAa,SAAQC,aAAO,CAACC,SAAS,CAAC,cAAc,EAAEjB,IAAI,CAAC,EAAgB;EACvF,OAAgBkB,IAAI,GAAG,IAAI,CAACC,aAAa,EAAE;EAC3C,OAAgBC,QAAQ,GAAG,IAAI,CAACC,IAAI,CAACpB,YAAM,CAACqB,OAAO,CAAEZ,CAAC,IAAKA,CAAC,CAACI,IAAI,CAAC,EAAES,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACP,IAAI,CAAC,CAAC;EAClH,OAAgBL,GAAG,GAAOa,IAA6B,IAAK,IAAI,CAACC,GAAG,CAAEjB,CAAC,IAAKA,CAAC,CAACG,GAAG,CAACa,IAAI,CAAC,CAAC","ignoreList":[]}
@@ -1,51 +1,52 @@
1
- import { Context, Effect, Fiber, Layer } from "@effect-app/core";
2
- declare const FiberBag_base: (abstract new (service: {
3
- join: Effect.Effect<void, never, never>;
1
+ import type { Fiber } from "@effect-app/core";
2
+ import { Context, Effect, Layer } from "@effect-app/core";
3
+ declare const MainFiberSet_base: (abstract new (service: {
4
+ join: Effect.Effect<never, never, never>;
4
5
  run: <R, XE extends never, XA extends never>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
5
6
  add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
6
7
  addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
7
8
  }) => Readonly<{
8
- join: Effect.Effect<void, never, never>;
9
+ join: Effect.Effect<never, never, never>;
9
10
  run: <R, XE extends never, XA extends never>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
10
11
  add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
11
12
  addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
12
- }> & Context.TagClassShape<"FiberBag", {
13
- join: Effect.Effect<void, never, never>;
13
+ }> & Context.TagClassShape<"MainFiberSet", {
14
+ join: Effect.Effect<never, never, never>;
14
15
  run: <R, XE extends never, XA extends never>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
15
16
  add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
16
17
  addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
17
18
  }>) & {
18
19
  toLayer: {
19
- (): Layer<FiberBag, never, import("effect/Scope").Scope>;
20
- <E_1, R_1>(eff: Effect<Omit<FiberBag, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer<FiberBag, E_1, R_1>;
20
+ (): Layer<MainFiberSet, never, import("effect/Scope").Scope>;
21
+ <E_1, R_1>(eff: Effect<Omit<MainFiberSet, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer<MainFiberSet, E_1, R_1>;
21
22
  };
22
23
  toLayerScoped: {
23
- (): Layer<FiberBag, never, never>;
24
- <E_2, R_2>(eff: Effect<Context.TagClassShape<any, any>, E_2, R_2>): Layer<FiberBag, E_2, Exclude<R_2, import("effect/Scope").Scope>>;
24
+ (): Layer<MainFiberSet, never, never>;
25
+ <E_2, R_2>(eff: Effect<Context.TagClassShape<any, any>, E_2, R_2>): Layer<MainFiberSet, E_2, Exclude<R_2, import("effect/Scope").Scope>>;
25
26
  };
26
- of: (service: Context.TagClassShape<any, any>) => FiberBag;
27
- make: Effect<FiberBag, never, import("effect/Scope").Scope>;
28
- } & Context.Tag<FiberBag, FiberBag> & {
29
- join: Effect<void, never, FiberBag>;
30
- add: (...args: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, FiberBag>;
31
- addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, FiberBag>;
27
+ of: (service: Context.TagClassShape<any, any>) => MainFiberSet;
28
+ make: Effect<MainFiberSet, never, import("effect/Scope").Scope>;
29
+ } & Context.Tag<MainFiberSet, MainFiberSet> & {
30
+ join: Effect<never, never, MainFiberSet>;
31
+ add: (...args: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, MainFiberSet>;
32
+ addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, MainFiberSet>;
32
33
  } & {
33
34
  use: <X>(body: (_: {
34
- join: Effect.Effect<void, never, never>;
35
+ join: Effect.Effect<never, never, never>;
35
36
  run: <R, XE extends never, XA extends never>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
36
37
  add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
37
38
  addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
38
- }) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, FiberBag | R_5> : Effect<X, never, FiberBag>;
39
+ }) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, MainFiberSet | R_5> : Effect<X, never, MainFiberSet>;
39
40
  };
40
41
  /**
41
42
  * Whenever you fork long running fibers e.g via `Effect.forkScoped` or `Effect.forkDaemon`
42
- * you should register these long running fibers in a `FiberBag`, and join them at the end of your main program.
43
+ * you should register these long running fibers in a FiberSet, and join them at the end of your main program.
43
44
  * This way any errors will blow up the main program instead of fibers dying unknowingly.
44
45
  */
45
- export declare class FiberBag extends FiberBag_base {
46
- static readonly Live: Layer<FiberBag, never, never>;
46
+ export declare class MainFiberSet extends MainFiberSet_base {
47
+ static readonly Live: Layer<MainFiberSet, never, never>;
47
48
  static readonly JoinLive: Layer.Layer<never, never, never>;
48
- static readonly run: <R>(self: Effect<never, never, R>) => Effect<Fiber.RuntimeFiber<never, never>, never, FiberBag | R>;
49
+ static readonly run: <R>(self: Effect<never, never, R>) => Effect<Fiber.RuntimeFiber<never, never>, never, MainFiberSet | R>;
49
50
  }
50
51
  export {};
51
- //# sourceMappingURL=FiberBag.d.ts.map
52
+ //# sourceMappingURL=MainFiberSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../../src/services/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAY,KAAK,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBnE;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAAuD;IACvF,MAAM,CAAC,QAAQ,CAAC,IAAI,oCAAuB;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAA0F;IAClH,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAa,OAAO,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,uEAAiC;CACzF"}
@@ -0,0 +1,24 @@
1
+ import { Context, Effect, FiberSet, Layer } from "@effect-app/core";
2
+ const make = Effect.gen(function* ($) {
3
+ const set = yield* $(FiberSet.make());
4
+ const add = (...fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
5
+ const addAll = (fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
6
+ const run = FiberSet.run(set);
7
+ return {
8
+ join: FiberSet.join(set),
9
+ run,
10
+ add,
11
+ addAll
12
+ };
13
+ });
14
+ /**
15
+ * Whenever you fork long running fibers e.g via `Effect.forkScoped` or `Effect.forkDaemon`
16
+ * you should register these long running fibers in a FiberSet, and join them at the end of your main program.
17
+ * This way any errors will blow up the main program instead of fibers dying unknowingly.
18
+ */
19
+ export class MainFiberSet extends Context.TagMakeId("MainFiberSet", make)() {
20
+ static Live = this.toLayerScoped();
21
+ static JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
22
+ static run = (self) => this.use((_) => _.run(self));
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFpbkZpYmVyU2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL01haW5GaWJlclNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFLbkUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO0lBQ2pDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFnQixDQUFDLENBQUE7SUFDbkQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQTBDLEVBQUUsRUFBRSxDQUM1RCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0RSxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQW1ELEVBQUUsRUFBRSxDQUNyRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV0RSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTdCLE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDeEIsR0FBRztRQUNILEdBQUc7UUFDSCxNQUFNO0tBQ1AsQ0FBQTtBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEVBQWdCO0lBQ3ZGLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzNDLE1BQU0sQ0FBVSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xILE1BQU0sQ0FBVSxHQUFHLEdBQUcsQ0FBSSxJQUE2QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-app",
3
- "version": "0.201.5",
3
+ "version": "0.202.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -239,14 +239,14 @@
239
239
  "default": "./_cjs/schema.cjs"
240
240
  }
241
241
  },
242
- "./services/FiberBag": {
242
+ "./services/MainFiberSet": {
243
243
  "import": {
244
- "types": "./dist/services/FiberBag.d.ts",
245
- "default": "./dist/services/FiberBag.js"
244
+ "types": "./dist/services/MainFiberSet.d.ts",
245
+ "default": "./dist/services/MainFiberSet.js"
246
246
  },
247
247
  "require": {
248
- "types": "./dist/services/FiberBag.d.ts",
249
- "default": "./_cjs/services/FiberBag.cjs"
248
+ "types": "./dist/services/MainFiberSet.d.ts",
249
+ "default": "./_cjs/services/MainFiberSet.cjs"
250
250
  }
251
251
  },
252
252
  "./utils": {
@@ -1,14 +1,11 @@
1
- import { Context, Effect, Fiber, FiberSet, Layer } from "@effect-app/core"
1
+ import type { Fiber } from "@effect-app/core"
2
+ import { Context, Effect, FiberSet, Layer } from "@effect-app/core"
2
3
 
3
4
  import type {} from "effect/Scope"
4
5
  import type {} from "effect/Context"
5
6
 
6
7
  const make = Effect.gen(function*($) {
7
8
  const set = yield* $(FiberSet.make<never, never>())
8
- const join = Effect.sync(() => [...set]).pipe(
9
- Effect.tap((bag) => Effect.logDebug("[FiberBag] Joining " + bag.length + " fibers")),
10
- Effect.andThen(Fiber.joinAll)
11
- )
12
9
  const add = (...fibers: Fiber.RuntimeFiber<never, never>[]) =>
13
10
  Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)))
14
11
  const addAll = (fibers: readonly Fiber.RuntimeFiber<never, never>[]) =>
@@ -17,7 +14,7 @@ const make = Effect.gen(function*($) {
17
14
  const run = FiberSet.run(set)
18
15
 
19
16
  return {
20
- join,
17
+ join: FiberSet.join(set),
21
18
  run,
22
19
  add,
23
20
  addAll
@@ -26,10 +23,10 @@ const make = Effect.gen(function*($) {
26
23
 
27
24
  /**
28
25
  * Whenever you fork long running fibers e.g via `Effect.forkScoped` or `Effect.forkDaemon`
29
- * you should register these long running fibers in a `FiberBag`, and join them at the end of your main program.
26
+ * you should register these long running fibers in a FiberSet, and join them at the end of your main program.
30
27
  * This way any errors will blow up the main program instead of fibers dying unknowingly.
31
28
  */
32
- export class FiberBag extends Context.TagMakeId("FiberBag", make)<FiberBag>() {
29
+ export class MainFiberSet extends Context.TagMakeId("MainFiberSet", make)<MainFiberSet>() {
33
30
  static readonly Live = this.toLayerScoped()
34
31
  static readonly JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live))
35
32
  static readonly run = <R>(self: Effect<never, never, R>) => this.use((_) => _.run(self))
@@ -1 +0,0 @@
1
- {"version":3,"file":"FiberBag.cjs","names":["_core","require","make","Effect","gen","$","set","FiberSet","join","sync","pipe","tap","bag","logDebug","length","andThen","Fiber","joinAll","add","fibers","forEach","_","unsafeAdd","addAll","run","FiberBag","Context","TagMakeId","Live","toLayerScoped","JoinLive","Layer","effectDiscard","provide","self","use"],"sources":["../../src/services/FiberBag.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAKA,MAAMC,IAAI,GAAGC,YAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;EACjC,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,cAAQ,CAACL,IAAI,EAAgB,CAAC;EACnD,MAAMM,IAAI,GAAGL,YAAM,CAACM,IAAI,CAAC,MAAM,CAAC,GAAGH,GAAG,CAAC,CAAC,CAACI,IAAI,CAC3CP,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,MAA0C,KACxDhB,YAAM,CAACM,IAAI,CAAC,MAAMU,MAAM,CAACC,OAAO,CAAEC,CAAC,IAAKd,cAAQ,CAACe,SAAS,CAAChB,GAAG,EAAEe,CAAC,CAAC,CAAC,CAAC;EACtE,MAAME,MAAM,GAAIJ,MAAmD,IACjEhB,YAAM,CAACM,IAAI,CAAC,MAAMU,MAAM,CAACC,OAAO,CAAEC,CAAC,IAAKd,cAAQ,CAACe,SAAS,CAAChB,GAAG,EAAEe,CAAC,CAAC,CAAC,CAAC;EAEtE,MAAMG,GAAG,GAAGjB,cAAQ,CAACiB,GAAG,CAAClB,GAAG,CAAC;EAE7B,OAAO;IACLE,IAAI;IACJgB,GAAG;IACHN,GAAG;IACHK;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOE,QAAS,SAAQC,aAAO,CAACC,SAAS,CAAC,UAAU,EAAEzB,IAAI,CAAC,EAAY;EAC3E,OAAgB0B,IAAI,GAAG,IAAI,CAACC,aAAa,EAAE;EAC3C,OAAgBC,QAAQ,GAAG,IAAI,CAACpB,IAAI,CAACP,YAAM,CAACY,OAAO,CAAEM,CAAC,IAAKA,CAAC,CAACb,IAAI,CAAC,EAAEuB,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC;EAClH,OAAgBJ,GAAG,GAAOU,IAA6B,IAAK,IAAI,CAACC,GAAG,CAAEd,CAAC,IAAKA,CAAC,CAACG,GAAG,CAACU,IAAI,CAAC,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FiberBag.d.ts","sourceRoot":"","sources":["../../src/services/FiberBag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0B1E;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,aAA+C;IAC3E,MAAM,CAAC,QAAQ,CAAC,IAAI,gCAAuB;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAA0F;IAClH,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAa,OAAO,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,mEAAiC;CACzF"}
@@ -1,25 +0,0 @@
1
- import { Context, Effect, Fiber, FiberSet, Layer } from "@effect-app/core";
2
- const make = Effect.gen(function* ($) {
3
- const set = yield* $(FiberSet.make());
4
- const join = Effect.sync(() => [...set]).pipe(Effect.tap((bag) => Effect.logDebug("[FiberBag] Joining " + bag.length + " fibers")), Effect.andThen(Fiber.joinAll));
5
- const add = (...fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
6
- const addAll = (fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
7
- const run = FiberSet.run(set);
8
- return {
9
- join,
10
- run,
11
- add,
12
- addAll
13
- };
14
- });
15
- /**
16
- * Whenever you fork long running fibers e.g via `Effect.forkScoped` or `Effect.forkDaemon`
17
- * you should register these long running fibers in a `FiberBag`, and join them at the end of your main program.
18
- * This way any errors will blow up the main program instead of fibers dying unknowingly.
19
- */
20
- export class FiberBag extends Context.TagMakeId("FiberBag", make)() {
21
- static Live = this.toLayerScoped();
22
- static JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
23
- static run = (self) => this.use((_) => _.run(self));
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmliZXJCYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvRmliZXJCYWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUsxRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUM7SUFDakMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQWdCLENBQUMsQ0FBQTtJQUNuRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDM0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEVBQ3BGLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUM5QixDQUFBO0lBQ0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQTBDLEVBQUUsRUFBRSxDQUM1RCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0RSxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQW1ELEVBQUUsRUFBRSxDQUNyRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV0RSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTdCLE9BQU87UUFDTCxJQUFJO1FBQ0osR0FBRztRQUNILEdBQUc7UUFDSCxNQUFNO0tBQ1AsQ0FBQTtBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQVk7SUFDM0UsTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDM0MsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEgsTUFBTSxDQUFVLEdBQUcsR0FBRyxDQUFJLElBQTZCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSJ9