@fncts/io 0.0.32 → 0.0.33
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/Fiber/FiberRuntime.d.ts +3 -3
- package/IO/api.d.ts +2 -1
- package/IO/definition.d.ts +34 -24
- package/IO/runtime.d.ts +7 -17
- package/STM/definition.d.ts +1 -1
- package/Stream/api.d.ts +89 -1
- package/_cjs/Channel/api/mapOutConcurrentIO.cjs +1 -1
- package/_cjs/Channel/api/mapOutConcurrentIO.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAllWith.cjs +3 -3
- package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
- package/_cjs/Channel/api/mergeWith.cjs +4 -4
- package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
- package/_cjs/Channel/api/toPull.cjs +2 -2
- package/_cjs/Channel/api/toPull.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +6 -6
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Channel/internal/ChannelExecutor.cjs +10 -10
- package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +3 -3
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
- package/_cjs/Clock/live.cjs +1 -1
- package/_cjs/Clock/live.cjs.map +1 -1
- package/_cjs/Fiber/FiberRuntime.cjs +78 -47
- package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
- package/_cjs/Fiber/api/collectAll.cjs +1 -1
- package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
- package/_cjs/Fiber/api/mapIO.cjs +1 -1
- package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
- package/_cjs/Fiber/api/zipWith.cjs +1 -1
- package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
- package/_cjs/Fiber/constructors.cjs +5 -5
- package/_cjs/Fiber/constructors.cjs.map +1 -1
- package/_cjs/FiberRef/unsafe.cjs +3 -2
- package/_cjs/FiberRef/unsafe.cjs.map +1 -1
- package/_cjs/Future/api.cjs +4 -4
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/Hub/internal.cjs +1 -1
- package/_cjs/Hub/internal.cjs.map +1 -1
- package/_cjs/IO/api/asyncIO.cjs +1 -1
- package/_cjs/IO/api/asyncIO.cjs.map +1 -1
- package/_cjs/IO/api/asyncInterrupt.cjs +2 -2
- package/_cjs/IO/api/asyncInterrupt.cjs.map +1 -1
- package/_cjs/IO/api/concurrency.cjs +3 -3
- package/_cjs/IO/api/concurrency.cjs.map +1 -1
- package/_cjs/IO/api/daemonChildren.cjs +1 -1
- package/_cjs/IO/api/daemonChildren.cjs.map +1 -1
- package/_cjs/IO/api/fork.cjs +2 -1
- package/_cjs/IO/api/fork.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +2 -2
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/repeat.cjs +2 -2
- package/_cjs/IO/api/repeat.cjs.map +1 -1
- package/_cjs/IO/api/timeout.cjs +1 -1
- package/_cjs/IO/api/timeout.cjs.map +1 -1
- package/_cjs/IO/api/transplant.cjs +1 -1
- package/_cjs/IO/api/transplant.cjs.map +1 -1
- package/_cjs/IO/api/withEarlyRelease.cjs +1 -1
- package/_cjs/IO/api/withEarlyRelease.cjs.map +1 -1
- package/_cjs/IO/api.cjs +33 -32
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs +17 -31
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO/runtime.cjs +45 -38
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/Logger/api.cjs +3 -2
- package/_cjs/Logger/api.cjs.map +1 -1
- package/_cjs/MVar/api.cjs +11 -11
- package/_cjs/MVar/api.cjs.map +1 -1
- package/_cjs/Push/api.cjs +3 -3
- package/_cjs/Push/api.cjs.map +1 -1
- package/_cjs/Push/internal.cjs +1 -1
- package/_cjs/Push/internal.cjs.map +1 -1
- package/_cjs/Queue/api/filterInputIO.cjs +2 -2
- package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
- package/_cjs/Ref/Derived.cjs +4 -4
- package/_cjs/Ref/Derived.cjs.map +1 -1
- package/_cjs/Ref/DerivedAll.cjs +5 -5
- package/_cjs/Ref/DerivedAll.cjs.map +1 -1
- package/_cjs/Ref/Synchronized/api.cjs +3 -3
- package/_cjs/Ref/Synchronized/api.cjs.map +1 -1
- package/_cjs/Ref/api/collect.cjs +1 -1
- package/_cjs/Ref/api/collect.cjs.map +1 -1
- package/_cjs/Ref/api/dimap.cjs +3 -3
- package/_cjs/Ref/api/dimap.cjs.map +1 -1
- package/_cjs/Ref/api/filter.cjs +2 -2
- package/_cjs/Ref/api/filter.cjs.map +1 -1
- package/_cjs/Ref/api.cjs +2 -3
- package/_cjs/Ref/api.cjs.map +1 -1
- package/_cjs/RefSubject/Atomic.cjs +6 -6
- package/_cjs/RefSubject/Atomic.cjs.map +1 -1
- package/_cjs/STM/api.cjs +5 -5
- package/_cjs/STM/api.cjs.map +1 -1
- package/_cjs/STM/definition.cjs +1 -1
- package/_cjs/STM/definition.cjs.map +1 -1
- package/_cjs/STM/internal/CommitState.cjs +5 -4
- package/_cjs/STM/internal/CommitState.cjs.map +1 -1
- package/_cjs/STM/internal/Journal.cjs +8 -8
- package/_cjs/STM/internal/Journal.cjs.map +1 -1
- package/_cjs/Schedule/api/driver.cjs +3 -3
- package/_cjs/Schedule/api/driver.cjs.map +1 -1
- package/_cjs/Schedule/api.cjs +8 -8
- package/_cjs/Schedule/api.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +1 -1
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api.cjs +3 -3
- package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +1 -1
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/Semaphore.cjs +2 -2
- package/_cjs/Semaphore.cjs.map +1 -1
- package/_cjs/Sink/api.cjs +6 -6
- package/_cjs/Sink/api.cjs.map +1 -1
- package/_cjs/Stream/api/zipAllWith.cjs +8 -8
- package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
- package/_cjs/Stream/api/zipWithChunks.cjs +6 -6
- package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +370 -130
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/Stream/internal/Handoff.cjs +2 -2
- package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
- package/_cjs/Stream/internal/Pull.cjs +2 -2
- package/_cjs/Stream/internal/Pull.cjs.map +1 -1
- package/_cjs/Stream/internal/Take.cjs +6 -6
- package/_cjs/Stream/internal/Take.cjs.map +1 -1
- package/_cjs/Stream/internal/util.cjs +3 -2
- package/_cjs/Stream/internal/util.cjs.map +1 -1
- package/_cjs/TFuture/api.cjs +3 -3
- package/_cjs/TFuture/api.cjs.map +1 -1
- package/_cjs/TFuture/constructors.cjs +1 -1
- package/_cjs/TFuture/constructors.cjs.map +1 -1
- package/_cjs/TRef/definition.cjs +9 -9
- package/_cjs/TRef/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/findIO.cjs +3 -3
- package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
- package/_cjs/data/Exit/foreachIO.cjs +1 -1
- package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
- package/_mjs/Channel/api/mapOutConcurrentIO.mjs +1 -1
- package/_mjs/Channel/api/mapOutConcurrentIO.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAllWith.mjs +3 -3
- package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
- package/_mjs/Channel/api/mergeWith.mjs +4 -4
- package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
- package/_mjs/Channel/api/toPull.mjs +2 -2
- package/_mjs/Channel/api/toPull.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +6 -6
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Channel/internal/ChannelExecutor.mjs +10 -10
- package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +3 -3
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
- package/_mjs/Clock/live.mjs +1 -1
- package/_mjs/Clock/live.mjs.map +1 -1
- package/_mjs/Fiber/FiberRuntime.mjs +78 -47
- package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
- package/_mjs/Fiber/api/collectAll.mjs +1 -1
- package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
- package/_mjs/Fiber/api/mapIO.mjs +1 -1
- package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
- package/_mjs/Fiber/api/zipWith.mjs +1 -1
- package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
- package/_mjs/Fiber/constructors.mjs +5 -5
- package/_mjs/Fiber/constructors.mjs.map +1 -1
- package/_mjs/FiberRef/unsafe.mjs +3 -2
- package/_mjs/FiberRef/unsafe.mjs.map +1 -1
- package/_mjs/Future/api.mjs +4 -4
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/Hub/internal.mjs +1 -1
- package/_mjs/Hub/internal.mjs.map +1 -1
- package/_mjs/IO/api/asyncIO.mjs +1 -1
- package/_mjs/IO/api/asyncIO.mjs.map +1 -1
- package/_mjs/IO/api/asyncInterrupt.mjs +2 -2
- package/_mjs/IO/api/asyncInterrupt.mjs.map +1 -1
- package/_mjs/IO/api/concurrency.mjs +3 -3
- package/_mjs/IO/api/concurrency.mjs.map +1 -1
- package/_mjs/IO/api/daemonChildren.mjs +1 -1
- package/_mjs/IO/api/daemonChildren.mjs.map +1 -1
- package/_mjs/IO/api/fork.mjs +2 -1
- package/_mjs/IO/api/fork.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +2 -2
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/repeat.mjs +2 -2
- package/_mjs/IO/api/repeat.mjs.map +1 -1
- package/_mjs/IO/api/timeout.mjs +1 -1
- package/_mjs/IO/api/timeout.mjs.map +1 -1
- package/_mjs/IO/api/transplant.mjs +1 -1
- package/_mjs/IO/api/transplant.mjs.map +1 -1
- package/_mjs/IO/api/withEarlyRelease.mjs +1 -1
- package/_mjs/IO/api/withEarlyRelease.mjs.map +1 -1
- package/_mjs/IO/api.mjs +32 -30
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs +16 -27
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO/runtime.mjs +42 -33
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/Logger/api.mjs +3 -2
- package/_mjs/Logger/api.mjs.map +1 -1
- package/_mjs/MVar/api.mjs +11 -11
- package/_mjs/MVar/api.mjs.map +1 -1
- package/_mjs/Push/api.mjs +3 -3
- package/_mjs/Push/api.mjs.map +1 -1
- package/_mjs/Push/internal.mjs +1 -1
- package/_mjs/Push/internal.mjs.map +1 -1
- package/_mjs/Queue/api/filterInputIO.mjs +2 -2
- package/_mjs/Queue/api/filterInputIO.mjs.map +1 -1
- package/_mjs/Ref/Derived.mjs +4 -4
- package/_mjs/Ref/Derived.mjs.map +1 -1
- package/_mjs/Ref/DerivedAll.mjs +5 -5
- package/_mjs/Ref/DerivedAll.mjs.map +1 -1
- package/_mjs/Ref/Synchronized/api.mjs +3 -3
- package/_mjs/Ref/Synchronized/api.mjs.map +1 -1
- package/_mjs/Ref/api/collect.mjs +1 -1
- package/_mjs/Ref/api/collect.mjs.map +1 -1
- package/_mjs/Ref/api/dimap.mjs +3 -3
- package/_mjs/Ref/api/dimap.mjs.map +1 -1
- package/_mjs/Ref/api/filter.mjs +2 -2
- package/_mjs/Ref/api/filter.mjs.map +1 -1
- package/_mjs/Ref/api.mjs +2 -1
- package/_mjs/Ref/api.mjs.map +1 -1
- package/_mjs/RefSubject/Atomic.mjs +6 -6
- package/_mjs/RefSubject/Atomic.mjs.map +1 -1
- package/_mjs/STM/api.mjs +5 -5
- package/_mjs/STM/api.mjs.map +1 -1
- package/_mjs/STM/definition.mjs +1 -1
- package/_mjs/STM/definition.mjs.map +1 -1
- package/_mjs/STM/internal/CommitState.mjs +5 -4
- package/_mjs/STM/internal/CommitState.mjs.map +1 -1
- package/_mjs/STM/internal/Journal.mjs +8 -8
- package/_mjs/STM/internal/Journal.mjs.map +1 -1
- package/_mjs/Schedule/api/driver.mjs +3 -3
- package/_mjs/Schedule/api/driver.mjs.map +1 -1
- package/_mjs/Schedule/api.mjs +8 -8
- package/_mjs/Schedule/api.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +1 -1
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api.mjs +3 -3
- package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +1 -1
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/Semaphore.mjs +2 -2
- package/_mjs/Semaphore.mjs.map +1 -1
- package/_mjs/Sink/api.mjs +6 -6
- package/_mjs/Sink/api.mjs.map +1 -1
- package/_mjs/Stream/api/zipAllWith.mjs +8 -8
- package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
- package/_mjs/Stream/api/zipWithChunks.mjs +6 -6
- package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +281 -58
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/Stream/internal/Handoff.mjs +2 -2
- package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
- package/_mjs/Stream/internal/Pull.mjs +2 -2
- package/_mjs/Stream/internal/Pull.mjs.map +1 -1
- package/_mjs/Stream/internal/Take.mjs +6 -6
- package/_mjs/Stream/internal/Take.mjs.map +1 -1
- package/_mjs/Stream/internal/util.mjs +3 -2
- package/_mjs/Stream/internal/util.mjs.map +1 -1
- package/_mjs/TFuture/api.mjs +3 -3
- package/_mjs/TFuture/api.mjs.map +1 -1
- package/_mjs/TFuture/constructors.mjs +1 -1
- package/_mjs/TFuture/constructors.mjs.map +1 -1
- package/_mjs/TRef/definition.mjs +9 -9
- package/_mjs/TRef/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/findIO.mjs +3 -3
- package/_mjs/collection/immutable/Conc/findIO.mjs.map +1 -1
- package/_mjs/data/Exit/foreachIO.mjs +1 -1
- package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
- package/_src/Fiber/FiberRuntime.ts +39 -16
- package/_src/IO/api/asyncIO.ts +1 -1
- package/_src/IO/api.ts +4 -3
- package/_src/IO/definition.ts +35 -28
- package/_src/IO/runtime.ts +36 -35
- package/_src/RefSubject/Atomic.ts +4 -4
- package/_src/STM/definition.ts +1 -1
- package/_src/Stream/api.ts +258 -8
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constructors.mjs","mappings":";;;;;aAIgBA,IAAI;AAJpB;;;;AAIA,gBAA2BC,aAAsB;EAC/C,OAAOC,oBAA+CC,CAAC,IAAKC,uBAAO,CAACC,GAAG,CAACF,CAAC,CAAC,EADjDF,eAClBK,2BAA+BC,
|
|
1
|
+
{"version":3,"file":"constructors.mjs","mappings":";;;;;aAIgBA,IAAI;AAJpB;;;;AAIA,gBAA2BC,aAAsB;EAC/C,OAAOC,oBAA+CC,CAAC,IAAKC,uBAAO,CAACC,GAAG,CAACF,CAAC,CAAC,EADjDF,eAClBK,2BAA+BC,wBADbN,cACsB,EADtBA,cACuB,CAA2B;AAC7E;AAEA;;;AAGA,OAAM,SAAUO,UAAU,CAAOP,aAAsB;EACrD,kCAAOQ,OADwBR,cACJ,EADIA;AAEjC","names":["make","__tsplusTrace","tsplus_module_4","_","tsplus_module_1","get","tsplus_module_3","tsplus_module_2","makeCommit","make_1"],"sourceRoot":"","sources":["../../_src/TFuture/constructors.ts"],"sourcesContent":[null]}
|
package/_mjs/TRef/definition.mjs
CHANGED
|
@@ -64,10 +64,10 @@ export class Derived extends TRefInternal {
|
|
|
64
64
|
this.use = use;
|
|
65
65
|
}
|
|
66
66
|
match(ea, eb, ca, bd) {
|
|
67
|
-
return this.use((getEither, setEither, value, atomic) => new Derived(f => f(s => tsplus_module_2.match(e => tsplus_module_1.left(eb(e)), bd)(getEither(s)), c => tsplus_module_3.flatMap(a => tsplus_module_2.match(e => tsplus_module_1.left(ea(e)), tsplus_module_1.right)(setEither(a)))(ca(c)), value, atomic)));
|
|
67
|
+
return this.use((getEither, setEither, value, atomic) => new Derived(f => f(s => tsplus_module_2.match(e => tsplus_module_1.left(eb(e), fileName_1 + ":162:57"), bd)(getEither(s)), c => tsplus_module_3.flatMap(a => tsplus_module_2.match(e => tsplus_module_1.left(ea(e), fileName_1 + ":163:78"), tsplus_module_1.right)(setEither(a)))(ca(c)), value, atomic)));
|
|
68
68
|
}
|
|
69
69
|
matchAll(ea, eb, ec, ca, bd) {
|
|
70
|
-
return this.use((getEither, setEither, value, atomic) => new DerivedAll(f => f(s => tsplus_module_2.match(e => tsplus_module_1.left(eb(e)), bd)(getEither(s)), c => s => tsplus_module_3.flatMap(a => tsplus_module_2.match(e => tsplus_module_1.left(ea(e)), tsplus_module_1.right)(setEither(a)))(tsplus_module_2.match(e => tsplus_module_1.left(ec(e)), ca(c))(getEither(s))), value, atomic)));
|
|
70
|
+
return this.use((getEither, setEither, value, atomic) => new DerivedAll(f => f(s => tsplus_module_2.match(e => tsplus_module_1.left(eb(e), fileName_1 + ":181:57"), bd)(getEither(s)), c => s => tsplus_module_3.flatMap(a => tsplus_module_2.match(e => tsplus_module_1.left(ea(e), fileName_1 + ":185:70"), tsplus_module_1.right)(setEither(a)))(tsplus_module_2.match(e => tsplus_module_1.left(ec(e), fileName_1 + ":184:42"), ca(c))(getEither(s))), value, atomic)));
|
|
71
71
|
}
|
|
72
72
|
get get() {
|
|
73
73
|
return this.use((getEither, _setEither, value, _atomic) => tsplus_module_5.flatMap(s => tsplus_module_2.match(tsplus_module_4.failNow, tsplus_module_4.succeedNow)(getEither(s)), fileName_1 + ":195:24")(value.get));
|
|
@@ -76,9 +76,9 @@ export class Derived extends TRefInternal {
|
|
|
76
76
|
return this.use((_getEither, setEither, value, _atomic) => tsplus_module_2.match(tsplus_module_4.failNow, s => value.set(s, fileName_1 + ":200:112"))(setEither(a)));
|
|
77
77
|
}
|
|
78
78
|
modify(f, __tsplusTrace) {
|
|
79
|
-
return tsplus_module_6.absolve(this.use((getEither, setEither, value, _atomic) => value.modify(s => tsplus_module_2.match(e => [tsplus_module_1.left(e), s], a1 => {
|
|
79
|
+
return tsplus_module_6.absolve(this.use((getEither, setEither, value, _atomic) => value.modify(s => tsplus_module_2.match(e => [tsplus_module_1.left(e, fileName_1 + ":207:30"), s], a1 => {
|
|
80
80
|
const [b, a2] = f(a1);
|
|
81
|
-
return tsplus_module_2.match(e => [tsplus_module_1.left(e), s], s => [tsplus_module_1.right(b), s])(setEither(a2));
|
|
81
|
+
return tsplus_module_2.match(e => [tsplus_module_1.left(e, fileName_1 + ":211:34"), s], s => [tsplus_module_1.right(b, fileName_1 + ":212:35"), s])(setEither(a2));
|
|
82
82
|
})(getEither(s)), fileName_1 + ":205:19")), fileName_1 + ":217:6");
|
|
83
83
|
}
|
|
84
84
|
unsafeGet(journal, __tsplusTrace) {
|
|
@@ -94,21 +94,21 @@ export class DerivedAll extends TRefInternal {
|
|
|
94
94
|
this.use = use;
|
|
95
95
|
}
|
|
96
96
|
match(ea, eb, ca, bd) {
|
|
97
|
-
return this.use((getEither, setEither, value, atomic) => new DerivedAll(f => f(s => tsplus_module_2.match(e => tsplus_module_1.left(eb(e)), bd)(getEither(s)), c => s => tsplus_module_3.flatMap(a => tsplus_module_2.match(e => tsplus_module_1.left(ea(e)), tsplus_module_1.right)(setEither(a)(s)))(ca(c)), value, atomic)));
|
|
97
|
+
return this.use((getEither, setEither, value, atomic) => new DerivedAll(f => f(s => tsplus_module_2.match(e => tsplus_module_1.left(eb(e), fileName_1 + ":256:57"), bd)(getEither(s)), c => s => tsplus_module_3.flatMap(a => tsplus_module_2.match(e => tsplus_module_1.left(ea(e), fileName_1 + ":257:88"), tsplus_module_1.right)(setEither(a)(s)))(ca(c)), value, atomic)));
|
|
98
98
|
}
|
|
99
99
|
matchAll(ea, eb, ec, ca, bd) {
|
|
100
|
-
return this.use((getEither, setEither, value, atomic) => new DerivedAll(f => f(s => tsplus_module_2.match(e => tsplus_module_1.left(eb(e)), bd)(getEither(s)), c => s => tsplus_module_3.flatMap(a => tsplus_module_2.match(e => tsplus_module_1.left(ea(e)), tsplus_module_1.right)(setEither(a)(s)))(tsplus_module_2.match(e => tsplus_module_1.left(ec(e)), ca(c))(getEither(s))), value, atomic)));
|
|
100
|
+
return this.use((getEither, setEither, value, atomic) => new DerivedAll(f => f(s => tsplus_module_2.match(e => tsplus_module_1.left(eb(e), fileName_1 + ":275:57"), bd)(getEither(s)), c => s => tsplus_module_3.flatMap(a => tsplus_module_2.match(e => tsplus_module_1.left(ea(e), fileName_1 + ":279:73"), tsplus_module_1.right)(setEither(a)(s)))(tsplus_module_2.match(e => tsplus_module_1.left(ec(e), fileName_1 + ":278:42"), ca(c))(getEither(s))), value, atomic)));
|
|
101
101
|
}
|
|
102
102
|
get get() {
|
|
103
103
|
return this.use((getEither, _setEither, value, _atomic) => tsplus_module_5.flatMap(s => tsplus_module_2.match(tsplus_module_4.failNow, tsplus_module_4.succeedNow)(getEither(s)), fileName_1 + ":289:24")(value.get));
|
|
104
104
|
}
|
|
105
105
|
set(a, __tsplusTrace) {
|
|
106
|
-
return tsplus_module_6.absolve(this.use((_getEither, setEither, value, _atomic) => value.modify(s => tsplus_module_2.match(e => [tsplus_module_1.left(e), s], s => [tsplus_module_1.right(undefined), s])(setEither(a)(s)), fileName_1 + ":295:19")), fileName_1 + ":301:6");
|
|
106
|
+
return tsplus_module_6.absolve(this.use((_getEither, setEither, value, _atomic) => value.modify(s => tsplus_module_2.match(e => [tsplus_module_1.left(e, fileName_1 + ":297:30"), s], s => [tsplus_module_1.right(undefined, fileName_1 + ":298:31"), s])(setEither(a)(s)), fileName_1 + ":295:19")), fileName_1 + ":301:6");
|
|
107
107
|
}
|
|
108
108
|
modify(f, __tsplusTrace) {
|
|
109
|
-
return tsplus_module_6.absolve(this.use((getEither, setEither, value, atomic) => value.modify(s => tsplus_module_2.match(e => [tsplus_module_1.left(e), s], a1 => {
|
|
109
|
+
return tsplus_module_6.absolve(this.use((getEither, setEither, value, atomic) => value.modify(s => tsplus_module_2.match(e => [tsplus_module_1.left(e, fileName_1 + ":308:30"), s], a1 => {
|
|
110
110
|
const [b, a2] = f(a1);
|
|
111
|
-
return tsplus_module_2.match(e => [tsplus_module_1.left(e), s], s => [tsplus_module_1.right(b), s])(setEither(a2)(s));
|
|
111
|
+
return tsplus_module_2.match(e => [tsplus_module_1.left(e, fileName_1 + ":312:34"), s], s => [tsplus_module_1.right(b, fileName_1 + ":313:35"), s])(setEither(a2)(s));
|
|
112
112
|
})(getEither(s)), fileName_1 + ":306:19")), fileName_1 + ":318:6");
|
|
113
113
|
}
|
|
114
114
|
unsafeGet(journal, __tsplusTrace) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.mjs","mappings":"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
|
|
1
|
+
{"version":3,"file":"definition.mjs","mappings":"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","names":["Effect","TRefVariance","Symbol","for","TRefTypeId","TRef","TRefInternal","constructor","Atomic","versioned","todo","match","_ea","_eb","ca","bd","Derived","f","atomic","matchAll","_ec","DerivedAll","get","journal","entry","getOrMakeEntry","use","_","unsafeGet","set","a","__tsplusTrace","unsafeSet","modify","oldValue","retValue","newValue","ea","eb","getEither","setEither","value","s","tsplus_module_2","e","tsplus_module_1","c","tsplus_module_3","ec","_setEither","_atomic","tsplus_module_5","_getEither","a1","b","a2","_value","undefined","concrete","self","has","tsplus_module_7"],"sourceRoot":"","sources":["../../_src/TRef/definition.ts"],"sourcesContent":[null]}
|
|
@@ -4,7 +4,7 @@ import { concrete } from "@fncts/base/collection/immutable/Conc";
|
|
|
4
4
|
function findIOLoop(iterator, f, array, i, length, __tsplusTrace) {
|
|
5
5
|
if (i < length) {
|
|
6
6
|
const a = array[i];
|
|
7
|
-
return tsplus_module_2.flatMap(b => b ? tsplus_module_2.succeedNow(tsplus_module_1.just(a), __tsplusTrace) : findIOLoop(iterator, f, array, i + 1, length, __tsplusTrace), __tsplusTrace)(f(a));
|
|
7
|
+
return tsplus_module_2.flatMap(b => b ? tsplus_module_2.succeedNow(tsplus_module_1.just(a, __tsplusTrace), __tsplusTrace) : findIOLoop(iterator, f, array, i + 1, length, __tsplusTrace), __tsplusTrace)(f(a));
|
|
8
8
|
}
|
|
9
9
|
let result;
|
|
10
10
|
if (!(result = iterator.next()).done) {
|
|
@@ -12,7 +12,7 @@ function findIOLoop(iterator, f, array, i, length, __tsplusTrace) {
|
|
|
12
12
|
const len = arr.length;
|
|
13
13
|
return findIOLoop(iterator, f, arr, 0, len, __tsplusTrace);
|
|
14
14
|
}
|
|
15
|
-
return tsplus_module_2.succeedNow(tsplus_module_1.nothing(), __tsplusTrace);
|
|
15
|
+
return tsplus_module_2.succeedNow(tsplus_module_1.nothing(__tsplusTrace), __tsplusTrace);
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* @tsplus pipeable fncts.Conc findIO
|
|
@@ -27,7 +27,7 @@ export function findIO(f, __tsplusTrace) {
|
|
|
27
27
|
const length = array.length;
|
|
28
28
|
return findIOLoop(iterator, f, array, 0, length, __tsplusTrace);
|
|
29
29
|
} else {
|
|
30
|
-
return tsplus_module_2.succeedNow(tsplus_module_1.nothing(), __tsplusTrace);
|
|
30
|
+
return tsplus_module_2.succeedNow(tsplus_module_1.nothing(__tsplusTrace), __tsplusTrace);
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findIO.mjs","mappings":";;AAAA,SAASA,QAAQ,QAAQ,uCAAuC;AAEhE,SAASC,UAAU,CACjBC,QAAgC,EAChCC,CAA8B,EAC9BC,KAAmB,EACnBC,CAAS,EACTC,MAAc,EACdC,aAAsB;EAEtB,IAAIF,CAAC,GAAGC,MAAM,EAAE;IACd,MAAME,CAAC,GAAGJ,KAAK,CAACC,CAAC,CAAE;IACnB,OAAOI,wBAAcC,CAAC,IAAMA,CAAC,GAAGD,2BAAcE,qBAAKH,CAAC,
|
|
1
|
+
{"version":3,"file":"findIO.mjs","mappings":";;AAAA,SAASA,QAAQ,QAAQ,uCAAuC;AAEhE,SAASC,UAAU,CACjBC,QAAgC,EAChCC,CAA8B,EAC9BC,KAAmB,EACnBC,CAAS,EACTC,MAAc,EACdC,aAAsB;EAEtB,IAAIF,CAAC,GAAGC,MAAM,EAAE;IACd,MAAME,CAAC,GAAGJ,KAAK,CAACC,CAAC,CAAE;IACnB,OAAOI,wBAAcC,CAAC,IAAMA,CAAC,GAAGD,2BAAcE,qBAAKH,CAAC,EAJtDD,cAIuD,EAJvDA,cAIwD,GAAGN,UAAU,CAACC,QAAQ,EAAEC,CAAC,EAAEC,KAAK,EAAEC,CAAC,GAAG,CAAC,EAAEC,MAAM,EAJvGC,cAIyG,EAJzGA,eAISJ,CAAC,CAACK,CAAC,CAAC,CAA6F;;EAE1G,IAAII,MAAM;EACV,IAAI,CAAC,CAACA,MAAM,GAAGV,QAAQ,CAACW,IAAI,EAAE,EAAEC,IAAI,EAAE;IACpC,MAAMC,GAAG,GAAGH,MAAM,CAACI,KAAK;IACxB,MAAMC,GAAG,GAAGF,GAAG,CAACT,MAAM;IACtB,OAAOL,UAAU,CAACC,QAAQ,EAAEC,CAAC,EAAEY,GAAG,EAAE,CAAC,EAAEE,GAAG,EAV5CV,cAU6C;;EAE7C,OAAOE,2BAAcE,wBAZrBJ,cAY8B,EAZ9BA,cAY+B;AACjC;AAEA;;;AAGA,OAAM,SAAUW,MAAM,CAAUf,CAA8B,EAAEI,aAAsB;EACpF,OAAQY,EAAW,IAAwB;IACzC;IACA,MAAMjB,QAAQ,GAAGiB,EAAE,CAACC,aAAa,EAAE;IACnC,IAAIR,MAAM;IACV,IAAI,CAAC,CAACA,MAAM,GAAGV,QAAQ,CAACW,IAAI,EAAE,EAAEC,IAAI,EAAE;MACpC,MAAMV,KAAK,GAAIQ,MAAM,CAACI,KAAK;MAC3B,MAAMV,MAAM,GAAGF,KAAK,CAACE,MAAM;MAC3B,OAAOL,UAAU,CAACC,QAAQ,EAAEC,CAAC,EAAEC,KAAK,EAAE,CAAC,EAAEE,MAAM,EARWC,cAQV;KACjD,MAAM;MACL,OAAOE,2BAAcE,wBAVqCJ,cAU5B,EAV4BA,cAU3B;;EAEnC,CAAC;AACH","names":["concrete","findIOLoop","iterator","f","array","i","length","__tsplusTrace","a","tsplus_module_2","b","tsplus_module_1","result","next","done","arr","value","len","findIO","as","arrayIterator"],"sourceRoot":"","sources":["../../../../_src/collection/immutable/Conc/findIO.ts"],"sourcesContent":[null]}
|
|
@@ -9,7 +9,7 @@ import * as tsplus_module_3 from "@fncts/base/data/Exit/api";
|
|
|
9
9
|
*/
|
|
10
10
|
export function foreachIO(f, __tsplusTrace) {
|
|
11
11
|
return exit => {
|
|
12
|
-
return tsplus_module_3.match(c => tsplus_module_2.succeedNow(tsplus_module_1.failCause(c), __tsplusTrace), a => tsplus_module_2.result(f(a), __tsplusTrace))(exit);
|
|
12
|
+
return tsplus_module_3.match(c => tsplus_module_2.succeedNow(tsplus_module_1.failCause(c, __tsplusTrace), __tsplusTrace), a => tsplus_module_2.result(f(a), __tsplusTrace))(exit);
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=foreachIO.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foreachIO.mjs","mappings":";;;AAAA;;;;;;AAMA,OAAM,SAAUA,SAAS,CAAcC,CAAyB,EAAEC,aAAsB;EACtF,OAAYC,IAAkB,IAAmC;IAC/D,OAAOC,sBACJC,CAAC,IAA+BC,2BAAcC,0BAAeF,CAAC,
|
|
1
|
+
{"version":3,"file":"foreachIO.mjs","mappings":";;;AAAA;;;;;;AAMA,OAAM,SAAUA,SAAS,CAAcC,CAAyB,EAAEC,aAAsB;EACtF,OAAYC,IAAkB,IAAmC;IAC/D,OAAOC,sBACJC,CAAC,IAA+BC,2BAAcC,0BAAeF,CAAC,EAHHH,cAGI,EAHJA,cAGK,EAChEM,CAAC,IAAIF,uBAACL,CAAC,CAACO,CAAC,CAAC,EAJiDN,cAI1C,EAFbC,IAAI,CAGV;EACH,CAAC;AACH","names":["foreachIO","f","__tsplusTrace","exit","tsplus_module_3","c","tsplus_module_2","tsplus_module_1","a"],"sourceRoot":"","sources":["../../../_src/data/Exit/foreachIO.ts"],"sourcesContent":[null]}
|
|
@@ -2,6 +2,8 @@ import type { FiberStatus } from "../FiberStatus.js";
|
|
|
2
2
|
import type { OnFailure, OnSuccess, OnSuccessAndFailure, UIO } from "../IO/definition.js";
|
|
3
3
|
import type { RuntimeFlags } from "../RuntimeFlags.js";
|
|
4
4
|
|
|
5
|
+
import { isIOError } from "@fncts/base/data/exceptions";
|
|
6
|
+
import { ExitTag } from "@fncts/base/data/Exit";
|
|
5
7
|
import { Trace } from "@fncts/base/data/Trace";
|
|
6
8
|
import { FiberTypeId, FiberVariance } from "@fncts/io/Fiber/definition";
|
|
7
9
|
import { StackTraceBuilder } from "@fncts/io/internal/StackTraceBuilder";
|
|
@@ -13,17 +15,16 @@ import { LinkedQueue } from "../internal/MutableQueue.js";
|
|
|
13
15
|
import { isIO } from "../IO/definition.js";
|
|
14
16
|
import { WhileLoop } from "../IO/definition.js";
|
|
15
17
|
import { IOOpCode } from "../IO/definition.js";
|
|
16
|
-
import { isIOError } from "../IO/definition.js";
|
|
17
18
|
import { RuntimeFlag } from "../RuntimeFlag.js";
|
|
18
19
|
import { FiberMessage, FiberMessageTag } from "./FiberMessage.js";
|
|
19
20
|
|
|
20
21
|
export class RevertFlags {
|
|
21
|
-
readonly
|
|
22
|
+
readonly _tag = IOOpCode.RevertFlags;
|
|
22
23
|
constructor(readonly patch: RuntimeFlags.Patch, readonly trace?: string) {}
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export class UpdateTrace {
|
|
26
|
-
readonly
|
|
27
|
+
readonly _tag = IOOpCode.UpdateTrace;
|
|
27
28
|
constructor(readonly trace?: string) {}
|
|
28
29
|
}
|
|
29
30
|
|
|
@@ -267,7 +268,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
|
267
268
|
}
|
|
268
269
|
} catch (e) {
|
|
269
270
|
if (isIO(e)) {
|
|
270
|
-
if (IO.concrete(e).
|
|
271
|
+
if (IO.concrete(e)._tag === IOOpCode.YieldNow) {
|
|
271
272
|
if (this._runtimeFlags.cooperativeYielding) {
|
|
272
273
|
this.tell(FiberMessage.YieldNow);
|
|
273
274
|
this.tell(FiberMessage.Resume(IO.unit));
|
|
@@ -275,10 +276,10 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
|
275
276
|
} else {
|
|
276
277
|
effect = IO.unit;
|
|
277
278
|
}
|
|
278
|
-
} else if (IO.concrete(e).
|
|
279
|
+
} else if (IO.concrete(e)._tag === IOOpCode.Async) {
|
|
279
280
|
effect = null!;
|
|
280
281
|
} else {
|
|
281
|
-
throw new Error(`Unhandled op ${IO.concrete(e).
|
|
282
|
+
throw new Error(`Unhandled op ${IO.concrete(e)._tag}`);
|
|
282
283
|
}
|
|
283
284
|
} else {
|
|
284
285
|
throw e;
|
|
@@ -315,12 +316,12 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
|
315
316
|
cur = IO.concrete(IO.yieldNow.flatMap(() => oldCur, trace));
|
|
316
317
|
}
|
|
317
318
|
try {
|
|
318
|
-
switch (cur.
|
|
319
|
+
switch (cur._tag) {
|
|
319
320
|
case IOOpCode.Sync: {
|
|
320
321
|
const value = cur.evaluate();
|
|
321
322
|
const cont = this.getNextSuccessCont();
|
|
322
323
|
if (cont) {
|
|
323
|
-
switch (cont.
|
|
324
|
+
switch (cont._tag) {
|
|
324
325
|
case IOOpCode.OnSuccess:
|
|
325
326
|
case IOOpCode.OnSuccessAndFailure: {
|
|
326
327
|
cur = IO.concrete(cont.successK(value));
|
|
@@ -400,7 +401,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
|
400
401
|
const oldCur = cur;
|
|
401
402
|
const cont = this.getNextSuccessCont();
|
|
402
403
|
if (cont) {
|
|
403
|
-
switch (cont.
|
|
404
|
+
switch (cont._tag) {
|
|
404
405
|
case IOOpCode.OnSuccess:
|
|
405
406
|
case IOOpCode.OnSuccessAndFailure: {
|
|
406
407
|
cur = IO.concrete(cont.successK(oldCur.value));
|
|
@@ -438,7 +439,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
|
438
439
|
const cause = cur.cause();
|
|
439
440
|
const cont = this.getNextFailCont();
|
|
440
441
|
if (cont) {
|
|
441
|
-
switch (cont.
|
|
442
|
+
switch (cont._tag) {
|
|
442
443
|
case IOOpCode.OnFailure:
|
|
443
444
|
case IOOpCode.OnSuccessAndFailure: {
|
|
444
445
|
if (!(this._runtimeFlags.interruptible && this.isInterrupted())) {
|
|
@@ -493,15 +494,37 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
|
493
494
|
}
|
|
494
495
|
case IOOpCode.Commit: {
|
|
495
496
|
cur = IO.concrete(cur.commit);
|
|
497
|
+
break;
|
|
498
|
+
}
|
|
499
|
+
case "Just": {
|
|
500
|
+
cur = IO.concrete(IO.succeedNow(cur.value));
|
|
501
|
+
break;
|
|
502
|
+
}
|
|
503
|
+
case "Nothing": {
|
|
504
|
+
cur = IO.concrete(IO.failNow(new NoSuchElementError()));
|
|
505
|
+
break;
|
|
506
|
+
}
|
|
507
|
+
case "Left": {
|
|
508
|
+
cur = IO.concrete(IO.failNow(cur.left));
|
|
509
|
+
break;
|
|
510
|
+
}
|
|
511
|
+
case "Right": {
|
|
512
|
+
cur = IO.concrete(IO.succeedNow(cur.right));
|
|
513
|
+
break;
|
|
514
|
+
}
|
|
515
|
+
case ExitTag.Failure: {
|
|
516
|
+
cur = IO.concrete(IO.failCauseNow(cur.cause));
|
|
517
|
+
break;
|
|
518
|
+
}
|
|
519
|
+
case ExitTag.Success: {
|
|
520
|
+
cur = IO.concrete(IO.succeedNow(cur.value));
|
|
521
|
+
break;
|
|
496
522
|
}
|
|
497
523
|
}
|
|
498
524
|
} catch (e) {
|
|
499
525
|
if (isIOError(e)) {
|
|
500
526
|
cur = IO.concrete(IO.failCauseNow(e.cause));
|
|
501
|
-
} else if (
|
|
502
|
-
isIO(e) &&
|
|
503
|
-
(IO.concrete(e).ioOpCode === IOOpCode.Async || IO.concrete(e).ioOpCode === IOOpCode.YieldNow)
|
|
504
|
-
) {
|
|
527
|
+
} else if (isIO(e) && (IO.concrete(e)._tag === IOOpCode.Async || IO.concrete(e)._tag === IOOpCode.YieldNow)) {
|
|
505
528
|
throw e;
|
|
506
529
|
} else if (isInterruptedException(e)) {
|
|
507
530
|
cur = IO.concrete(IO.failCauseNow(Cause.both(Cause.halt(e), Cause.interrupt(FiberId.none))));
|
|
@@ -799,7 +822,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
|
799
822
|
getNextSuccessCont() {
|
|
800
823
|
while (this.stack.hasNext) {
|
|
801
824
|
const frame = this.stack.pop()!;
|
|
802
|
-
if (frame.
|
|
825
|
+
if (frame._tag !== IOOpCode.OnFailure) {
|
|
803
826
|
return frame;
|
|
804
827
|
}
|
|
805
828
|
}
|
|
@@ -808,7 +831,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
|
808
831
|
getNextFailCont() {
|
|
809
832
|
while (this.stack.hasNext) {
|
|
810
833
|
const frame = this.stack.pop()!;
|
|
811
|
-
if (frame.
|
|
834
|
+
if (frame._tag !== IOOpCode.OnSuccess && frame._tag !== IOOpCode.WhileLoop) {
|
|
812
835
|
return frame;
|
|
813
836
|
}
|
|
814
837
|
}
|
package/_src/IO/api/asyncIO.ts
CHANGED
|
@@ -10,7 +10,7 @@ export function asyncIO<R, E, A>(
|
|
|
10
10
|
const r = Δ(IO.runtime<R>());
|
|
11
11
|
const a = Δ(
|
|
12
12
|
IO.uninterruptibleMask((restore) => {
|
|
13
|
-
const io = register((k) => r.
|
|
13
|
+
const io = register((k) => r.unsafeRunFiber(k.fulfill(f)));
|
|
14
14
|
return restore(io.catchAllCause((cause) => f.failCause(cause))).fork > restore(f.await);
|
|
15
15
|
}),
|
|
16
16
|
);
|
package/_src/IO/api.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { _E, _R } from "@fncts/base/types";
|
|
|
4
4
|
import type { FiberRuntime } from "@fncts/io/Fiber/FiberRuntime";
|
|
5
5
|
import type { RuntimeFlags } from "@fncts/io/RuntimeFlags";
|
|
6
6
|
|
|
7
|
+
import { IOError } from "@fncts/base/data/exceptions";
|
|
7
8
|
import { identity, pipe, tuple } from "@fncts/base/data/function";
|
|
8
9
|
import {
|
|
9
10
|
Async,
|
|
@@ -15,7 +16,7 @@ import {
|
|
|
15
16
|
YieldNow,
|
|
16
17
|
} from "@fncts/io/IO/definition";
|
|
17
18
|
import { Stateful } from "@fncts/io/IO/definition";
|
|
18
|
-
import { Fail, IO,
|
|
19
|
+
import { Fail, IO, SucceedNow } from "@fncts/io/IO/definition";
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
22
|
* Imports an asynchronous side-effect into a `IO`
|
|
@@ -851,8 +852,8 @@ export function fromMaybe<A>(maybe: Lazy<Maybe<A>>, __tsplusTrace?: string): FIO
|
|
|
851
852
|
* @tsplus static fncts.io.IOOps fromMaybeNow
|
|
852
853
|
* @tsplus getter fncts.Maybe toIO
|
|
853
854
|
*/
|
|
854
|
-
export function fromMaybeNow<A = never>(maybe: Maybe<A>, __tsplusTrace?: string): IO<
|
|
855
|
-
return maybe.match(() => IO.failNow(
|
|
855
|
+
export function fromMaybeNow<A = never>(maybe: Maybe<A>, __tsplusTrace?: string): IO<never, NoSuchElementError, A> {
|
|
856
|
+
return maybe.match(() => IO.failNow(new NoSuchElementError("IO.fromMaybeNow")), IO.succeedNow);
|
|
856
857
|
}
|
|
857
858
|
|
|
858
859
|
/**
|
package/_src/IO/definition.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { FiberRuntime } from "../Fiber/FiberRuntime.js";
|
|
2
2
|
import type { Running } from "../FiberStatus.js";
|
|
3
3
|
import type { RuntimeFlagsPatch } from "../RuntimeFlags.js";
|
|
4
|
+
import type { Left, Right } from "@fncts/base/data/Either";
|
|
5
|
+
import type { Failure, Success } from "@fncts/base/data/Exit";
|
|
4
6
|
import type { Trace } from "@fncts/base/data/Trace";
|
|
5
7
|
|
|
6
8
|
import { RuntimeFlag } from "../RuntimeFlag.js";
|
|
@@ -34,6 +36,17 @@ export abstract class IO<R, E, A> {
|
|
|
34
36
|
};
|
|
35
37
|
}
|
|
36
38
|
|
|
39
|
+
declare module "@fncts/base/data/Either/definition" {
|
|
40
|
+
interface Either<E, A> extends IO<never, E, A> {}
|
|
41
|
+
}
|
|
42
|
+
declare module "@fncts/base/data/Maybe/definition" {
|
|
43
|
+
interface Maybe<A> extends IO<never, NoSuchElementError, A> {}
|
|
44
|
+
}
|
|
45
|
+
declare module "@fncts/base/data/Exit/definition" {
|
|
46
|
+
interface Success<A> extends IO<never, never, A> {}
|
|
47
|
+
interface Failure<E> extends IO<never, E, never> {}
|
|
48
|
+
}
|
|
49
|
+
|
|
37
50
|
/**
|
|
38
51
|
* @tsplus type fncts.io.IOAspects
|
|
39
52
|
*/
|
|
@@ -87,14 +100,14 @@ export function isIO(u: unknown): u is IO<any, any, any> {
|
|
|
87
100
|
}
|
|
88
101
|
|
|
89
102
|
export class Sync<A> extends IO<never, never, A> {
|
|
90
|
-
readonly
|
|
103
|
+
readonly _tag = IOOpCode.Sync;
|
|
91
104
|
constructor(readonly evaluate: () => A, readonly trace?: string) {
|
|
92
105
|
super();
|
|
93
106
|
}
|
|
94
107
|
}
|
|
95
108
|
|
|
96
109
|
export class Async<R, E, A> extends IO<R, E, A> {
|
|
97
|
-
readonly
|
|
110
|
+
readonly _tag = IOOpCode.Async;
|
|
98
111
|
constructor(
|
|
99
112
|
readonly registerCallback: (f: (_: IO<R, E, A>) => void) => any,
|
|
100
113
|
readonly blockingOn: () => FiberId,
|
|
@@ -108,7 +121,7 @@ export class Async<R, E, A> extends IO<R, E, A> {
|
|
|
108
121
|
* @internal
|
|
109
122
|
*/
|
|
110
123
|
export class OnSuccessAndFailure<R, E, A, R1, E1, B, R2, E2, C> extends IO<R | R1 | R2, E1 | E2, B | C> {
|
|
111
|
-
readonly
|
|
124
|
+
readonly _tag = IOOpCode.OnSuccessAndFailure;
|
|
112
125
|
|
|
113
126
|
constructor(
|
|
114
127
|
readonly first: IO<R, E, A>,
|
|
@@ -128,7 +141,7 @@ export class OnSuccessAndFailure<R, E, A, R1, E1, B, R2, E2, C> extends IO<R | R
|
|
|
128
141
|
}
|
|
129
142
|
|
|
130
143
|
export class OnFailure<R, E, A, R1, E1, B> extends IO<R | R1, E1, A | B> {
|
|
131
|
-
readonly
|
|
144
|
+
readonly _tag = IOOpCode.OnFailure;
|
|
132
145
|
constructor(
|
|
133
146
|
readonly first: IO<R, E, A>,
|
|
134
147
|
readonly failureK: (cause: Cause<E>) => IO<R1, E1, B>,
|
|
@@ -149,7 +162,7 @@ export class OnFailure<R, E, A, R1, E1, B> extends IO<R | R1, E1, A | B> {
|
|
|
149
162
|
* @internal
|
|
150
163
|
*/
|
|
151
164
|
export class OnSuccess<R, R1, E, E1, A, A1> extends IO<R | R1, E | E1, A1> {
|
|
152
|
-
readonly
|
|
165
|
+
readonly _tag = IOOpCode.OnSuccess;
|
|
153
166
|
constructor(readonly first: IO<R, E, A>, readonly successK: (a: A) => IO<R1, E1, A1>, readonly trace?: string) {
|
|
154
167
|
super();
|
|
155
168
|
}
|
|
@@ -165,21 +178,21 @@ export class OnSuccess<R, R1, E, E1, A, A1> extends IO<R | R1, E | E1, A1> {
|
|
|
165
178
|
* @internal
|
|
166
179
|
*/
|
|
167
180
|
export class SucceedNow<A> extends IO<never, never, A> {
|
|
168
|
-
readonly
|
|
181
|
+
readonly _tag = IOOpCode.SucceedNow;
|
|
169
182
|
constructor(readonly value: A, readonly trace?: string) {
|
|
170
183
|
super();
|
|
171
184
|
}
|
|
172
185
|
}
|
|
173
186
|
|
|
174
187
|
export class UpdateRuntimeFlags extends IO<never, never, void> {
|
|
175
|
-
readonly
|
|
188
|
+
readonly _tag = IOOpCode.UpdateRuntimeFlags;
|
|
176
189
|
constructor(readonly update: RuntimeFlags.Patch, readonly trace?: string) {
|
|
177
190
|
super();
|
|
178
191
|
}
|
|
179
192
|
}
|
|
180
193
|
|
|
181
194
|
export class Interruptible<R, E, A> extends IO<R, E, A> {
|
|
182
|
-
readonly
|
|
195
|
+
readonly _tag = IOOpCode.UpdateRuntimeFlagsWithin;
|
|
183
196
|
constructor(readonly effect: IO<R, E, A>, readonly trace?: string) {
|
|
184
197
|
super();
|
|
185
198
|
}
|
|
@@ -191,7 +204,7 @@ export class Interruptible<R, E, A> extends IO<R, E, A> {
|
|
|
191
204
|
}
|
|
192
205
|
|
|
193
206
|
export class Uninterruptible<R, E, A> extends IO<R, E, A> {
|
|
194
|
-
readonly
|
|
207
|
+
readonly _tag = IOOpCode.UpdateRuntimeFlagsWithin;
|
|
195
208
|
constructor(readonly effect: IO<R, E, A>, readonly trace?: string) {
|
|
196
209
|
super();
|
|
197
210
|
}
|
|
@@ -203,7 +216,7 @@ export class Uninterruptible<R, E, A> extends IO<R, E, A> {
|
|
|
203
216
|
}
|
|
204
217
|
|
|
205
218
|
export class Dynamic<R, E, A> extends IO<R, E, A> {
|
|
206
|
-
readonly
|
|
219
|
+
readonly _tag = IOOpCode.UpdateRuntimeFlagsWithin;
|
|
207
220
|
constructor(
|
|
208
221
|
readonly update: RuntimeFlagsPatch,
|
|
209
222
|
readonly f: (oldRuntimeFlags: RuntimeFlags) => IO<R, E, A>,
|
|
@@ -218,21 +231,21 @@ export class Dynamic<R, E, A> extends IO<R, E, A> {
|
|
|
218
231
|
}
|
|
219
232
|
|
|
220
233
|
export class GenerateStackTrace extends IO<never, never, Trace> {
|
|
221
|
-
readonly
|
|
234
|
+
readonly _tag = IOOpCode.GenerateStackTrace;
|
|
222
235
|
constructor(readonly trace?: string) {
|
|
223
236
|
super();
|
|
224
237
|
}
|
|
225
238
|
}
|
|
226
239
|
|
|
227
240
|
export class Stateful<R, E, A> extends IO<R, E, A> {
|
|
228
|
-
readonly
|
|
241
|
+
readonly _tag = IOOpCode.Stateful;
|
|
229
242
|
constructor(readonly onState: (fiber: FiberRuntime<E, A>, status: Running) => IO<R, E, A>, readonly trace?: string) {
|
|
230
243
|
super();
|
|
231
244
|
}
|
|
232
245
|
}
|
|
233
246
|
|
|
234
247
|
export class WhileLoop<R, E, A> extends IO<R, E, void> {
|
|
235
|
-
readonly
|
|
248
|
+
readonly _tag = IOOpCode.WhileLoop;
|
|
236
249
|
constructor(
|
|
237
250
|
readonly check: () => boolean,
|
|
238
251
|
readonly body: () => IO<R, E, A>,
|
|
@@ -244,7 +257,7 @@ export class WhileLoop<R, E, A> extends IO<R, E, void> {
|
|
|
244
257
|
}
|
|
245
258
|
|
|
246
259
|
export class YieldNow extends IO<never, never, void> {
|
|
247
|
-
readonly
|
|
260
|
+
readonly _tag = IOOpCode.YieldNow;
|
|
248
261
|
constructor(readonly trace?: string) {
|
|
249
262
|
super();
|
|
250
263
|
}
|
|
@@ -254,7 +267,7 @@ export class YieldNow extends IO<never, never, void> {
|
|
|
254
267
|
* @internal
|
|
255
268
|
*/
|
|
256
269
|
export class Fail<E> extends IO<never, E, never> {
|
|
257
|
-
readonly
|
|
270
|
+
readonly _tag = IOOpCode.Fail;
|
|
258
271
|
|
|
259
272
|
constructor(readonly cause: Lazy<Cause<E>>, readonly trace?: string) {
|
|
260
273
|
super();
|
|
@@ -275,7 +288,13 @@ export type Concrete =
|
|
|
275
288
|
| WhileLoop<any, any, any>
|
|
276
289
|
| YieldNow
|
|
277
290
|
| Fail<any>
|
|
278
|
-
| STM<any, any, any
|
|
291
|
+
| STM<any, any, any>
|
|
292
|
+
| Left<any>
|
|
293
|
+
| Right<any>
|
|
294
|
+
| Nothing
|
|
295
|
+
| Just<any>
|
|
296
|
+
| Failure<any>
|
|
297
|
+
| Success<any>;
|
|
279
298
|
|
|
280
299
|
/**
|
|
281
300
|
* @tsplus static fncts.io.IOOps concrete
|
|
@@ -296,15 +315,3 @@ export type UpdateRuntimeFlagsWithin =
|
|
|
296
315
|
| Dynamic<any, any, any>;
|
|
297
316
|
|
|
298
317
|
export type Canceler<R> = URIO<R, void>;
|
|
299
|
-
|
|
300
|
-
export const IOErrorTypeId = Symbol.for("fncts.io.IO.IOError");
|
|
301
|
-
export type IOErrorTypeId = typeof IOErrorTypeId;
|
|
302
|
-
|
|
303
|
-
export class IOError<E> {
|
|
304
|
-
readonly [IOErrorTypeId]: IOErrorTypeId = IOErrorTypeId;
|
|
305
|
-
constructor(readonly cause: Cause<E>) {}
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
export function isIOError(u: unknown): u is IOError<unknown> {
|
|
309
|
-
return isObject(u) && IOErrorTypeId in u;
|
|
310
|
-
}
|
package/_src/IO/runtime.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IOError } from "@fncts/base/data/exceptions";
|
|
2
|
+
import { FiberRuntime } from "@fncts/io/Fiber";
|
|
2
3
|
import { FiberRefs } from "@fncts/io/FiberRefs";
|
|
3
4
|
import { RuntimeFlag } from "@fncts/io/RuntimeFlag";
|
|
4
5
|
import { RuntimeFlags } from "@fncts/io/RuntimeFlags";
|
|
@@ -12,7 +13,7 @@ export class Runtime<R> {
|
|
|
12
13
|
readonly fiberRefs: FiberRefs,
|
|
13
14
|
) {}
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
makeFiber = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): FiberRuntime<E, A> => {
|
|
16
17
|
const fiberId = FiberId.unsafeMake(__tsplusTrace);
|
|
17
18
|
const fiberRefs = this.fiberRefs.updateAs(fiberId, FiberRef.currentEnvironment, this.environment);
|
|
18
19
|
|
|
@@ -31,33 +32,37 @@ export class Runtime<R> {
|
|
|
31
32
|
|
|
32
33
|
FiberScope.global.unsafeAdd(null!, fiber.runtimeFlags0, fiber);
|
|
33
34
|
|
|
34
|
-
fiber.start(io);
|
|
35
|
-
|
|
36
35
|
return fiber;
|
|
37
36
|
};
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
): ((fiberId: FiberId) => (f: (exit: Exit<E, A>) => any) => void) => {
|
|
44
|
-
const fiber = this.unsafeRunFiber(io);
|
|
45
|
-
fiber.tell(FiberMessage.Stateful((fiber) => fiber.addObserver(k)));
|
|
46
|
-
return (fiberId) => (k) => this.unsafeRunAsyncWith(fiber.interruptAs(fiberId), (exit) => k(exit.flatten));
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
unsafeRunAsync = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string) => {
|
|
50
|
-
this.unsafeRunAsyncWith(io, () => void 0);
|
|
38
|
+
unsafeRunFiber = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): FiberRuntime<E, A> => {
|
|
39
|
+
const fiber = this.makeFiber(io);
|
|
40
|
+
fiber.start(io);
|
|
41
|
+
return fiber;
|
|
51
42
|
};
|
|
52
43
|
|
|
53
|
-
|
|
54
|
-
|
|
44
|
+
unsafeRunPromiseExit = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Promise<Exit<E, A>> => {
|
|
45
|
+
return new Promise((resolve) => {
|
|
46
|
+
const fiber = this.makeFiber(io);
|
|
47
|
+
fiber.addObserver((exit) => {
|
|
48
|
+
resolve(exit);
|
|
49
|
+
});
|
|
50
|
+
fiber.start(io);
|
|
51
|
+
});
|
|
55
52
|
};
|
|
56
53
|
|
|
57
|
-
|
|
58
|
-
new Promise((resolve) => {
|
|
59
|
-
this.
|
|
54
|
+
unsafeRunPromise = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Promise<A> => {
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
const fiber = this.makeFiber(io);
|
|
57
|
+
fiber.addObserver((exit) => {
|
|
58
|
+
if (exit.isFailure()) {
|
|
59
|
+
reject(new IOError(exit.cause));
|
|
60
|
+
} else {
|
|
61
|
+
resolve(exit.value);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
60
64
|
});
|
|
65
|
+
};
|
|
61
66
|
|
|
62
67
|
unsafeRunOrFork = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Either<Fiber.Runtime<E, A>, Exit<E, A>> => {
|
|
63
68
|
const fiberId = FiberId.unsafeMake(__tsplusTrace);
|
|
@@ -88,6 +93,12 @@ export class Runtime<R> {
|
|
|
88
93
|
|
|
89
94
|
return Either.left(fiber);
|
|
90
95
|
};
|
|
96
|
+
|
|
97
|
+
unsafeRun = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): Exit<E, A> => {
|
|
98
|
+
return this.unsafeRunOrFork(io).match(() => {
|
|
99
|
+
throw new Error("Encountered async boundary");
|
|
100
|
+
}, Function.identity);
|
|
101
|
+
};
|
|
91
102
|
}
|
|
92
103
|
|
|
93
104
|
/**
|
|
@@ -112,27 +123,17 @@ export const defaultRuntime = new Runtime(Environment.empty, RuntimeFlags.defaul
|
|
|
112
123
|
*/
|
|
113
124
|
export const unsafeRunFiber = defaultRuntime.unsafeRunFiber;
|
|
114
125
|
|
|
115
|
-
/**
|
|
116
|
-
* @tsplus fluent fncts.io.IO unsafeRunAsync
|
|
117
|
-
*/
|
|
118
|
-
export const unsafeRunAsync = defaultRuntime.unsafeRunAsync;
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* @tsplus fluent fncts.io.IO unsafeRunAsyncWith
|
|
122
|
-
*/
|
|
123
|
-
export const unsafeRunAsyncWith = defaultRuntime.unsafeRunAsyncWith;
|
|
124
|
-
|
|
125
126
|
/**
|
|
126
127
|
* @tsplus fluent fncts.io.IO unsafeRunPromiseExit
|
|
127
128
|
*/
|
|
128
129
|
export const unsafeRunPromiseExit = defaultRuntime.unsafeRunPromiseExit;
|
|
129
130
|
|
|
130
131
|
/**
|
|
131
|
-
* @tsplus
|
|
132
|
+
* @tsplus getter fncts.io.IO unsafeRunOrFork
|
|
132
133
|
*/
|
|
133
|
-
export const
|
|
134
|
+
export const unsafeRunOrFork = defaultRuntime.unsafeRunOrFork;
|
|
134
135
|
|
|
135
136
|
/**
|
|
136
|
-
* @tsplus getter fncts.io.IO
|
|
137
|
+
* @tsplus getter fncts.io.IO unsafeRun
|
|
137
138
|
*/
|
|
138
|
-
export const
|
|
139
|
+
export const unsafeRun = defaultRuntime.unsafeRun;
|