effect-app 1.7.0 → 1.8.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 +6 -0
- package/_cjs/services/MainFiberSet.cjs +12 -0
- package/_cjs/services/MainFiberSet.cjs.map +1 -1
- package/dist/services/MainFiberSet.d.ts +6 -2
- package/dist/services/MainFiberSet.d.ts.map +1 -1
- package/dist/services/MainFiberSet.js +14 -2
- package/package.json +1 -1
- package/src/services/MainFiberSet.ts +15 -2
package/CHANGELOG.md
CHANGED
|
@@ -11,7 +11,19 @@ const make = _core.Effect.gen(function* ($) {
|
|
|
11
11
|
const addAll = fibers => _core.Effect.sync(() => fibers.forEach(_ => _core.FiberSet.unsafeAdd(set, _)));
|
|
12
12
|
const join = _core.FiberSet.size(set).pipe(_core.Effect.andThen(count => _core.Effect.logDebug(`Joining ${count} current fibers on the MainFiberSet`)), _core.Effect.andThen(_core.FiberSet.join(set)));
|
|
13
13
|
const run = _core.FiberSet.run(set);
|
|
14
|
+
// const waitUntilEmpty = Effect.gen(function*($) {
|
|
15
|
+
// const currentSize = yield* $(FiberSet.size(set))
|
|
16
|
+
// if (currentSize === 0) {
|
|
17
|
+
// return
|
|
18
|
+
// }
|
|
19
|
+
// yield* $(Effect.logInfo("Waiting MainFiberSet to be empty: " + currentSize))
|
|
20
|
+
// while ((yield* $(FiberSet.size(set))) > 0) yield* $(Effect.sleep("250 millis"))
|
|
21
|
+
// yield* $(Effect.logDebug("MainFiberSet is empty"))
|
|
22
|
+
// })
|
|
23
|
+
// TODO: loop and interrupt all fibers in the set continuously?
|
|
24
|
+
const interrupt = _core.Fiber.interruptAll(set);
|
|
14
25
|
return {
|
|
26
|
+
interrupt,
|
|
15
27
|
join,
|
|
16
28
|
run,
|
|
17
29
|
add,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainFiberSet.cjs","names":["_core","require","make","Effect","gen","$","set","FiberSet","add","fibers","sync","forEach","_","unsafeAdd","addAll","join","size","pipe","andThen","count","logDebug","run","MainFiberSet","Context","TagMakeId","Live","toLayerScoped","JoinLive","Layer","effectDiscard","provide","self","use"],"sources":["../../src/services/MainFiberSet.ts"],"sourcesContent":[null],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"MainFiberSet.cjs","names":["_core","require","make","Effect","gen","$","set","FiberSet","add","fibers","sync","forEach","_","unsafeAdd","addAll","join","size","pipe","andThen","count","logDebug","run","interrupt","Fiber","interruptAll","MainFiberSet","Context","TagMakeId","Live","toLayerScoped","JoinLive","Layer","effectDiscard","provide","self","use"],"sources":["../../src/services/MainFiberSet.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,EAAkB,CAAC;EACrD,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;EACtE,MAAMG,IAAI,GAAGR,cAAQ,CAACS,IAAI,CAACV,GAAG,CAAC,CAACW,IAAI,CAClCd,YAAM,CAACe,OAAO,CAAEC,KAAK,IAAKhB,YAAM,CAACiB,QAAQ,CAAC,WAAWD,KAAK,qCAAqC,CAAC,CAAC,EACjGhB,YAAM,CAACe,OAAO,CAACX,cAAQ,CAACQ,IAAI,CAACT,GAAG,CAAC,CAAC,CACnC;EACD,MAAMe,GAAG,GAAGd,cAAQ,CAACc,GAAG,CAACf,GAAG,CAAC;EAE7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA,MAAMgB,SAAS,GAAGC,WAAK,CAACC,YAAY,CAAClB,GAAG,CAAC;EAEzC,OAAO;IACLgB,SAAS;IACTP,IAAI;IACJM,GAAG;IACHb,GAAG;IACHM;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOW,YAAa,SAAQC,aAAO,CAACC,SAAS,CAAC,cAAc,EAAEzB,IAAI,CAAC,EAAgB;EACvF,OAAgB0B,IAAI,GAAG,IAAI,CAACC,aAAa,EAAE;EAC3C,OAAgBC,QAAQ,GAAG,IAAI,CAACb,IAAI,CAACd,YAAM,CAACe,OAAO,CAAEN,CAAC,IAAKA,CAAC,CAACG,IAAI,CAAC,EAAEgB,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC;EAClH,OAAgBP,GAAG,GAAUa,IAAyB,IAAK,IAAI,CAACC,GAAG,CAAEvB,CAAC,IAAKA,CAAC,CAACS,GAAG,CAACa,IAAI,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Context, Effect, Layer } from "@effect-app/core";
|
|
1
|
+
import { Context, Effect, Fiber, Layer } from "@effect-app/core";
|
|
3
2
|
declare const MainFiberSet_base: (abstract new (service: {
|
|
3
|
+
interrupt: Effect.Effect<void, never, never>;
|
|
4
4
|
join: Effect.Effect<void, never, never>;
|
|
5
5
|
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
6
6
|
add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
7
7
|
addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
8
8
|
}) => Readonly<{
|
|
9
|
+
interrupt: Effect.Effect<void, never, never>;
|
|
9
10
|
join: Effect.Effect<void, never, never>;
|
|
10
11
|
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
11
12
|
add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
12
13
|
addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
13
14
|
}> & Context.TagClassShape<"MainFiberSet", {
|
|
15
|
+
interrupt: Effect.Effect<void, never, never>;
|
|
14
16
|
join: Effect.Effect<void, never, never>;
|
|
15
17
|
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
16
18
|
add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
@@ -27,11 +29,13 @@ declare const MainFiberSet_base: (abstract new (service: {
|
|
|
27
29
|
of: (service: Context.TagClassShape<any, any>) => MainFiberSet;
|
|
28
30
|
make: Effect<MainFiberSet, never, import("effect/Scope").Scope>;
|
|
29
31
|
} & Context.Tag<MainFiberSet, MainFiberSet> & {
|
|
32
|
+
interrupt: Effect<void, never, MainFiberSet>;
|
|
30
33
|
join: Effect<void, never, MainFiberSet>;
|
|
31
34
|
add: (...args: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, MainFiberSet | never>;
|
|
32
35
|
addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, MainFiberSet | never>;
|
|
33
36
|
} & {
|
|
34
37
|
use: <X>(body: (_: {
|
|
38
|
+
interrupt: Effect.Effect<void, never, never>;
|
|
35
39
|
join: Effect.Effect<void, never, never>;
|
|
36
40
|
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
|
|
37
41
|
add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../../src/services/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../../src/services/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,kBAAkB,CAAA;;;;;qBAOhD,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;;qBAF3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;;qBAF3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;yBAF3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;yBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;AA8BrE;;;;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,GAAI,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,mEAAiC;CACxF"}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
import { Context, Effect, FiberSet, Layer } from "@effect-app/core";
|
|
1
|
+
import { Context, Effect, Fiber, FiberSet, Layer } from "@effect-app/core";
|
|
2
2
|
const make = Effect.gen(function* ($) {
|
|
3
3
|
const set = yield* $(FiberSet.make());
|
|
4
4
|
const add = (...fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
|
|
5
5
|
const addAll = (fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
|
|
6
6
|
const join = FiberSet.size(set).pipe(Effect.andThen((count) => Effect.logDebug(`Joining ${count} current fibers on the MainFiberSet`)), Effect.andThen(FiberSet.join(set)));
|
|
7
7
|
const run = FiberSet.run(set);
|
|
8
|
+
// const waitUntilEmpty = Effect.gen(function*($) {
|
|
9
|
+
// const currentSize = yield* $(FiberSet.size(set))
|
|
10
|
+
// if (currentSize === 0) {
|
|
11
|
+
// return
|
|
12
|
+
// }
|
|
13
|
+
// yield* $(Effect.logInfo("Waiting MainFiberSet to be empty: " + currentSize))
|
|
14
|
+
// while ((yield* $(FiberSet.size(set))) > 0) yield* $(Effect.sleep("250 millis"))
|
|
15
|
+
// yield* $(Effect.logDebug("MainFiberSet is empty"))
|
|
16
|
+
// })
|
|
17
|
+
// TODO: loop and interrupt all fibers in the set continuously?
|
|
18
|
+
const interrupt = Fiber.interruptAll(set);
|
|
8
19
|
return {
|
|
20
|
+
interrupt,
|
|
9
21
|
join,
|
|
10
22
|
run,
|
|
11
23
|
add,
|
|
@@ -22,4 +34,4 @@ export class MainFiberSet extends Context.TagMakeId("MainFiberSet", make)() {
|
|
|
22
34
|
static JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
|
|
23
35
|
static run = (self) => this.use((_) => _.run(self));
|
|
24
36
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFpbkZpYmVyU2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL01haW5GaWJlclNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBSzFFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQztJQUNqQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBa0IsQ0FBQyxDQUFBO0lBQ3JELE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxNQUEwQyxFQUFFLEVBQUUsQ0FDNUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFtRCxFQUFFLEVBQUUsQ0FDckUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLHFDQUFxQyxDQUFDLENBQUMsRUFDakcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ25DLENBQUE7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTdCLG1EQUFtRDtJQUNuRCxxREFBcUQ7SUFDckQsNkJBQTZCO0lBQzdCLGFBQWE7SUFDYixNQUFNO0lBQ04saUZBQWlGO0lBQ2pGLG9GQUFvRjtJQUNwRix1REFBdUQ7SUFDdkQsS0FBSztJQUVMLCtEQUErRDtJQUMvRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRXpDLE9BQU87UUFDTCxTQUFTO1FBQ1QsSUFBSTtRQUNKLEdBQUc7UUFDSCxHQUFHO1FBQ0gsTUFBTTtLQUNQLENBQUE7QUFDSCxDQUFDLENBQUMsQ0FBQTtBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sWUFBYSxTQUFRLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFnQjtJQUN2RixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMzQyxNQUFNLENBQVUsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsSCxNQUFNLENBQVUsR0FBRyxHQUFHLENBQU8sSUFBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBIn0=
|
package/package.json
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Context, Effect, FiberSet, Layer } from "@effect-app/core"
|
|
1
|
+
import { Context, Effect, Fiber, FiberSet, Layer } from "@effect-app/core"
|
|
3
2
|
|
|
4
3
|
import type {} from "effect/Scope"
|
|
5
4
|
import type {} from "effect/Context"
|
|
@@ -16,7 +15,21 @@ const make = Effect.gen(function*($) {
|
|
|
16
15
|
)
|
|
17
16
|
const run = FiberSet.run(set)
|
|
18
17
|
|
|
18
|
+
// const waitUntilEmpty = Effect.gen(function*($) {
|
|
19
|
+
// const currentSize = yield* $(FiberSet.size(set))
|
|
20
|
+
// if (currentSize === 0) {
|
|
21
|
+
// return
|
|
22
|
+
// }
|
|
23
|
+
// yield* $(Effect.logInfo("Waiting MainFiberSet to be empty: " + currentSize))
|
|
24
|
+
// while ((yield* $(FiberSet.size(set))) > 0) yield* $(Effect.sleep("250 millis"))
|
|
25
|
+
// yield* $(Effect.logDebug("MainFiberSet is empty"))
|
|
26
|
+
// })
|
|
27
|
+
|
|
28
|
+
// TODO: loop and interrupt all fibers in the set continuously?
|
|
29
|
+
const interrupt = Fiber.interruptAll(set)
|
|
30
|
+
|
|
19
31
|
return {
|
|
32
|
+
interrupt,
|
|
20
33
|
join,
|
|
21
34
|
run,
|
|
22
35
|
add,
|