@fncts/io 0.0.31 → 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/Channel/api/runScoped.d.ts +1 -0
- package/Channel/api.d.ts +1 -0
- package/Channel/internal/ChannelExecutor.d.ts +2 -2
- package/Fiber/FiberMessage.d.ts +5 -5
- package/Fiber/FiberRuntime.d.ts +3 -3
- package/IO/api/provideSomeLayer.d.ts +1 -2
- package/IO/api/zipConcurrent.d.ts +2 -1
- package/IO/api.d.ts +2 -1
- package/IO/definition.d.ts +34 -24
- package/IO/runtime.d.ts +10 -18
- package/STM/definition.d.ts +1 -1
- package/Stream/api.d.ts +113 -5
- 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/runScoped.cjs +19 -3
- package/_cjs/Channel/api/runScoped.cjs.map +1 -1
- package/_cjs/Channel/api/toPull.cjs +3 -3
- package/_cjs/Channel/api/toPull.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +8 -7
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Channel/internal/ChannelExecutor.cjs +71 -62
- 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/FiberMessage.cjs +12 -11
- package/_cjs/Fiber/FiberMessage.cjs.map +1 -1
- package/_cjs/Fiber/FiberRuntime.cjs +102 -70
- 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/FiberScope/definition.cjs +2 -2
- package/_cjs/FiberScope/definition.cjs.map +1 -1
- package/_cjs/Future/api.cjs +4 -4
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/Hub/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/provideSomeLayer.cjs.map +1 -1
- package/_cjs/IO/api/raceWith.cjs +9 -12
- package/_cjs/IO/api/raceWith.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/stateful.cjs +3 -3
- package/_cjs/IO/api/stateful.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/withChildren.cjs +5 -4
- package/_cjs/IO/api/withChildren.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/zipConcurrent.cjs +23 -23
- package/_cjs/IO/api/zipConcurrent.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 +47 -40
- 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/Queue/api/filterOutputIO.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 +415 -133
- 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/Cached/definition.mjs.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/runScoped.mjs +19 -3
- package/_mjs/Channel/api/runScoped.mjs.map +1 -1
- package/_mjs/Channel/api/toPull.mjs +3 -3
- package/_mjs/Channel/api/toPull.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +8 -7
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Channel/internal/ChannelExecutor.mjs +71 -62
- 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/FiberMessage.mjs +5 -5
- package/_mjs/Fiber/FiberMessage.mjs.map +1 -1
- package/_mjs/Fiber/FiberRuntime.mjs +102 -70
- 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/FiberScope/definition.mjs +2 -2
- package/_mjs/FiberScope/definition.mjs.map +1 -1
- package/_mjs/Future/api.mjs +4 -4
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/Hub/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/provideSomeLayer.mjs.map +1 -1
- package/_mjs/IO/api/raceWith.mjs +9 -12
- package/_mjs/IO/api/raceWith.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/stateful.mjs +3 -3
- package/_mjs/IO/api/stateful.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/withChildren.mjs +5 -4
- package/_mjs/IO/api/withChildren.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/zipConcurrent.mjs +23 -23
- package/_mjs/IO/api/zipConcurrent.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 +43 -34
- 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/Queue/api/filterOutputIO.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 +321 -60
- 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/Cached/definition.ts +1 -1
- package/_src/Channel/api/runScoped.ts +30 -5
- package/_src/Channel/api/toPull.ts +1 -1
- package/_src/Channel/api.ts +1 -0
- package/_src/Channel/internal/ChannelExecutor.ts +24 -20
- package/_src/Fiber/FiberMessage.ts +5 -5
- package/_src/Fiber/FiberRuntime.ts +40 -17
- package/_src/FiberRefs/api.ts +1 -1
- package/_src/Hub/api.ts +1 -1
- package/_src/IO/api/asyncIO.ts +1 -1
- package/_src/IO/api/provideSomeLayer.ts +1 -3
- package/_src/IO/api/raceWith.ts +1 -3
- package/_src/IO/api/stateful.ts +1 -1
- package/_src/IO/api/zipConcurrent.ts +26 -30
- package/_src/IO/api.ts +4 -3
- package/_src/IO/definition.ts +35 -28
- package/_src/IO/runtime.ts +39 -38
- package/_src/Queue/api/filterInputIO.ts +1 -1
- package/_src/Queue/api/filterOutputIO.ts +1 -1
- package/_src/RefSubject/Atomic.ts +4 -4
- package/_src/STM/definition.ts +1 -1
- package/_src/State/definition.ts +1 -1
- package/_src/Stream/api.ts +315 -14
- package/_src/Subject/Atomic.ts +1 -1
- package/_src/global.ts +0 -4
- package/_src/index.ts +2 -2
- package/global.d.ts +0 -4
- package/index.d.ts +2 -2
- package/package.json +3 -3
- package/RuntimeConfig.d.ts +0 -11
- package/_cjs/RuntimeConfig.cjs +0 -12
- package/_cjs/RuntimeConfig.cjs.map +0 -1
- package/_mjs/RuntimeConfig.mjs +0 -3
- package/_mjs/RuntimeConfig.mjs.map +0 -1
- package/_src/RuntimeConfig.ts +0 -6
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":";;;;;;;;;AAMA,SAASA,MAAM,QAAQ,eAAe;AAGtC,OAAO,MAAMC,YAAY,gBAAGC,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;AAGhE,OAAO,MAAMC,UAAU,gBAAGF,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAwCrD,OAAO,MAAME,IAAI,GAAY,EAAE;AAE/B,OAAM,MAAgBC,YAAY;EAAlCC;IACW,QAAY,GAAeH,UAAU;EAyBhD;;KAzBYA,UAAU;AA2BtB,OAAM,MAAOI,MAAU,SAAQF,YAAgC;EAE7DC,YAAmBE,SAAuB,EAAWC,IAA2C;IAC9F,KAAK,EAAE;IADU,cAAS,GAATD,SAAS;IAAyB,SAAI,GAAJC,IAAI;IADhD,WAAM,GAAoB,IAAuB;EAG1D;EACAC,KAAK,CACHC,GAAsB,EACtBC,GAAsB,EACtBC,EAA2B,EAC3BC,EAA2B;IAE3B,OAAO,IAAIC,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACF,EAAE,EAAED,EAAE,EAAE,IAAI,EAAE,IAAI,CAACI,MAAM,CAAC,CAAC;EACzD;EACAC,QAAQ,CACNP,GAAsB,EACtBC,GAAsB,EACtBO,GAAsB,EACtBN,EAAqC,EACrCC,EAA2B;IAE3B,OAAO,IAAIM,UAAU,CAAEJ,CAAC,IAAKA,CAAC,CAACF,EAAE,EAAED,EAAE,EAAE,IAAI,EAAE,IAAI,CAACI,MAAM,CAAC,CAAC;EAC5D;EAEA,IAAII,GAAG;IACL,OAAO,IAAItB,MAAM,CAAEuB,OAAO,IAAI;MAC5B,MAAMC,KAAK,GAAGC,cAAc,CAAC,IAAI,EAAEF,OAAO,yBAAC;MAC3C,OAAOC,KAAK,CAACE,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,SAAS,EAAK,CAAC;IAC3C,CAAC,CAAC;EACJ;EAEAC,GAAG,CAACC,CAAI,EAAEC,aAAkC;IAC1C,OAAO,IAAI/B,MAAM,CAAEuB,OAAO,IAAI;MAC5B,MAAMC,KAAK,GAAGC,cAAc,CAAC,IAAI,EAAEF,OAAO,yBAAC;MAC3C,OAAOC,KAAK,CAACE,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACK,SAAS,CAACF,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;EACJ;EAEAG,MAAM,CAAIhB,CAA4B,EAAEc,aAAkC;IACxE,OAAO,IAAI/B,MAAM,CAAEuB,OAAO,IAAI;MAC5B,MAAMC,KAAK,GAAkBC,cAAc,CAAC,IAAI,EAAEF,OAAO,yBAAC;MAC1D,MAAMW,QAAQ,GAAeV,KAAK,CAACE,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,SAAS,EAAK,CAAC;MAC/D,MAAM,CAACO,QAAQ,EAAEC,QAAQ,CAAC,GAAGnB,CAAC,CAACiB,QAAQ,CAAC;MACxCV,KAAK,CAACE,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACK,SAAS,CAACI,QAAQ,CAAC,CAAC;MACvC,OAAOD,QAAQ;IACjB,CAAC,CAAC;EACJ;EAEAP,SAAS,CAACL,OAAgB,EAAEQ,aAAkC;IAC5D,OAAON,cAAc,CAAC,IAAI,CAACP,MAAM,EAAEK,OAAO,yBAAC,CAACG,GAAG,CAAEF,KAAK,IAAKA,KAAK,CAACI,SAAS,EAAK,CAAC;EAClF;EAEAI,SAAS,CAACT,OAAgB,EAAEO,CAAI,EAAEC,aAAkC;IAClE,OAAON,cAAc,CAAC,IAAI,CAACP,MAAM,EAAEK,OAAO,yBAAC,CAACG,GAAG,CAAEF,KAAK,IAAKA,KAAK,CAACQ,SAAS,CAACF,CAAC,CAAC,CAAC;EAChF;;AAGF,OAAM,MAAOd,OAAsB,SAAQV,YAA0B;EACnEC,YACWmB,GAOH;IAEN,KAAK,EAAE;IATE,QAAG,GAAHA,GAAG;EAUd;EACAf,KAAK,CACH0B,EAAkB,EAClBC,EAAkB,EAClBxB,EAA2B,EAC3BC,EAA2B;IAE3B,OAAO,IAAI,CAACW,GAAG,CACb,CAACa,SAAS,EAAEC,SAAS,EAAEC,KAAK,EAAEvB,MAAM,KAClC,IAAIF,OAAO,CAAEC,CAAC,IACZA,CAAC,CACEyB,CAAC,IAAKC,sBAAoBC,CAAC,IAAKC,qBAAYP,EAAE,CAACM,CAAC,CAAC,yBAAC,EAAE7B,EAAE,EAAhDwB,SAAS,CAACG,CAAC,CAAC,CAAqC,EACvDI,CAAC,IAAKC,wBAAejB,CAAC,IAAKa,sBAAoBC,CAAC,IAAKC,qBAAYR,EAAE,CAACO,CAAC,CAAC,yBAAC,yBAA5CJ,SAAS,CAACV,CAAC,CAAC,CAA+C,EAAhFhB,EAAE,CAACgC,CAAC,CAAC,CAA4E,EACxFL,KAAK,EACLvB,MAAM,CACP,CACF,CACJ;EACH;EACAC,QAAQ,CACNkB,EAAkB,EAClBC,EAAkB,EAClBU,EAAkB,EAClBlC,EAAqC,EACrCC,EAA2B;IAE3B,OAAO,IAAI,CAACW,GAAG,CACb,CAACa,SAAS,EAAEC,SAAS,EAAEC,KAAK,EAAEvB,MAAM,KAClC,IAAIG,UAAU,CAAEJ,CAAC,IACfA,CAAC,CACEyB,CAAC,IAAKC,sBAAoBC,CAAC,IAAKC,qBAAYP,EAAE,CAACM,CAAC,CAAC,yBAAC,EAAE7B,EAAE,EAAhDwB,SAAS,CAACG,CAAC,CAAC,CAAqC,EACvDI,CAAC,IAAMJ,CAAC,IACPK,wBAEYjB,CAAC,IAAKa,sBAAoBC,CAAC,IAAKC,qBAAYR,EAAE,CAACO,CAAC,CAAC,yBAAC,yBAA5CJ,SAAS,CAACV,CAAC,CAAC,CAA+C,EAF7Ea,sBACUC,CAAC,IAAKC,qBAAYG,EAAE,CAACJ,CAAC,CAAC,yBAAC,EAAE9B,EAAE,CAACgC,CAAC,CAAC,EADzCP,SAAS,CAACG,CAAC,CAAC,CAC8B,CACoC,EAChFD,KAAK,EACLvB,MAAM,CACP,CACF,CACJ;EACH;EAEA,IAAII,GAAG;IACL,OAAO,IAAI,CAACI,GAAG,CAAC,CAACa,SAAS,EAAEU,UAAU,EAAER,KAAK,EAAES,OAAO,KACpDC,wBAAmBT,CAAC,IAAKC,oFAAS,CAACD,CAAC,CAAC,CAAmC,0BAAxED,KAAK,CAACnB,GAAG,CAAgE,CAC1E;EACH;EAEAO,GAAG,CAACC,CAAI,EAAEC,aAAkC;IAC1C,OAAO,IAAI,CAACL,GAAG,CAAC,CAAC0B,UAAU,EAAEZ,SAAS,EAAEC,KAAK,EAAES,OAAO,KAAKP,+CAAiCD,CAAC,IAAKD,KAAK,CAACZ,GAAG,CAACa,CAAC,0BAAC,EAAnDF,SAAS,CAACV,CAAC,CAAC,CAAwC,CAAC;EAClH;EAEAG,MAAM,CAAIhB,CAA4B,EAAEc,aAAkC;IACxE,+BAAO,IAAI,CAACL,GAAG,CAAC,CAACa,SAAS,EAAEC,SAAS,EAAEC,KAAK,EAAES,OAAO,KACnDT,KAAK,CAACR,MAAM,CAAES,CAAC,IACbC,sBACGC,CAAC,IAAK,CAACC,qBAAwBD,CAAC,yBAAC,EAAEF,CAAC,CAAC,EACrCW,EAAE,IAAI;MACL,MAAM,CAACC,CAAC,EAAEC,EAAE,CAAC,GAAGtC,CAAC,CAACoC,EAAE,CAAC;MACrB,OAAOV,sBACJC,CAAC,IAAK,CAACC,qBAAYD,CAAC,yBAAC,EAAEF,CAAC,CAAC,EACzBA,CAAC,IAAK,CAACG,sBAAaS,CAAC,yBAAC,EAAEZ,CAAC,CAAC,EAFtBF,SAAS,CAACe,EAAE,CAAC,CAGnB;IACH,CAAC,EARHhB,SAAS,CAACG,CAAC,CAAC,CASX,yBACF,CACF;EACH;EAEAd,SAAS,CAACL,OAAgB,EAAEQ,aAAkC;IAC5D,OAAO,IAAI,CAACL,GAAG,CAAC,CAAC0B,UAAU,EAAEH,UAAU,EAAEO,MAAM,EAAEtC,MAAM,KAAKO,cAAc,CAACP,MAAM,EAAEK,OAAO,yBAAC,CAAC,CAACG,GAAG,CAAEF,KAAK,IACrGA,KAAK,CAACI,SAAS,EAAE,CAClB;EACH;EAEAI,SAAS,CAACT,OAAgB,EAAEO,CAAI,EAAEC,aAAkC;IAClE,OAAO,IAAI,CAACL,GAAG,CAAC,CAAC0B,UAAU,EAAEH,UAAU,EAAEO,MAAM,EAAEtC,MAAM,KAAKO,cAAc,CAACP,MAAM,EAAEK,OAAO,yBAAC,CAAC,CAACG,GAAG,CAAEF,KAAK,IACrGA,KAAK,CAACQ,SAAS,CAACF,CAAC,CAAC,CACnB;EACH;;AAGF,OAAM,MAAOT,UAAyB,SAAQf,YAA0B;EACtEC,YACWmB,GAOH;IAEN,KAAK,EAAE;IATE,QAAG,GAAHA,GAAG;EAUd;EACAf,KAAK,CACH0B,EAAkB,EAClBC,EAAkB,EAClBxB,EAA2B,EAC3BC,EAA2B;IAE3B,OAAO,IAAI,CAACW,GAAG,CACb,CAACa,SAAS,EAAEC,SAAS,EAAEC,KAAK,EAAEvB,MAAM,KAClC,IAAIG,UAAU,CAAEJ,CAAC,IACfA,CAAC,CACEyB,CAAC,IAAKC,sBAAoBC,CAAC,IAAKC,qBAAYP,EAAE,CAACM,CAAC,CAAC,yBAAC,EAAE7B,EAAE,EAAhDwB,SAAS,CAACG,CAAC,CAAC,CAAqC,EACvDI,CAAC,IAAMJ,CAAC,IAAKK,wBAAejB,CAAC,IAAKa,sBAAuBC,CAAC,IAAKC,qBAAYR,EAAE,CAACO,CAAC,CAAC,yBAAC,yBAA/CJ,SAAS,CAACV,CAAC,CAAC,CAACY,CAAC,CAAC,CAA+C,EAAnF5B,EAAE,CAACgC,CAAC,CAAC,CAA+E,EAClGL,KAAK,EACLvB,MAAM,CACP,CACF,CACJ;EACH;EACAC,QAAQ,CACNkB,EAAkB,EAClBC,EAAkB,EAClBU,EAAkB,EAClBlC,EAAqC,EACrCC,EAA2B;IAE3B,OAAO,IAAI,CAACW,GAAG,CACb,CAACa,SAAS,EAAEC,SAAS,EAAEC,KAAK,EAAEvB,MAAM,KAClC,IAAIG,UAAU,CAAEJ,CAAC,IACfA,CAAC,CACEyB,CAAC,IAAKC,sBAAoBC,CAAC,IAAKC,qBAAYP,EAAE,CAACM,CAAC,CAAC,yBAAC,EAAE7B,EAAE,EAAhDwB,SAAS,CAACG,CAAC,CAAC,CAAqC,EACvDI,CAAC,IAAMJ,CAAC,IACPK,wBAEYjB,CAAC,IAAKa,sBAAuBC,CAAC,IAAKC,qBAAYR,EAAE,CAACO,CAAC,CAAC,yBAAC,yBAA/CJ,SAAS,CAACV,CAAC,CAAC,CAACY,CAAC,CAAC,CAA+C,EAFhFC,sBACUC,CAAC,IAAKC,qBAAYG,EAAE,CAACJ,CAAC,CAAC,yBAAC,EAAE9B,EAAE,CAACgC,CAAC,CAAC,EADzCP,SAAS,CAACG,CAAC,CAAC,CAC8B,CACuC,EACnFD,KAAK,EACLvB,MAAM,CACP,CACF,CACJ;EACH;EAEA,IAAII,GAAG;IACL,OAAO,IAAI,CAACI,GAAG,CAAC,CAACa,SAAS,EAAEU,UAAU,EAAER,KAAK,EAAES,OAAO,KACpDC,wBAAmBT,CAAC,IAAKC,oFAAS,CAACD,CAAC,CAAC,CAAmC,0BAAxED,KAAK,CAACnB,GAAG,CAAgE,CAC1E;EACH;EAEAO,GAAG,CAACC,CAAI,EAAEC,aAAkC;IAC1C,+BAAO,IAAI,CAACL,GAAG,CAAC,CAAC0B,UAAU,EAAEZ,SAAS,EAAEC,KAAK,EAAES,OAAO,KACpDT,KAAK,CAACR,MAAM,CAAES,CAAC,IACbC,sBACGC,CAAC,IAAK,CAACC,qBAAYD,CAAC,yBAAC,EAAEF,CAAC,CAAiC,EACzDA,CAAC,IAAK,CAACG,sBAAaY,SAAS,yBAAC,EAAEf,CAAC,CAAC,EAFrCF,SAAS,CAACV,CAAC,CAAC,CAACY,CAAC,CAAC,CAGd,yBACF,CACF;EACH;EAEAT,MAAM,CAAIhB,CAA4B,EAAEc,aAAkC;IACxE,+BAAO,IAAI,CAACL,GAAG,CAAC,CAACa,SAAS,EAAEC,SAAS,EAAEC,KAAK,EAAEvB,MAAM,KAClDuB,KAAK,CAACR,MAAM,CAAES,CAAC,IACbC,sBACGC,CAAC,IAAK,CAACC,qBAAwBD,CAAC,yBAAC,EAAEF,CAAC,CAAC,EACrCW,EAAE,IAAI;MACL,MAAM,CAACC,CAAC,EAAEC,EAAE,CAAC,GAAGtC,CAAC,CAACoC,EAAE,CAAC;MACrB,OAAOV,sBACJC,CAAC,IAAK,CAACC,qBAAYD,CAAC,yBAAC,EAAEF,CAAC,CAAC,EACzBA,CAAC,IAAK,CAACG,sBAAaS,CAAC,yBAAC,EAAEZ,CAAC,CAAC,EAFtBF,SAAS,CAACe,EAAE,CAAC,CAACb,CAAC,CAAC,CAGtB;IACH,CAAC,EARHH,SAAS,CAACG,CAAC,CAAC,CASX,yBACF,CACF;EACH;EAEAd,SAAS,CAACL,OAAgB,EAAEQ,aAAkC;IAC5D,OAAO,IAAI,CAACL,GAAG,CAAC,CAAC0B,UAAU,EAAEH,UAAU,EAAEO,MAAM,EAAEtC,MAAM,KAAKO,cAAc,CAACP,MAAM,EAAEK,OAAO,yBAAC,CAAC,CAACG,GAAG,CAAEF,KAAK,IACrGA,KAAK,CAACI,SAAS,EAAE,CAClB;EACH;EAEAI,SAAS,CAACT,OAAgB,EAAEO,CAAI,EAAEC,aAAkC;IAClE,OAAO,IAAI,CAACL,GAAG,CAAC,CAAC0B,UAAU,EAAEH,UAAU,EAAEO,MAAM,EAAEtC,MAAM,KAAKO,cAAc,CAACP,MAAM,EAAEK,OAAO,yBAAC,CAAC,CAACG,GAAG,CAAEF,KAAK,IACrGA,KAAK,CAACQ,SAAS,CAACF,CAAC,CAAC,CACnB;EACH;;AAGF;;;AAGA,OAAM,SAAU4B,QAAQ,CACtB/B,CAAsB;EAEtB;AAAA;AAGF,SAASF,cAAc,CAAIkC,IAAe,EAAEpC,OAAgB,EAAEQ,aAAsB;EAClF,IAAIR,OAAO,CAACqC,GAAG,CAACD,IAAI,CAAC,EAAE;IACrB,OAAOpC,OAAO,CAACD,GAAG,CAACqC,IAAI,CAAE;;EAE3B,MAAMnC,KAAK,GAAGqC,qBAAWF,IAAI,EAAE,KAAK,CAAC;EACrCpC,OAAO,CAACM,GAAG,CAAC8B,IAAI,EAAEnC,KAAK,CAAC;EACxB,OAAOA,KAAK;AACd","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]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CachedInternal } from "@fncts/io/Cached/internal";
|
|
2
2
|
|
|
3
|
-
import { CachedTypeId
|
|
3
|
+
import { CachedTypeId, CachedVariance } from "@fncts/io/Cached/internal";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* A Cached is a possibly resourceful value that is loaded into memory, and
|
|
@@ -23,7 +23,11 @@ function runScopedInterpret<Env, InErr, InDone, OutErr, OutDone>(
|
|
|
23
23
|
return IO.fromExit(exec.getDone());
|
|
24
24
|
}
|
|
25
25
|
case ChannelStateTag.Read: {
|
|
26
|
-
return readUpstream(
|
|
26
|
+
return readUpstream(
|
|
27
|
+
channelState,
|
|
28
|
+
() => runScopedInterpret(exec.run(), exec),
|
|
29
|
+
(cause) => IO.refailCause(cause),
|
|
30
|
+
);
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
}
|
|
@@ -38,8 +42,29 @@ function runScopedInterpret<Env, InErr, InDone, OutErr, OutDone>(
|
|
|
38
42
|
export function runScoped<Env, InErr, InDone, OutErr, OutDone>(
|
|
39
43
|
self: Channel<Env, InErr, unknown, InDone, OutErr, never, OutDone>,
|
|
40
44
|
): IO<Env | Scope, OutErr, OutDone> {
|
|
41
|
-
|
|
42
|
-
IO.succeed(new ChannelExecutor(() => self, null, identity)),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
const run = (channelFuture: Future<OutErr, OutDone>, scopeFuture: Future<never, void>, scope: Scope) =>
|
|
46
|
+
IO.acquireReleaseExit(IO.succeed(new ChannelExecutor(() => self, null, identity)), (exec, exit) => {
|
|
47
|
+
const finalize = exec.close(exit);
|
|
48
|
+
if (finalize !== null) {
|
|
49
|
+
return finalize.tapErrorCause((cause) => scope.addFinalizer(IO.refailCause(cause)));
|
|
50
|
+
} else {
|
|
51
|
+
return IO.unit;
|
|
52
|
+
}
|
|
53
|
+
}).flatMap((exec) =>
|
|
54
|
+
IO.defer(runScopedInterpret(exec.run(), exec).fulfill(channelFuture) > channelFuture.await < scopeFuture.await),
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
return IO.uninterruptibleMask((restore) =>
|
|
58
|
+
Do((Δ) => {
|
|
59
|
+
const parent = Δ(IO.scope);
|
|
60
|
+
const child = Δ(parent.fork);
|
|
61
|
+
const channelFuture = Δ(Future.make<OutErr, OutDone>());
|
|
62
|
+
const scopeFuture = Δ(Future.make<never, void>());
|
|
63
|
+
const fiber = Δ(restore(run(channelFuture, scopeFuture, child)).forkScoped);
|
|
64
|
+
Δ(IO.addFinalizer(scopeFuture.succeed(undefined)));
|
|
65
|
+
const done = Δ(restore(channelFuture.await));
|
|
66
|
+
Δ(fiber.inheritAll);
|
|
67
|
+
return done;
|
|
68
|
+
}),
|
|
69
|
+
);
|
|
45
70
|
}
|
|
@@ -32,7 +32,7 @@ function toPullInterpret<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
|
|
32
32
|
return done.match(IO.failCauseNow, (outDone) => IO.succeedNow(Either.left(outDone)));
|
|
33
33
|
}
|
|
34
34
|
case ChannelStateTag.Read: {
|
|
35
|
-
return readUpstream(channelState, () => toPullInterpret(exec.run(), exec));
|
|
35
|
+
return readUpstream(channelState, () => toPullInterpret(exec.run(), exec), IO.refailCause);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
package/_src/Channel/api.ts
CHANGED
|
@@ -1028,6 +1028,7 @@ function isChannelFailure<E>(u: unknown): u is ChannelFailure<E> {
|
|
|
1028
1028
|
|
|
1029
1029
|
/**
|
|
1030
1030
|
* @tsplus pipeable fncts.io.Channel pipeToOrFail
|
|
1031
|
+
* @tsplus pipeable-operator fncts.io.Channel >>>
|
|
1031
1032
|
*/
|
|
1032
1033
|
export function pipeToOrFail<OutElem, OutDone, Env1, OutErr1, OutElem1, OutDone1>(
|
|
1033
1034
|
right: Channel<Env1, never, OutElem, OutDone, OutErr1, OutElem1, OutDone1>,
|
|
@@ -184,9 +184,13 @@ class Emit<R> {
|
|
|
184
184
|
* ChannelExecutor
|
|
185
185
|
* -------------------------------------------------------------------------------------------------
|
|
186
186
|
*/
|
|
187
|
-
export function readUpstream<R, E, A
|
|
187
|
+
export function readUpstream<R, E, A, E1>(
|
|
188
|
+
r: State.Read<R, E>,
|
|
189
|
+
cont: () => IO<R, E1, A>,
|
|
190
|
+
onFailure: (cause: Cause<E>) => IO<R, E1, A>,
|
|
191
|
+
): IO<R, E1, A> {
|
|
188
192
|
const readStack: Stack<State.Read<any, any>> = Stack.single(r);
|
|
189
|
-
const read = (): IO<R,
|
|
193
|
+
const read = (): IO<R, E1, A> => {
|
|
190
194
|
const current = readStack.pop()!;
|
|
191
195
|
if (current.upstream === null) {
|
|
192
196
|
return IO.defer(cont);
|
|
@@ -199,13 +203,13 @@ export function readUpstream<R, E, A>(r: State.Read<R, E>, cont: () => IO<R, E,
|
|
|
199
203
|
if (emitEffect === null) {
|
|
200
204
|
return IO.defer(cont());
|
|
201
205
|
} else {
|
|
202
|
-
return emitEffect.
|
|
206
|
+
return emitEffect.matchCauseIO(onFailure, () => cont());
|
|
203
207
|
}
|
|
204
208
|
} else {
|
|
205
209
|
if (emitEffect === null) {
|
|
206
210
|
return IO.defer(read());
|
|
207
211
|
} else {
|
|
208
|
-
return emitEffect.
|
|
212
|
+
return emitEffect.matchCauseIO(onFailure, () => read());
|
|
209
213
|
}
|
|
210
214
|
}
|
|
211
215
|
}
|
|
@@ -215,13 +219,13 @@ export function readUpstream<R, E, A>(r: State.Read<R, E>, cont: () => IO<R, E,
|
|
|
215
219
|
if (doneEffect === null) {
|
|
216
220
|
return IO.defer(cont());
|
|
217
221
|
} else {
|
|
218
|
-
return doneEffect.
|
|
222
|
+
return doneEffect.matchCauseIO(onFailure, () => cont());
|
|
219
223
|
}
|
|
220
224
|
} else {
|
|
221
225
|
if (doneEffect === null) {
|
|
222
226
|
return IO.defer(read());
|
|
223
227
|
} else {
|
|
224
|
-
return doneEffect.
|
|
228
|
+
return doneEffect.matchCauseIO(onFailure, () => read());
|
|
225
229
|
}
|
|
226
230
|
}
|
|
227
231
|
}
|
|
@@ -321,8 +325,10 @@ export class ChannelExecutor<Env, InErr, InElem, InDone, OutErr, OutElem, OutDon
|
|
|
321
325
|
);
|
|
322
326
|
}
|
|
323
327
|
case State.ChannelStateTag.Read: {
|
|
324
|
-
return readUpstream(
|
|
325
|
-
|
|
328
|
+
return readUpstream(
|
|
329
|
+
state,
|
|
330
|
+
() => drainer,
|
|
331
|
+
(cause: Cause<any>) => currentChannel.input.error(cause),
|
|
326
332
|
);
|
|
327
333
|
}
|
|
328
334
|
}
|
|
@@ -492,26 +498,24 @@ export class ChannelExecutor<Env, InErr, InElem, InDone, OutErr, OutElem, OutDon
|
|
|
492
498
|
|
|
493
499
|
private popAllFinalizers(exit: Exit<unknown, unknown>): URIO<Env, any> {
|
|
494
500
|
/**
|
|
495
|
-
* @tsplus
|
|
501
|
+
* @tsplus tailRec
|
|
496
502
|
*/
|
|
497
|
-
const unwind = (
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
): IO<Env, never, Exit<never, unknown>> => {
|
|
501
|
-
if (conts.isEmpty()) {
|
|
502
|
-
return acc;
|
|
503
|
+
const unwind = (acc: List<Finalizer<Env>>): List<Finalizer<Env>> => {
|
|
504
|
+
if (this.doneStack.isEmpty()) {
|
|
505
|
+
return acc.reverse;
|
|
503
506
|
} else {
|
|
504
|
-
const head
|
|
507
|
+
const head = this.doneStack.unsafeHead;
|
|
508
|
+
this.doneStack = this.doneStack.unsafeTail;
|
|
505
509
|
concreteContinuation(head);
|
|
506
510
|
if (head._tag === ChannelTag.ContinuationK) {
|
|
507
|
-
return unwind(acc
|
|
511
|
+
return unwind(acc);
|
|
508
512
|
} else {
|
|
509
|
-
return unwind(acc.
|
|
513
|
+
return unwind(acc.prepend(head.finalizer));
|
|
510
514
|
}
|
|
511
515
|
}
|
|
512
516
|
};
|
|
513
|
-
const
|
|
514
|
-
|
|
517
|
+
const finalizers = unwind(List.empty());
|
|
518
|
+
const effect = finalizers.isEmpty() ? IO.unit : this.runFinalizers(finalizers, exit);
|
|
515
519
|
this.storeInProgressFinalizer(effect);
|
|
516
520
|
return effect;
|
|
517
521
|
}
|
|
@@ -26,7 +26,7 @@ export class InterruptSignal {
|
|
|
26
26
|
/**
|
|
27
27
|
* @tsplus static fncts.io.FiberMessageOps InterruptSignal
|
|
28
28
|
*/
|
|
29
|
-
export function
|
|
29
|
+
export function interruptSignal(cause: Cause<never>): FiberMessage {
|
|
30
30
|
return new InterruptSignal(cause);
|
|
31
31
|
}
|
|
32
32
|
|
|
@@ -38,7 +38,7 @@ export class GenStackTrace {
|
|
|
38
38
|
/**
|
|
39
39
|
* @tsplus static fncts.io.FiberMessageOps GenStackTrace
|
|
40
40
|
*/
|
|
41
|
-
export function
|
|
41
|
+
export function genStackTrace(onTrace: (trace: Trace) => void): FiberMessage {
|
|
42
42
|
return new GenStackTrace(onTrace);
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -50,7 +50,7 @@ export class Stateful {
|
|
|
50
50
|
/**
|
|
51
51
|
* @tsplus static fncts.io.FiberMessageOps Stateful
|
|
52
52
|
*/
|
|
53
|
-
export function
|
|
53
|
+
export function stateful(onFiber: (fiber: FiberRuntime<any, any>, status: FiberStatus) => void): FiberMessage {
|
|
54
54
|
return new Stateful(onFiber);
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -62,7 +62,7 @@ export class Resume {
|
|
|
62
62
|
/**
|
|
63
63
|
* @tsplus static fncts.io.FiberMessageOps Resume
|
|
64
64
|
*/
|
|
65
|
-
export function
|
|
65
|
+
export function resume(cont: IO<any, any, any>): FiberMessage {
|
|
66
66
|
return new Resume(cont);
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -73,6 +73,6 @@ export interface YieldNow {
|
|
|
73
73
|
/**
|
|
74
74
|
* @tsplus static fncts.io.FiberMessageOps YieldNow
|
|
75
75
|
*/
|
|
76
|
-
export const
|
|
76
|
+
export const yieldNow: FiberMessage = {
|
|
77
77
|
_tag: FiberMessageTag.YieldNow,
|
|
78
78
|
};
|
|
@@ -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,20 +494,42 @@ 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))));
|
|
508
531
|
} else {
|
|
509
|
-
cur = IO.concrete(IO.failCauseNow(Cause.halt(e)));
|
|
532
|
+
cur = IO.concrete(IO.failCauseNow(Cause.halt(e, Trace(this.fiberId, Conc(TraceElement.parse(lastTrace))))));
|
|
510
533
|
}
|
|
511
534
|
}
|
|
512
535
|
}
|
|
@@ -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/FiberRefs/api.ts
CHANGED
package/_src/Hub/api.ts
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
unsafeMakeHub,
|
|
12
12
|
} from "@fncts/io/Hub/internal";
|
|
13
13
|
import { Hub as HubInternal } from "@fncts/io/internal/Hub";
|
|
14
|
-
import { EnqueueTypeId, QueueTypeId
|
|
14
|
+
import { EnqueueTypeId, QueueTypeId, QueueVariance } from "@fncts/io/Queue";
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Waits for the hub to be shut down.
|
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
|
);
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type { Spreadable } from "@fncts/base/types";
|
|
2
|
-
import type { Erase } from "@fncts/typelevel/Intersection";
|
|
3
1
|
/**
|
|
4
2
|
* @tsplus static fncts.io.IOAspects provideSomeLayer
|
|
5
3
|
* @tsplus pipeable fncts.io.IO provideSomeLayer
|
|
6
4
|
*/
|
|
7
5
|
export function provideSomeLayer<RIn, E1, ROut>(layer: Layer<RIn, E1, ROut>, __tsplusTrace?: string) {
|
|
8
|
-
return <R, E, A>(self: IO<R, E, A>): IO<RIn
|
|
6
|
+
return <R, E, A>(self: IO<R, E, A>): IO<RIn | Exclude<R, ROut>, E | E1, A> => {
|
|
9
7
|
// @ts-expect-error
|
|
10
8
|
return self.provideLayer(Layer.environment<RIn>().and(layer));
|
|
11
9
|
};
|
package/_src/IO/api/raceWith.ts
CHANGED
|
@@ -31,15 +31,13 @@ export function raceFibersWith<R, E, A, R1, E1, B, R2, E2, C, R3, E3, D>(
|
|
|
31
31
|
const raceIndicator = new AtomicBoolean(true);
|
|
32
32
|
const leftFiber = IO.unsafeMakeChildFiber(left, parentState, parentRuntimeFlags, null, __tsplusTrace);
|
|
33
33
|
const rightFiber = IO.unsafeMakeChildFiber(right0, parentState, parentRuntimeFlags, null, __tsplusTrace);
|
|
34
|
-
leftFiber.setFiberRef(FiberRef.forkScopeOverride, Just(parentState.scope));
|
|
35
|
-
rightFiber.setFiberRef(FiberRef.forkScopeOverride, Just(parentState.scope));
|
|
36
34
|
|
|
37
35
|
return IO.async((cb) => {
|
|
38
36
|
leftFiber.addObserver(() => complete(leftFiber, rightFiber, leftWins, raceIndicator, cb));
|
|
39
37
|
rightFiber.addObserver(() => complete(rightFiber, leftFiber, rightWins, raceIndicator, cb));
|
|
40
38
|
leftFiber.startFork(left);
|
|
41
39
|
rightFiber.startFork(right0);
|
|
42
|
-
});
|
|
40
|
+
}, leftFiber.fiberId.combine(rightFiber.fiberId));
|
|
43
41
|
});
|
|
44
42
|
};
|
|
45
43
|
}
|
package/_src/IO/api/stateful.ts
CHANGED