@fncts/io 0.0.38 → 0.0.39
Sign up to get free protection for your applications and to get access to all the features.
- package/Channel/definition.d.ts +108 -104
- package/FiberRef/unsafe.d.ts +5 -0
- package/Future/definition.d.ts +24 -3
- package/_cjs/Channel/api/mapOutConcurrentIO.cjs +8 -2
- package/_cjs/Channel/api/mapOutConcurrentIO.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAllWith.cjs +23 -14
- package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
- package/_cjs/Channel/api/mergeWith.cjs +16 -4
- package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +131 -36
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Channel/core-api.cjs +13 -3
- package/_cjs/Channel/core-api.cjs.map +1 -1
- package/_cjs/Channel/definition.cjs +18 -143
- package/_cjs/Channel/definition.cjs.map +1 -1
- package/_cjs/Channel/internal/ChannelExecutor.cjs +51 -49
- package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +8 -2
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
- package/_cjs/Console/live.cjs +1 -1
- package/_cjs/Console/live.cjs.map +1 -1
- package/_cjs/Fiber/FiberRuntime.cjs +23 -18
- package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
- package/_cjs/FiberRef/definition.cjs +3 -1
- package/_cjs/FiberRef/definition.cjs.map +1 -1
- package/_cjs/FiberRef/unsafe.cjs +6 -1
- package/_cjs/FiberRef/unsafe.cjs.map +1 -1
- package/_cjs/Future/api.cjs +12 -12
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/Future/definition.cjs +10 -3
- package/_cjs/Future/definition.cjs.map +1 -1
- package/_cjs/IO/api/asyncInterrupt.cjs +7 -4
- package/_cjs/IO/api/asyncInterrupt.cjs.map +1 -1
- package/_cjs/IO/api.cjs +38 -14
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/runtime.cjs +6 -3
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/Layer/api.cjs +4 -1
- package/_cjs/Layer/api.cjs.map +1 -1
- package/_cjs/Push/api.cjs +4 -1
- package/_cjs/Push/api.cjs.map +1 -1
- package/_cjs/Ref/Derived.cjs +35 -8
- package/_cjs/Ref/Derived.cjs.map +1 -1
- package/_cjs/Ref/DerivedAll.cjs +35 -8
- package/_cjs/Ref/DerivedAll.cjs.map +1 -1
- package/_cjs/RuntimeFlags/RuntimeFlags.cjs +3 -4
- package/_cjs/RuntimeFlags/RuntimeFlags.cjs.map +1 -1
- package/_cjs/STM/api/core-api.cjs +4 -1
- package/_cjs/STM/api/core-api.cjs.map +1 -1
- package/_cjs/STM/api.cjs +16 -4
- package/_cjs/STM/api.cjs.map +1 -1
- package/_cjs/Schedule/api.cjs +7 -1
- package/_cjs/Schedule/api.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +2 -2
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/Sink/api.cjs +7 -1
- package/_cjs/Sink/api.cjs.map +1 -1
- package/_cjs/Stream/api/zipAllWith.cjs +4 -1
- package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
- package/_cjs/Stream/api/zipWithChunks.cjs +4 -1
- package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +36 -15
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/SupervisorPatch.cjs +38 -15
- package/_cjs/SupervisorPatch.cjs.map +1 -1
- package/_cjs/TRef/definition.cjs +74 -20
- package/_cjs/TRef/definition.cjs.map +1 -1
- package/_mjs/Channel/api/mapOutConcurrentIO.mjs +8 -2
- package/_mjs/Channel/api/mapOutConcurrentIO.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAllWith.mjs +23 -14
- package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
- package/_mjs/Channel/api/mergeWith.mjs +16 -4
- package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +132 -37
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Channel/core-api.mjs +14 -4
- package/_mjs/Channel/core-api.mjs.map +1 -1
- package/_mjs/Channel/definition.mjs +14 -135
- package/_mjs/Channel/definition.mjs.map +1 -1
- package/_mjs/Channel/internal/ChannelExecutor.mjs +52 -50
- package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +8 -2
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
- package/_mjs/Console/live.mjs +1 -1
- package/_mjs/Console/live.mjs.map +1 -1
- package/_mjs/Fiber/FiberRuntime.mjs +23 -18
- package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
- package/_mjs/FiberRef/definition.mjs +3 -1
- package/_mjs/FiberRef/definition.mjs.map +1 -1
- package/_mjs/FiberRef/unsafe.mjs +4 -0
- package/_mjs/FiberRef/unsafe.mjs.map +1 -1
- package/_mjs/Future/api.mjs +12 -12
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/Future/definition.mjs +7 -2
- package/_mjs/Future/definition.mjs.map +1 -1
- package/_mjs/IO/api/asyncInterrupt.mjs +7 -4
- package/_mjs/IO/api/asyncInterrupt.mjs.map +1 -1
- package/_mjs/IO/api.mjs +38 -14
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/runtime.mjs +6 -3
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/Layer/api.mjs +4 -1
- package/_mjs/Layer/api.mjs.map +1 -1
- package/_mjs/Push/api.mjs +4 -1
- package/_mjs/Push/api.mjs.map +1 -1
- package/_mjs/Ref/Derived.mjs +35 -8
- package/_mjs/Ref/Derived.mjs.map +1 -1
- package/_mjs/Ref/DerivedAll.mjs +35 -8
- package/_mjs/Ref/DerivedAll.mjs.map +1 -1
- package/_mjs/RuntimeFlags/RuntimeFlags.mjs +3 -4
- package/_mjs/RuntimeFlags/RuntimeFlags.mjs.map +1 -1
- package/_mjs/STM/api/core-api.mjs +4 -1
- package/_mjs/STM/api/core-api.mjs.map +1 -1
- package/_mjs/STM/api.mjs +16 -4
- package/_mjs/STM/api.mjs.map +1 -1
- package/_mjs/Schedule/api.mjs +7 -1
- package/_mjs/Schedule/api.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +2 -2
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/Sink/api.mjs +7 -1
- package/_mjs/Sink/api.mjs.map +1 -1
- package/_mjs/Stream/api/zipAllWith.mjs +4 -1
- package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
- package/_mjs/Stream/api/zipWithChunks.mjs +4 -1
- package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +36 -15
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/SupervisorPatch.mjs +38 -15
- package/_mjs/SupervisorPatch.mjs.map +1 -1
- package/_mjs/TRef/definition.mjs +74 -20
- package/_mjs/TRef/definition.mjs.map +1 -1
- package/_src/Channel/api/mapOutConcurrentIO.ts +5 -5
- package/_src/Channel/api/mergeAllWith.ts +9 -9
- package/_src/Channel/api/mergeWith.ts +16 -16
- package/_src/Channel/api.ts +128 -143
- package/_src/Channel/core-api.ts +17 -14
- package/_src/Channel/definition.ts +187 -236
- package/_src/Channel/internal/ChannelExecutor.ts +47 -45
- package/_src/Channel/internal/SingleProducerAsyncInput.ts +2 -2
- package/_src/Console/live.ts +1 -1
- package/_src/Fiber/FiberRuntime.ts +6 -3
- package/_src/FiberRef/definition.ts +4 -1
- package/_src/FiberRef/unsafe.ts +5 -0
- package/_src/Future/definition.ts +19 -3
- package/_src/IO/api/asyncInterrupt.ts +4 -4
- package/_src/IO/api.ts +19 -15
- package/_src/IO/runtime.ts +6 -3
- package/_src/Layer/api.ts +4 -1
- package/_src/Push/api.ts +4 -4
- package/_src/Ref/Derived.ts +20 -18
- package/_src/Ref/DerivedAll.ts +21 -18
- package/_src/RuntimeFlags/RuntimeFlags.ts +1 -1
- package/_src/STM/api/core-api.ts +1 -1
- package/_src/STM/api.ts +4 -4
- package/_src/Schedule/api.ts +8 -8
- package/_src/ScopedRef/api.ts +4 -3
- package/_src/Sink/api.ts +8 -8
- package/_src/Stream/api/zipAllWith.ts +4 -4
- package/_src/Stream/api/zipWithChunks.ts +4 -4
- package/_src/Stream/api.ts +21 -19
- package/_src/SupervisorPatch.ts +1 -0
- package/_src/TRef/definition.ts +36 -33
- package/package.json +2 -2
package/_src/Ref/DerivedAll.ts
CHANGED
@@ -34,8 +34,9 @@ export class DerivedAll<EA, EB, A, B> extends RefInternal<never, never, EA, EB,
|
|
34
34
|
new DerivedAll((f) =>
|
35
35
|
f(
|
36
36
|
value,
|
37
|
-
(s) => getEither(s).match((e) => Either.left(eb(e)), bd),
|
38
|
-
(c) => (s) =>
|
37
|
+
(s) => getEither(s).match({ Left: (e) => Either.left(eb(e)), Right: bd }),
|
38
|
+
(c) => (s) =>
|
39
|
+
ca(c).flatMap((a) => setEither(a)(s).match({ Left: (e) => Either.left(ea(e)), Right: Either.right })),
|
39
40
|
),
|
40
41
|
),
|
41
42
|
);
|
@@ -53,28 +54,30 @@ export class DerivedAll<EA, EB, A, B> extends RefInternal<never, never, EA, EB,
|
|
53
54
|
new DerivedAll((f) =>
|
54
55
|
f(
|
55
56
|
value,
|
56
|
-
(s) => getEither(s).match((e) => Either.left(eb(e)), bd),
|
57
|
+
(s) => getEither(s).match({ Left: (e) => Either.left(eb(e)), Right: bd }),
|
57
58
|
(c) => (s) =>
|
58
59
|
getEither(s)
|
59
|
-
.match((e) => Either.left(ec(e)), ca(c))
|
60
|
-
.flatMap((a) => setEither(a)(s).match((e) => Either.left(ea(e)), Either.right)),
|
60
|
+
.match({ Left: (e) => Either.left(ec(e)), Right: ca(c) })
|
61
|
+
.flatMap((a) => setEither(a)(s).match({ Left: (e) => Either.left(ea(e)), Right: Either.right })),
|
61
62
|
),
|
62
63
|
),
|
63
64
|
);
|
64
65
|
}
|
65
66
|
|
66
67
|
get get(): FIO<EB, B> {
|
67
|
-
return this.use((value, getEither) =>
|
68
|
+
return this.use((value, getEither) =>
|
69
|
+
value.get.flatMap((s) => getEither(s).match({ Left: IO.failNow, Right: IO.succeedNow })),
|
70
|
+
);
|
68
71
|
}
|
69
72
|
|
70
73
|
set(a: A): FIO<EA, void> {
|
71
74
|
return this.use(
|
72
75
|
(value, _, setEither) =>
|
73
76
|
value.modify((s) =>
|
74
|
-
setEither(a)(s).match(
|
75
|
-
(e) => [Either.left(e), s] as [Either<EA, void>, typeof s],
|
76
|
-
(s) => [Either.right(undefined), s],
|
77
|
-
),
|
77
|
+
setEither(a)(s).match({
|
78
|
+
Left: (e) => [Either.left(e), s] as [Either<EA, void>, typeof s],
|
79
|
+
Right: (s) => [Either.right(undefined), s],
|
80
|
+
}),
|
78
81
|
).absolve,
|
79
82
|
);
|
80
83
|
}
|
@@ -83,16 +86,16 @@ export class DerivedAll<EA, EB, A, B> extends RefInternal<never, never, EA, EB,
|
|
83
86
|
return this.use(
|
84
87
|
(value, getEither, setEither) =>
|
85
88
|
value.modify((s) =>
|
86
|
-
getEither(s).match(
|
87
|
-
(e) => tuple(Either.left(e), s),
|
88
|
-
(a1) => {
|
89
|
+
getEither(s).match({
|
90
|
+
Left: (e) => tuple(Either.left(e), s),
|
91
|
+
Right: (a1) => {
|
89
92
|
const [b, a2] = f(a1);
|
90
|
-
return setEither(a2)(s).match(
|
91
|
-
(e) => tuple(Either.left(e), s),
|
92
|
-
(s) => tuple(Either.right<EA | EB, C>(b), s),
|
93
|
-
);
|
93
|
+
return setEither(a2)(s).match({
|
94
|
+
Left: (e) => tuple(Either.left(e), s),
|
95
|
+
Right: (s) => tuple(Either.right<EA | EB, C>(b), s),
|
96
|
+
});
|
94
97
|
},
|
95
|
-
),
|
98
|
+
}),
|
96
99
|
).absolve,
|
97
100
|
);
|
98
101
|
}
|
@@ -14,7 +14,7 @@ export type RuntimeFlags = number & {
|
|
14
14
|
*/
|
15
15
|
export interface RuntimeFlagsOps {}
|
16
16
|
|
17
|
-
export const RuntimeFlags: RuntimeFlagsOps =
|
17
|
+
export const RuntimeFlags: RuntimeFlagsOps = {};
|
18
18
|
|
19
19
|
export declare namespace RuntimeFlags {
|
20
20
|
type Patch = RuntimeFlagsPatch;
|
package/_src/STM/api/core-api.ts
CHANGED
package/_src/STM/api.ts
CHANGED
@@ -429,7 +429,7 @@ export function foreach<A, R, E, B>(
|
|
429
429
|
* @tsplus static fncts.io.STMOps fromEither
|
430
430
|
*/
|
431
431
|
export function fromEither<E, A>(e: Lazy<Either<E, A>>, __tsplusTrace?: string): STM<never, E, A> {
|
432
|
-
return STM.defer(e().match(STM.failNow, STM.succeedNow));
|
432
|
+
return STM.defer(e().match({ Left: STM.failNow, Right: STM.succeedNow }));
|
433
433
|
}
|
434
434
|
|
435
435
|
/**
|
@@ -438,7 +438,7 @@ export function fromEither<E, A>(e: Lazy<Either<E, A>>, __tsplusTrace?: string):
|
|
438
438
|
* @tsplus static fncts.io.STMOps fromEitherNow
|
439
439
|
*/
|
440
440
|
export function fromEitherNow<E, A>(e: Either<E, A>, __tsplusTrace?: string): STM<never, E, A> {
|
441
|
-
return e.match(STM.failNow, STM.succeedNow);
|
441
|
+
return e.match({ Left: STM.failNow, Right: STM.succeedNow });
|
442
442
|
}
|
443
443
|
|
444
444
|
/**
|
@@ -553,7 +553,7 @@ export function isSuccess<R, E, A>(stm: STM<R, E, A>, __tsplusTrace?: string) {
|
|
553
553
|
export function left<R, E, B, C>(stm: STM<R, E, Either<B, C>>, __tsplusTrace?: string): STM<R, Maybe<E>, B> {
|
554
554
|
return stm.matchSTM(
|
555
555
|
(e) => STM.fail(Just(e)),
|
556
|
-
(bc) => bc.match(STM.succeedNow, () => STM.failNow(Nothing())),
|
556
|
+
(bc) => bc.match({ Left: STM.succeedNow, Right: () => STM.failNow(Nothing()) }),
|
557
557
|
);
|
558
558
|
}
|
559
559
|
|
@@ -564,7 +564,7 @@ export function left<R, E, B, C>(stm: STM<R, E, Either<B, C>>, __tsplusTrace?: s
|
|
564
564
|
*/
|
565
565
|
export function leftOrFail<C, E1>(orFail: (c: C) => E1, __tsplusTrace?: string) {
|
566
566
|
return <R, E, B>(stm: STM<R, E, Either<B, C>>): STM<R, E | E1, B> => {
|
567
|
-
return stm.flatMap((bc) => bc.match(STM.succeedNow, (c) => STM.fail(orFail(c))));
|
567
|
+
return stm.flatMap((bc) => bc.match({ Left: STM.succeedNow, Right: (c) => STM.fail(orFail(c)) }));
|
568
568
|
};
|
569
569
|
}
|
570
570
|
|
package/_src/Schedule/api.ts
CHANGED
@@ -618,17 +618,17 @@ export function reconsiderIO<S, O, R1, O1>(
|
|
618
618
|
decision.match(
|
619
619
|
() =>
|
620
620
|
f(state, out, decision).map((r) =>
|
621
|
-
r.match(
|
622
|
-
(out1) => [state, out1, Decision.Done],
|
623
|
-
([out1, _]) => [state, out1, Decision.Done],
|
624
|
-
),
|
621
|
+
r.match({
|
622
|
+
Left: (out1) => [state, out1, Decision.Done],
|
623
|
+
Right: ([out1, _]) => [state, out1, Decision.Done],
|
624
|
+
}),
|
625
625
|
),
|
626
626
|
() =>
|
627
627
|
f(state, out, decision).map((r) =>
|
628
|
-
r.match(
|
629
|
-
(out1) => [state, out1, Decision.Done],
|
630
|
-
([out1, interval]) => [state, out1, Decision.continueWith(interval)],
|
631
|
-
),
|
628
|
+
r.match({
|
629
|
+
Left: (out1) => [state, out1, Decision.Done],
|
630
|
+
Right: ([out1, interval]) => [state, out1, Decision.continueWith(interval)],
|
631
|
+
}),
|
632
632
|
),
|
633
633
|
),
|
634
634
|
),
|
package/_src/ScopedRef/api.ts
CHANGED
@@ -25,13 +25,14 @@ class Synch<A> extends ScopedRef<A> {
|
|
25
25
|
return this.ref.modifyIO(([oldScope, a]) =>
|
26
26
|
IO.uninterruptibleMask((restore) =>
|
27
27
|
Do((_) => {
|
28
|
+
_(oldScope.close(Exit.unit));
|
28
29
|
const newScope = _(Scope.make);
|
29
|
-
const exit = _(restore(
|
30
|
+
const exit = _(restore(newScope.extend(acquire)).result);
|
30
31
|
return _(
|
31
32
|
exit.match(
|
32
33
|
(cause): UIO<readonly [FIO<E, void>, readonly [Scope.Closeable, A]]> =>
|
33
|
-
newScope.close(Exit.unit).
|
34
|
-
(a) =>
|
34
|
+
newScope.close(Exit.unit).as([IO.refailCause(cause), [oldScope, a]] as const),
|
35
|
+
(a) => IO.succeedNow([IO.unit, [newScope, a]] as const),
|
35
36
|
),
|
36
37
|
);
|
37
38
|
}),
|
package/_src/Sink/api.ts
CHANGED
@@ -567,20 +567,20 @@ function fromPushPull<R, E, In, L, Z>(
|
|
567
567
|
(inp: Conc<In>) =>
|
568
568
|
Channel.fromIO(push(Just(inp))).matchChannel(
|
569
569
|
([r, leftovers]) =>
|
570
|
-
r.match(
|
571
|
-
(e) => Channel.writeNow(leftovers) > Channel.failNow(e),
|
572
|
-
(z) => Channel.writeNow(leftovers) > Channel.succeedNow(z),
|
573
|
-
),
|
570
|
+
r.match({
|
571
|
+
Left: (e) => Channel.writeNow(leftovers) > Channel.failNow(e),
|
572
|
+
Right: (z) => Channel.writeNow(leftovers) > Channel.succeedNow(z),
|
573
|
+
}),
|
574
574
|
() => fromPushPull(push),
|
575
575
|
),
|
576
576
|
Channel.failNow,
|
577
577
|
() =>
|
578
578
|
Channel.fromIO(push(Nothing())).matchChannel(
|
579
579
|
([r, leftovers]) =>
|
580
|
-
r.match(
|
581
|
-
(e) => Channel.writeNow(leftovers) > Channel.failNow(e),
|
582
|
-
(z) => Channel.writeNow(leftovers) > Channel.succeedNow(z),
|
583
|
-
),
|
580
|
+
r.match({
|
581
|
+
Left: (e) => Channel.writeNow(leftovers) > Channel.failNow(e),
|
582
|
+
Right: (z) => Channel.writeNow(leftovers) > Channel.succeedNow(z),
|
583
|
+
}),
|
584
584
|
() => Channel.fromIO(IO.halt(new Error("empty sink"))),
|
585
585
|
),
|
586
586
|
);
|
@@ -132,8 +132,8 @@ function zipWithChunks<A, B, C>(
|
|
132
132
|
__tsplusTrace?: string,
|
133
133
|
): readonly [Conc<C>, State<A, B>] {
|
134
134
|
const [out, r] = zipChunks(leftChunk, rightChunk, f);
|
135
|
-
return r.match(
|
136
|
-
(leftChunk) => (leftChunk.isEmpty ? [out, new PullBoth()] : [out, new PullRight(leftChunk)]),
|
137
|
-
(rightChunk) => (rightChunk.isEmpty ? [out, new PullBoth()] : [out, new PullLeft(rightChunk)]),
|
138
|
-
);
|
135
|
+
return r.match({
|
136
|
+
Left: (leftChunk) => (leftChunk.isEmpty ? [out, new PullBoth()] : [out, new PullRight(leftChunk)]),
|
137
|
+
Right: (rightChunk) => (rightChunk.isEmpty ? [out, new PullBoth()] : [out, new PullLeft(rightChunk)]),
|
138
|
+
});
|
139
139
|
}
|
@@ -73,10 +73,10 @@ function handleSuccess<A1, A2, A3>(
|
|
73
73
|
__tsplusTrace?: string,
|
74
74
|
): readonly [Conc<A3>, State<A1, A2>] {
|
75
75
|
const [out, remaining] = f(leftChunk, rightChunk);
|
76
|
-
return remaining.match(
|
77
|
-
(l) => (leftChunk.isEmpty ? [out, new PullBoth()] : [out, new PullRight(leftChunk)]),
|
78
|
-
(r) => (rightChunk.isEmpty ? [out, new PullBoth()] : [out, new PullLeft(rightChunk)]),
|
79
|
-
);
|
76
|
+
return remaining.match({
|
77
|
+
Left: (l) => (leftChunk.isEmpty ? [out, new PullBoth()] : [out, new PullRight(leftChunk)]),
|
78
|
+
Right: (r) => (rightChunk.isEmpty ? [out, new PullBoth()] : [out, new PullLeft(rightChunk)]),
|
79
|
+
});
|
80
80
|
}
|
81
81
|
|
82
82
|
/**
|
package/_src/Stream/api.ts
CHANGED
@@ -56,7 +56,9 @@ export function aggregateAsyncWithin<R1, E1, A1, B, R2, C>(
|
|
56
56
|
__tsplusTrace?: string,
|
57
57
|
) {
|
58
58
|
return <R, E, A extends A1>(stream: Stream<R, E, A>): Stream<R | R1 | R2, E | E1, B> => {
|
59
|
-
return stream
|
59
|
+
return stream
|
60
|
+
.aggregateAsyncWithinEither(sink, schedule)
|
61
|
+
.filterMap((cb) => cb.match({ Left: () => Nothing(), Right: Maybe.just }));
|
60
62
|
};
|
61
63
|
}
|
62
64
|
|
@@ -165,14 +167,14 @@ export function aggregateAsyncWithinEither<R1, E1, A1, B, R2, C>(
|
|
165
167
|
(scheduleExit, sinkFiber) =>
|
166
168
|
IO.fromExit(scheduleExit).matchCauseIO(
|
167
169
|
(cause) =>
|
168
|
-
cause.failureOrCause.match(
|
169
|
-
() =>
|
170
|
+
cause.failureOrCause.match({
|
171
|
+
Left: () =>
|
170
172
|
handoff.offer(HandoffSignal.End(new ScheduleEnd())).forkDaemon >
|
171
173
|
sinkFiber.join.map(([leftovers, b]) => handleSide(leftovers, b, Nothing())),
|
172
|
-
(cause) =>
|
174
|
+
Right: (cause) =>
|
173
175
|
handoff.offer(HandoffSignal.Halt(cause)).forkDaemon >
|
174
176
|
sinkFiber.join.map(([leftovers, b]) => handleSide(leftovers, b, Nothing())),
|
175
|
-
),
|
177
|
+
}),
|
176
178
|
(c) =>
|
177
179
|
handoff.offer(HandoffSignal.End(new ScheduleEnd())).forkDaemon >
|
178
180
|
sinkFiber.join.map(([leftovers, b]) => handleSide(leftovers, b, Just(c))),
|
@@ -255,8 +257,8 @@ export function asyncInterrupt<R, E, A>(
|
|
255
257
|
}),
|
256
258
|
),
|
257
259
|
);
|
258
|
-
return eitherStream.match(
|
259
|
-
(canceler) => {
|
260
|
+
return eitherStream.match({
|
261
|
+
Left: (canceler) => {
|
260
262
|
const loop: Channel<never, unknown, unknown, unknown, E, Conc<A>, void> = Channel.unwrap(
|
261
263
|
output.take
|
262
264
|
.flatMap((take) => take.done)
|
@@ -267,8 +269,8 @@ export function asyncInterrupt<R, E, A>(
|
|
267
269
|
);
|
268
270
|
return new Stream(loop).ensuring(canceler);
|
269
271
|
},
|
270
|
-
(stream) => Stream.unwrap(output.shutdown.as(stream)),
|
271
|
-
);
|
272
|
+
Right: (stream) => Stream.unwrap(output.shutdown.as(stream)),
|
273
|
+
});
|
272
274
|
}),
|
273
275
|
);
|
274
276
|
}
|
@@ -336,10 +338,10 @@ export function asyncIO<R, E, A, R1 = R, E1 = E>(
|
|
336
338
|
.matchCauseIO(
|
337
339
|
(cause) =>
|
338
340
|
output.shutdown.as(
|
339
|
-
cause.failureOrCause.match(
|
340
|
-
(maybeError) => maybeError.match(() => Channel.endNow(undefined), Channel.failNow),
|
341
|
-
Channel.failCauseNow,
|
342
|
-
),
|
341
|
+
cause.failureOrCause.match({
|
342
|
+
Left: (maybeError) => maybeError.match(() => Channel.endNow(undefined), Channel.failNow),
|
343
|
+
Right: Channel.failCauseNow,
|
344
|
+
}),
|
343
345
|
),
|
344
346
|
(as) => IO.succeed(Channel.writeNow(as) > loop),
|
345
347
|
),
|
@@ -577,7 +579,7 @@ function bufferSignalConsumer<R, E, A>(
|
|
577
579
|
*/
|
578
580
|
export function catchAll<R1, E, E1, A1>(f: (e: E) => Stream<R1, E1, A1>, __tsplusTrace?: string) {
|
579
581
|
return <R, A>(stream: Stream<R, E, A>): Stream<R | R1, E1, A | A1> => {
|
580
|
-
return stream.catchAllCause((cause) => cause.failureOrCause.match(f, Stream.failCauseNow));
|
582
|
+
return stream.catchAllCause((cause) => cause.failureOrCause.match({ Left: f, Right: Stream.failCauseNow }));
|
581
583
|
};
|
582
584
|
}
|
583
585
|
|
@@ -3208,7 +3210,7 @@ export function toPull<R, E, A>(
|
|
3208
3210
|
__tsplusTrace?: string,
|
3209
3211
|
): IO<R | Scope, never, IO<R, Maybe<E>, Conc<A>>> {
|
3210
3212
|
return stream.channel.toPull.map((io) =>
|
3211
|
-
io.mapError(Maybe.just).flatMap((r) => r.match(() => IO.failNow(Nothing()), IO.succeedNow)),
|
3213
|
+
io.mapError(Maybe.just).flatMap((r) => r.match({ Left: () => IO.failNow(Nothing()), Right: IO.succeedNow })),
|
3212
3214
|
);
|
3213
3215
|
}
|
3214
3216
|
|
@@ -3430,22 +3432,22 @@ export function zipWithLatest<A, R1, E1, B, C>(fb: Stream<R1, E1, B>, f: (a: A,
|
|
3430
3432
|
Stream.repeatIOMaybe(left)
|
3431
3433
|
.mergeEither(Stream.repeatIOMaybe(right))
|
3432
3434
|
.mapIO((ab) =>
|
3433
|
-
ab.match(
|
3434
|
-
(leftChunk) =>
|
3435
|
+
ab.match({
|
3436
|
+
Left: (leftChunk) =>
|
3435
3437
|
latest.modify(([_, rightLatest]) =>
|
3436
3438
|
tuple(
|
3437
3439
|
leftChunk.map((a) => f(a, rightLatest)),
|
3438
3440
|
tuple(leftChunk.unsafeGet(leftChunk.length - 1), rightLatest),
|
3439
3441
|
),
|
3440
3442
|
),
|
3441
|
-
(rightChunk) =>
|
3443
|
+
Right: (rightChunk) =>
|
3442
3444
|
latest.modify(([leftLatest, _]) =>
|
3443
3445
|
tuple(
|
3444
3446
|
rightChunk.map((b) => f(leftLatest, b)),
|
3445
3447
|
tuple(leftLatest, rightChunk.unsafeGet(rightChunk.length - 1)),
|
3446
3448
|
),
|
3447
3449
|
),
|
3448
|
-
),
|
3450
|
+
}),
|
3449
3451
|
)
|
3450
3452
|
.flatMap(Stream.fromChunkNow),
|
3451
3453
|
),
|
package/_src/SupervisorPatch.ts
CHANGED
@@ -82,6 +82,7 @@ export function diff(oldValue: Supervisor<any>, newValue: Supervisor<any>): Supe
|
|
82
82
|
}
|
83
83
|
}
|
84
84
|
|
85
|
+
/** @tsplus tailRec */
|
85
86
|
function applyLoop(supervisor: Supervisor<any>, patches: List<SupervisorPatch>): Supervisor<any> {
|
86
87
|
if (patches.isEmpty()) {
|
87
88
|
return supervisor;
|
package/_src/TRef/definition.ts
CHANGED
@@ -159,8 +159,8 @@ export class Derived<EA, EB, A, B> extends TRefInternal<EA, EB, A, B> {
|
|
159
159
|
(getEither, setEither, value, atomic) =>
|
160
160
|
new Derived((f) =>
|
161
161
|
f(
|
162
|
-
(s) => getEither(s).match((e) => Either.left(eb(e)), bd),
|
163
|
-
(c) => ca(c).flatMap((a) => setEither(a).match((e) => Either.left(ea(e)), Either.right)),
|
162
|
+
(s) => getEither(s).match({ Left: (e) => Either.left(eb(e)), Right: bd }),
|
163
|
+
(c) => ca(c).flatMap((a) => setEither(a).match({ Left: (e) => Either.left(ea(e)), Right: Either.right })),
|
164
164
|
value,
|
165
165
|
atomic,
|
166
166
|
),
|
@@ -178,11 +178,11 @@ export class Derived<EA, EB, A, B> extends TRefInternal<EA, EB, A, B> {
|
|
178
178
|
(getEither, setEither, value, atomic) =>
|
179
179
|
new DerivedAll((f) =>
|
180
180
|
f(
|
181
|
-
(s) => getEither(s).match((e) => Either.left(eb(e)), bd),
|
181
|
+
(s) => getEither(s).match({ Left: (e) => Either.left(eb(e)), Right: bd }),
|
182
182
|
(c) => (s) =>
|
183
183
|
getEither(s)
|
184
|
-
.match((e) => Either.left(ec(e)), ca(c))
|
185
|
-
.flatMap((a) => setEither(a).match((e) => Either.left(ea(e)), Either.right)),
|
184
|
+
.match({ Left: (e) => Either.left(ec(e)), Right: ca(c) })
|
185
|
+
.flatMap((a) => setEither(a).match({ Left: (e) => Either.left(ea(e)), Right: Either.right })),
|
186
186
|
value,
|
187
187
|
atomic,
|
188
188
|
),
|
@@ -192,27 +192,29 @@ export class Derived<EA, EB, A, B> extends TRefInternal<EA, EB, A, B> {
|
|
192
192
|
|
193
193
|
get get(): STM<never, EB, B> {
|
194
194
|
return this.use((getEither, _setEither, value, _atomic) =>
|
195
|
-
value.get.flatMap((s) => getEither(s).match(STM.failNow, STM.succeedNow)),
|
195
|
+
value.get.flatMap((s) => getEither(s).match({ Left: STM.failNow, Right: STM.succeedNow })),
|
196
196
|
);
|
197
197
|
}
|
198
198
|
|
199
199
|
set(a: A, __tsplusTrace?: string | undefined): STM<never, EA, void> {
|
200
|
-
return this.use((_getEither, setEither, value, _atomic) =>
|
200
|
+
return this.use((_getEither, setEither, value, _atomic) =>
|
201
|
+
setEither(a).match({ Left: STM.failNow, Right: (s) => value.set(s) }),
|
202
|
+
);
|
201
203
|
}
|
202
204
|
|
203
205
|
modify<C>(f: (b: B) => readonly [C, A], __tsplusTrace?: string | undefined): STM<never, EA | EB, C> {
|
204
206
|
return this.use((getEither, setEither, value, _atomic) =>
|
205
207
|
value.modify((s) =>
|
206
|
-
getEither(s).match(
|
207
|
-
(e) => [Either.left<EA | EB, C>(e), s],
|
208
|
-
(a1) => {
|
208
|
+
getEither(s).match({
|
209
|
+
Left: (e) => [Either.left<EA | EB, C>(e), s],
|
210
|
+
Right: (a1) => {
|
209
211
|
const [b, a2] = f(a1);
|
210
|
-
return setEither(a2).match(
|
211
|
-
(e) => [Either.left(e), s],
|
212
|
-
(s) => [Either.right(b), s],
|
213
|
-
);
|
212
|
+
return setEither(a2).match({
|
213
|
+
Left: (e) => [Either.left(e), s],
|
214
|
+
Right: (s) => [Either.right(b), s],
|
215
|
+
});
|
214
216
|
},
|
215
|
-
),
|
217
|
+
}),
|
216
218
|
),
|
217
219
|
).absolve;
|
218
220
|
}
|
@@ -253,8 +255,9 @@ export class DerivedAll<EA, EB, A, B> extends TRefInternal<EA, EB, A, B> {
|
|
253
255
|
(getEither, setEither, value, atomic) =>
|
254
256
|
new DerivedAll((f) =>
|
255
257
|
f(
|
256
|
-
(s) => getEither(s).match((e) => Either.left(eb(e)), bd),
|
257
|
-
(c) => (s) =>
|
258
|
+
(s) => getEither(s).match({ Left: (e) => Either.left(eb(e)), Right: bd }),
|
259
|
+
(c) => (s) =>
|
260
|
+
ca(c).flatMap((a) => setEither(a)(s).match({ Left: (e) => Either.left(ea(e)), Right: Either.right })),
|
258
261
|
value,
|
259
262
|
atomic,
|
260
263
|
),
|
@@ -272,11 +275,11 @@ export class DerivedAll<EA, EB, A, B> extends TRefInternal<EA, EB, A, B> {
|
|
272
275
|
(getEither, setEither, value, atomic) =>
|
273
276
|
new DerivedAll((f) =>
|
274
277
|
f(
|
275
|
-
(s) => getEither(s).match((e) => Either.left(eb(e)), bd),
|
278
|
+
(s) => getEither(s).match({ Left: (e) => Either.left(eb(e)), Right: bd }),
|
276
279
|
(c) => (s) =>
|
277
280
|
getEither(s)
|
278
|
-
.match((e) => Either.left(ec(e)), ca(c))
|
279
|
-
.flatMap((a) => setEither(a)(s).match((e) => Either.left(ea(e)), Either.right)),
|
281
|
+
.match({ Left: (e) => Either.left(ec(e)), Right: ca(c) })
|
282
|
+
.flatMap((a) => setEither(a)(s).match({ Left: (e) => Either.left(ea(e)), Right: Either.right })),
|
280
283
|
value,
|
281
284
|
atomic,
|
282
285
|
),
|
@@ -286,17 +289,17 @@ export class DerivedAll<EA, EB, A, B> extends TRefInternal<EA, EB, A, B> {
|
|
286
289
|
|
287
290
|
get get(): STM<never, EB, B> {
|
288
291
|
return this.use((getEither, _setEither, value, _atomic) =>
|
289
|
-
value.get.flatMap((s) => getEither(s).match(STM.failNow, STM.succeedNow)),
|
292
|
+
value.get.flatMap((s) => getEither(s).match({ Left: STM.failNow, Right: STM.succeedNow })),
|
290
293
|
);
|
291
294
|
}
|
292
295
|
|
293
296
|
set(a: A, __tsplusTrace?: string | undefined): STM<never, EA, void> {
|
294
297
|
return this.use((_getEither, setEither, value, _atomic) =>
|
295
298
|
value.modify((s) =>
|
296
|
-
setEither(a)(s).match(
|
297
|
-
(e) => [Either.left(e), s] as [Either<EA, void>, typeof s],
|
298
|
-
(s) => [Either.right(undefined), s],
|
299
|
-
),
|
299
|
+
setEither(a)(s).match({
|
300
|
+
Left: (e) => [Either.left(e), s] as [Either<EA, void>, typeof s],
|
301
|
+
Right: (s) => [Either.right(undefined), s],
|
302
|
+
}),
|
300
303
|
),
|
301
304
|
).absolve;
|
302
305
|
}
|
@@ -304,16 +307,16 @@ export class DerivedAll<EA, EB, A, B> extends TRefInternal<EA, EB, A, B> {
|
|
304
307
|
modify<C>(f: (b: B) => readonly [C, A], __tsplusTrace?: string | undefined): STM<never, EA | EB, C> {
|
305
308
|
return this.use((getEither, setEither, value, atomic) =>
|
306
309
|
value.modify((s) =>
|
307
|
-
getEither(s).match(
|
308
|
-
(e) => [Either.left<EA | EB, C>(e), s],
|
309
|
-
(a1) => {
|
310
|
+
getEither(s).match({
|
311
|
+
Left: (e) => [Either.left<EA | EB, C>(e), s],
|
312
|
+
Right: (a1) => {
|
310
313
|
const [b, a2] = f(a1);
|
311
|
-
return setEither(a2)(s).match(
|
312
|
-
(e) => [Either.left(e), s],
|
313
|
-
(s) => [Either.right(b), s],
|
314
|
-
);
|
314
|
+
return setEither(a2)(s).match({
|
315
|
+
Left: (e) => [Either.left(e), s],
|
316
|
+
Right: (s) => [Either.right(b), s],
|
317
|
+
});
|
315
318
|
},
|
316
|
-
),
|
319
|
+
}),
|
317
320
|
),
|
318
321
|
).absolve;
|
319
322
|
}
|