@fncts/io 0.0.37 → 0.0.39
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/Channel/definition.d.ts +108 -104
- package/FiberRef/unsafe.d.ts +5 -0
- package/Future/definition.d.ts +24 -3
- package/IO/api/all.d.ts +14 -15
- package/IO/definition.d.ts +17 -15
- 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/all.cjs +4 -4
- package/_cjs/IO/api/all.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/definition.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/all.mjs +4 -4
- package/_mjs/IO/api/all.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/definition.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/all.ts +14 -15
- package/_src/IO/api/asyncInterrupt.ts +4 -4
- package/_src/IO/api.ts +19 -15
- package/_src/IO/definition.ts +5 -3
- 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/Derived.ts
CHANGED
|
@@ -35,8 +35,8 @@ export class Derived<EA, EB, A, B> extends RefInternal<never, never, EA, EB, A,
|
|
|
35
35
|
new Derived<EC, ED, C, D>((f) =>
|
|
36
36
|
f(
|
|
37
37
|
value,
|
|
38
|
-
(s) => getEither(s).match((e) => Either.left(eb(e)), bd),
|
|
39
|
-
(c) => ca(c).flatMap((a) => setEither(a).match((e) => Either.left(ea(e)), Either.right)),
|
|
38
|
+
(s) => getEither(s).match({ Left: (e) => Either.left(eb(e)), Right: bd }),
|
|
39
|
+
(c) => ca(c).flatMap((a) => setEither(a).match({ Left: (e) => Either.left(ea(e)), Right: Either.right })),
|
|
40
40
|
),
|
|
41
41
|
),
|
|
42
42
|
);
|
|
@@ -54,41 +54,43 @@ export class Derived<EA, EB, A, B> extends RefInternal<never, never, EA, EB, A,
|
|
|
54
54
|
new DerivedAll<EC, ED, C, D>((f) =>
|
|
55
55
|
f(
|
|
56
56
|
value,
|
|
57
|
-
(s) => getEither(s).match((e) => Either.left(eb(e)), bd),
|
|
57
|
+
(s) => getEither(s).match({ Left: (e) => Either.left(eb(e)), Right: bd }),
|
|
58
58
|
(c) => (s) =>
|
|
59
59
|
getEither(s)
|
|
60
|
-
.match(
|
|
61
|
-
(eb) => Either.left(ec(eb)),
|
|
62
|
-
(b) => ca(c)(b),
|
|
63
|
-
)
|
|
64
|
-
.flatMap((a) => setEither(a).match((e) => Either.left(ea(e)), Either.right)),
|
|
60
|
+
.match({
|
|
61
|
+
Left: (eb) => Either.left(ec(eb)),
|
|
62
|
+
Right: (b) => ca(c)(b),
|
|
63
|
+
})
|
|
64
|
+
.flatMap((a) => setEither(a).match({ Left: (e) => Either.left(ea(e)), Right: Either.right })),
|
|
65
65
|
),
|
|
66
66
|
),
|
|
67
67
|
);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
get get(): FIO<EB, B> {
|
|
71
|
-
return this.use((value, getEither) =>
|
|
71
|
+
return this.use((value, getEither) =>
|
|
72
|
+
value.get.flatMap((s) => getEither(s).match({ Left: IO.failNow, Right: IO.succeedNow })),
|
|
73
|
+
);
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
set(a: A): FIO<EA, void> {
|
|
75
|
-
return this.use((value, _, setEither) => setEither(a).match(IO.failNow, (s) => value.set(s)));
|
|
77
|
+
return this.use((value, _, setEither) => setEither(a).match({ Left: IO.failNow, Right: (s) => value.set(s) }));
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
modify<C>(f: (b: B) => readonly [C, A], __tsplusTrace?: string | undefined): IO<never, EA | EB, C> {
|
|
79
81
|
return this.use(
|
|
80
82
|
(value, getEither, setEither) =>
|
|
81
83
|
value.modify((s) =>
|
|
82
|
-
getEither(s).match(
|
|
83
|
-
(e) => tuple(Either.left(e), s),
|
|
84
|
-
(a1) => {
|
|
84
|
+
getEither(s).match({
|
|
85
|
+
Left: (e) => tuple(Either.left(e), s),
|
|
86
|
+
Right: (a1) => {
|
|
85
87
|
const [b, a2] = f(a1);
|
|
86
|
-
return setEither(a2).match(
|
|
87
|
-
(e) => tuple(Either.left(e), s),
|
|
88
|
-
(s) => tuple(Either.right<EA | EB, C>(b), s),
|
|
89
|
-
);
|
|
88
|
+
return setEither(a2).match({
|
|
89
|
+
Left: (e) => tuple(Either.left(e), s),
|
|
90
|
+
Right: (s) => tuple(Either.right<EA | EB, C>(b), s),
|
|
91
|
+
});
|
|
90
92
|
},
|
|
91
|
-
),
|
|
93
|
+
}),
|
|
92
94
|
).absolve,
|
|
93
95
|
);
|
|
94
96
|
}
|
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
|
}
|