@fncts/io 0.0.10 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- package/Cached/api.d.ts +2 -3
- package/Channel/api/interruptWhen.d.ts +1 -1
- package/Channel/api/mapOutIOC.d.ts +1 -1
- package/Channel/api/mergeAll.d.ts +1 -1
- package/Channel/api/mergeAllUnboundedWith.d.ts +1 -1
- package/Channel/api/mergeAllWith.d.ts +1 -1
- package/Channel/api/mergeMap.d.ts +1 -1
- package/Channel/api/mergeWith.d.ts +1 -1
- package/Channel/api/runScoped.d.ts +1 -2
- package/Channel/api/toPull.d.ts +1 -2
- package/Channel/api/zipC.d.ts +3 -3
- package/Channel/api.d.ts +48 -49
- package/Channel/core-api.d.ts +10 -10
- package/Channel/definition.d.ts +12 -12
- package/Channel/internal/MergeDecision.d.ts +1 -1
- package/Channel/internal/SingleProducerAsyncInput.d.ts +1 -1
- package/Clock/api.d.ts +1 -1
- package/Fiber/FiberContext.d.ts +3 -3
- package/Fiber/api/awaitAll.d.ts +1 -1
- package/Fiber/api/evalOnIO.d.ts +1 -1
- package/Fiber/api/joinAll.d.ts +1 -1
- package/Fiber/definition.d.ts +1 -1
- package/FiberRef/api/locallyScoped.d.ts +1 -2
- package/FiberRef/api/locallyScopedWith.d.ts +1 -2
- package/FiberRef/constructors.d.ts +1 -2
- package/FiberRef/unsafe.d.ts +6 -0
- package/Future/api.d.ts +1 -1
- package/Future/constructors.d.ts +1 -1
- package/Hub/api.d.ts +6 -7
- package/Hub/definition.d.ts +6 -7
- package/Hub/internal.d.ts +0 -1
- package/IO/api/acquireRelease.d.ts +1 -2
- package/IO/api/acquireReleaseExit.d.ts +1 -2
- package/IO/api/acquireReleaseInterruptible.d.ts +1 -2
- package/IO/api/acquireReleaseInterruptibleExit.d.ts +1 -2
- package/IO/api/addFinalizer.d.ts +1 -2
- package/IO/api/addFinalizerExit.d.ts +1 -2
- package/IO/api/bracket.d.ts +1 -1
- package/IO/api/bracketExit.d.ts +1 -1
- package/IO/api/clockWith.d.ts +1 -1
- package/IO/api/concurrentFinalizers.d.ts +1 -2
- package/IO/api/consoleWith.d.ts +1 -1
- package/IO/api/core-scope.d.ts +1 -1
- package/IO/api/ensuringChildren.d.ts +1 -1
- package/IO/api/environment.d.ts +8 -10
- package/IO/api/forkScoped.d.ts +1 -2
- package/IO/api/interrupt.d.ts +3 -3
- package/IO/api/onExit.d.ts +1 -1
- package/IO/api/onTermination.d.ts +1 -1
- package/IO/api/provideSomeLayer.d.ts +1 -1
- package/IO/api/race.d.ts +1 -1
- package/IO/api/raceFirst.d.ts +1 -1
- package/IO/api/randomWith.d.ts +1 -1
- package/IO/api/repeat.d.ts +3 -3
- package/IO/api/retry.d.ts +3 -3
- package/IO/api/schedule.d.ts +2 -2
- package/IO/api/scope.d.ts +1 -2
- package/IO/api/scopeWith.d.ts +1 -2
- package/IO/api/scoped.d.ts +2 -3
- package/IO/api/sequenceT.d.ts +3 -3
- package/IO/api/stateful.d.ts +1 -2
- package/IO/api/withEarlyRelease.d.ts +1 -2
- package/IO/api/withFinalizer.d.ts +1 -2
- package/IO/api/withFinalizerExit.d.ts +1 -2
- package/IO/api/zipC.d.ts +2 -2
- package/IO/api.d.ts +50 -50
- package/IO/definition.d.ts +28 -24
- package/IO/runtime.d.ts +23 -10
- package/IOEnv/definition.d.ts +2 -3
- package/IOEnv/live.d.ts +1 -1
- package/IOSpec.d.ts +1 -2
- package/Layer/MemoMap.d.ts +2 -3
- package/Layer/api.d.ts +30 -32
- package/Layer/definition.d.ts +7 -8
- package/Queue/api/dimapIO.d.ts +3 -3
- package/Queue/api/filterInputIO.d.ts +4 -4
- package/Queue/api/filterOutputIO.d.ts +6 -6
- package/Queue/api/zipWithIO.d.ts +9 -9
- package/Queue/definition.d.ts +7 -7
- package/Queue/internal.d.ts +1 -1
- package/Random/api.d.ts +4 -4
- package/Random/live.d.ts +1 -1
- package/Ref/Atomic/Atomic.d.ts +3 -3
- package/Ref/Derived.d.ts +3 -3
- package/Ref/DerivedAll.d.ts +3 -3
- package/Ref/Synchronized/api.d.ts +15 -15
- package/Ref/Synchronized/definition.d.ts +2 -2
- package/Ref/api/get.d.ts +1 -1
- package/Ref/api/modify.d.ts +9 -9
- package/Ref/api/set.d.ts +1 -1
- package/Ref/definition.d.ts +13 -13
- package/STM/api/core-api.d.ts +4 -4
- package/STM/api/core-constructors.d.ts +7 -7
- package/STM/api.d.ts +27 -39
- package/STM/definition.d.ts +9 -8
- package/STM/driver.d.ts +1 -1
- package/STM/internal/Journal.d.ts +4 -3
- package/Schedule/Decision.d.ts +10 -4
- package/Schedule/Driver.d.ts +3 -3
- package/Schedule/api.d.ts +55 -43
- package/Schedule/definition.d.ts +1 -1
- package/Scope/Finalizer/definition.d.ts +2 -2
- package/Scope/ReleaseMap/api.d.ts +1 -1
- package/Scope/ReleaseMap/definition.d.ts +1 -1
- package/Scope/api.d.ts +3 -4
- package/ScopedRef/api.d.ts +1 -2
- package/ScopedRef/definition.d.ts +1 -2
- package/Sink/api.d.ts +255 -75
- package/State/api.d.ts +1 -2
- package/Stream/api/zipAllWith.d.ts +1 -1
- package/Stream/api/zipWith.d.ts +1 -1
- package/Stream/api/zipWithChunks.d.ts +1 -1
- package/Stream/api.d.ts +91 -93
- package/Stream/definition.d.ts +3 -3
- package/Stream/internal/Take.d.ts +1 -1
- package/Supervisor/constructors.d.ts +2 -2
- package/TFuture/api.d.ts +1 -1
- package/TFuture/definition.d.ts +1 -1
- package/TReentrantLock/api.d.ts +2 -3
- package/TRef/api.d.ts +11 -11
- package/TRef/constructors.d.ts +2 -2
- package/TSemaphore/api.d.ts +2 -2
- package/TSemaphore/definition.d.ts +1 -1
- package/_cjs/Cached/api.cjs.map +1 -1
- package/_cjs/Channel/api/mapOutIOC.cjs +1 -1
- package/_cjs/Channel/api/mapOutIOC.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.cjs.map +1 -1
- package/_cjs/Channel/definition.cjs.map +1 -1
- package/_cjs/Clock/live.cjs.map +1 -1
- package/_cjs/Fiber/FiberContext.cjs +5 -7
- package/_cjs/Fiber/FiberContext.cjs.map +1 -1
- package/_cjs/FiberRef/unsafe.cjs +9 -1
- package/_cjs/FiberRef/unsafe.cjs.map +1 -1
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/Hub/api.cjs +1 -1
- package/_cjs/Hub/api.cjs.map +1 -1
- package/_cjs/Hub/internal.cjs +4 -12
- package/_cjs/Hub/internal.cjs.map +1 -1
- package/_cjs/IO/api/addFinalizerExit.cjs +4 -8
- package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
- package/_cjs/IO/api/ensuringChildren.cjs +1 -1
- package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
- package/_cjs/IO/api/environment.cjs +2 -3
- package/_cjs/IO/api/environment.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +1 -1
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/memoize.cjs +4 -8
- package/_cjs/IO/api/memoize.cjs.map +1 -1
- package/_cjs/IO/api/provideSomeLayer.cjs +1 -2
- package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
- package/_cjs/IO/api/scope.cjs +1 -1
- package/_cjs/IO/api/scope.cjs.map +1 -1
- package/_cjs/IO/api/scoped.cjs.map +1 -1
- package/_cjs/IO/api/withChildren.cjs +1 -1
- package/_cjs/IO/api/withChildren.cjs.map +1 -1
- package/_cjs/IO/api.cjs +1 -1
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs +5 -8
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO/runtime.cjs +69 -21
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/Layer/MemoMap.cjs +22 -38
- package/_cjs/Layer/MemoMap.cjs.map +1 -1
- package/_cjs/Layer/api.cjs +6 -4
- package/_cjs/Layer/api.cjs.map +1 -1
- package/_cjs/Layer/definition.cjs.map +1 -1
- package/_cjs/Queue/internal.cjs +2 -2
- package/_cjs/Queue/internal.cjs.map +1 -1
- package/_cjs/Queue/strategy.cjs +1 -5
- package/_cjs/Queue/strategy.cjs.map +1 -1
- package/_cjs/Ref/Atomic/Atomic.cjs.map +1 -1
- package/_cjs/Ref/Derived.cjs.map +1 -1
- package/_cjs/Ref/DerivedAll.cjs.map +1 -1
- package/_cjs/Ref/Synchronized/constructors.cjs +7 -11
- package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
- package/_cjs/STM/api/core-constructors.cjs.map +1 -1
- package/_cjs/STM/api.cjs +59 -78
- package/_cjs/STM/api.cjs.map +1 -1
- package/_cjs/STM/definition.cjs.map +1 -1
- package/_cjs/STM/driver.cjs +7 -5
- package/_cjs/STM/driver.cjs.map +1 -1
- package/_cjs/STM/internal/Journal.cjs +20 -22
- package/_cjs/STM/internal/Journal.cjs.map +1 -1
- package/_cjs/Schedule/Decision.cjs +17 -0
- package/_cjs/Schedule/Decision.cjs.map +1 -1
- package/_cjs/Schedule/api/driver.cjs +22 -21
- package/_cjs/Schedule/api/driver.cjs.map +1 -1
- package/_cjs/Schedule/api.cjs +91 -66
- package/_cjs/Schedule/api.cjs.map +1 -1
- package/_cjs/Scope/Finalizer/definition.cjs +4 -6
- package/_cjs/Scope/Finalizer/definition.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/definition.cjs +2 -4
- package/_cjs/Scope/ReleaseMap/definition.cjs.map +1 -1
- package/_cjs/Scope/api.cjs +2 -12
- package/_cjs/Scope/api.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +14 -22
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/Sink/api.cjs +424 -131
- package/_cjs/Sink/api.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +94 -94
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/Supervisor/constructors.cjs +14 -8
- package/_cjs/Supervisor/constructors.cjs.map +1 -1
- package/_cjs/TFuture/definition.cjs +2 -4
- package/_cjs/TFuture/definition.cjs.map +1 -1
- package/_cjs/TSemaphore/api.cjs +7 -7
- package/_cjs/TSemaphore/api.cjs.map +1 -1
- package/_cjs/TSemaphore/definition.cjs +2 -4
- package/_cjs/TSemaphore/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +38 -0
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -0
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +38 -0
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -0
- package/_cjs/internal/Scheduler.cjs +64 -14
- package/_cjs/internal/Scheduler.cjs.map +1 -1
- package/_mjs/Cached/api.mjs.map +1 -1
- package/_mjs/Channel/api/mapOutIOC.mjs +1 -1
- package/_mjs/Channel/api/mapOutIOC.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.mjs.map +1 -1
- package/_mjs/Channel/definition.mjs.map +1 -1
- package/_mjs/Clock/live.mjs.map +1 -1
- package/_mjs/Fiber/FiberContext.mjs +5 -6
- package/_mjs/Fiber/FiberContext.mjs.map +1 -1
- package/_mjs/FiberRef/unsafe.mjs +6 -0
- package/_mjs/FiberRef/unsafe.mjs.map +1 -1
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/Hub/api.mjs +1 -1
- package/_mjs/Hub/api.mjs.map +1 -1
- package/_mjs/Hub/internal.mjs +4 -12
- package/_mjs/Hub/internal.mjs.map +1 -1
- package/_mjs/IO/api/addFinalizerExit.mjs +4 -8
- package/_mjs/IO/api/addFinalizerExit.mjs.map +1 -1
- package/_mjs/IO/api/ensuringChildren.mjs +1 -1
- package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
- package/_mjs/IO/api/environment.mjs +2 -3
- package/_mjs/IO/api/environment.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +1 -1
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/memoize.mjs +4 -8
- package/_mjs/IO/api/memoize.mjs.map +1 -1
- package/_mjs/IO/api/provideSomeLayer.mjs +1 -2
- package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
- package/_mjs/IO/api/scope.mjs +1 -1
- package/_mjs/IO/api/scope.mjs.map +1 -1
- package/_mjs/IO/api/scoped.mjs.map +1 -1
- package/_mjs/IO/api/withChildren.mjs +1 -1
- package/_mjs/IO/api/withChildren.mjs.map +1 -1
- package/_mjs/IO/api.mjs +1 -1
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs +3 -5
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO/runtime.mjs +61 -18
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/Layer/MemoMap.mjs +22 -38
- package/_mjs/Layer/MemoMap.mjs.map +1 -1
- package/_mjs/Layer/api.mjs +5 -4
- package/_mjs/Layer/api.mjs.map +1 -1
- package/_mjs/Layer/definition.mjs.map +1 -1
- package/_mjs/Queue/internal.mjs +2 -2
- package/_mjs/Queue/internal.mjs.map +1 -1
- package/_mjs/Queue/strategy.mjs +1 -5
- package/_mjs/Queue/strategy.mjs.map +1 -1
- package/_mjs/Ref/Atomic/Atomic.mjs.map +1 -1
- package/_mjs/Ref/Derived.mjs.map +1 -1
- package/_mjs/Ref/DerivedAll.mjs.map +1 -1
- package/_mjs/Ref/Synchronized/constructors.mjs +7 -11
- package/_mjs/Ref/Synchronized/constructors.mjs.map +1 -1
- package/_mjs/STM/api/core-constructors.mjs.map +1 -1
- package/_mjs/STM/api.mjs +52 -72
- package/_mjs/STM/api.mjs.map +1 -1
- package/_mjs/STM/definition.mjs.map +1 -1
- package/_mjs/STM/driver.mjs +6 -5
- package/_mjs/STM/driver.mjs.map +1 -1
- package/_mjs/STM/internal/Journal.mjs +20 -21
- package/_mjs/STM/internal/Journal.mjs.map +1 -1
- package/_mjs/Schedule/Decision.mjs +9 -0
- package/_mjs/Schedule/Decision.mjs.map +1 -1
- package/_mjs/Schedule/api/driver.mjs +20 -20
- package/_mjs/Schedule/api/driver.mjs.map +1 -1
- package/_mjs/Schedule/api.mjs +84 -63
- package/_mjs/Schedule/api.mjs.map +1 -1
- package/_mjs/Scope/Finalizer/definition.mjs +4 -5
- package/_mjs/Scope/Finalizer/definition.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/definition.mjs +2 -3
- package/_mjs/Scope/ReleaseMap/definition.mjs.map +1 -1
- package/_mjs/Scope/api.mjs +2 -12
- package/_mjs/Scope/api.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +14 -22
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/Sink/api.mjs +414 -129
- package/_mjs/Sink/api.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +94 -94
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/Supervisor/constructors.mjs +9 -6
- package/_mjs/Supervisor/constructors.mjs.map +1 -1
- package/_mjs/TFuture/definition.mjs +2 -3
- package/_mjs/TFuture/definition.mjs.map +1 -1
- package/_mjs/TSemaphore/api.mjs +4 -4
- package/_mjs/TSemaphore/api.mjs.map +1 -1
- package/_mjs/TSemaphore/definition.mjs +2 -3
- package/_mjs/TSemaphore/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +26 -0
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -0
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +26 -0
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -0
- package/_mjs/internal/Scheduler.mjs +62 -15
- package/_mjs/internal/Scheduler.mjs.map +1 -1
- package/_src/Cached/api.ts +3 -3
- package/_src/Channel/api/interruptWhen.ts +1 -1
- package/_src/Channel/api/mapOutIOC.ts +2 -2
- package/_src/Channel/api/mergeAll.ts +1 -1
- package/_src/Channel/api/mergeAllUnboundedWith.ts +1 -1
- package/_src/Channel/api/mergeAllWith.ts +3 -3
- package/_src/Channel/api/mergeMap.ts +1 -1
- package/_src/Channel/api/mergeWith.ts +9 -9
- package/_src/Channel/api/runScoped.ts +1 -1
- package/_src/Channel/api/toPull.ts +1 -1
- package/_src/Channel/api/zipC.ts +3 -3
- package/_src/Channel/api.ts +69 -69
- package/_src/Channel/core-api.ts +11 -11
- package/_src/Channel/definition.ts +12 -12
- package/_src/Channel/internal/MergeDecision.ts +1 -1
- package/_src/Clock/live.ts +1 -1
- package/_src/Fiber/FiberContext.ts +10 -8
- package/_src/Fiber/api/awaitAll.ts +1 -1
- package/_src/Fiber/api/evalOnIO.ts +1 -1
- package/_src/Fiber/api/joinAll.ts +1 -1
- package/_src/Fiber/definition.ts +1 -1
- package/_src/FiberRef/api/locallyScoped.ts +1 -1
- package/_src/FiberRef/api/locallyScopedWith.ts +1 -1
- package/_src/FiberRef/constructors.ts +2 -2
- package/_src/FiberRef/unsafe.ts +7 -0
- package/_src/Future/api.ts +3 -3
- package/_src/Future/constructors.ts +1 -1
- package/_src/Hub/api.ts +11 -11
- package/_src/Hub/definition.ts +6 -6
- package/_src/Hub/internal.ts +15 -15
- package/_src/IO/api/acquireRelease.ts +1 -1
- package/_src/IO/api/acquireReleaseExit.ts +1 -1
- package/_src/IO/api/acquireReleaseInterruptible.ts +1 -1
- package/_src/IO/api/acquireReleaseInterruptibleExit.ts +1 -1
- package/_src/IO/api/addFinalizer.ts +1 -1
- package/_src/IO/api/addFinalizerExit.ts +5 -7
- package/_src/IO/api/bracket.ts +1 -1
- package/_src/IO/api/bracketExit.ts +1 -1
- package/_src/IO/api/concurrentFinalizers.ts +1 -1
- package/_src/IO/api/core-scope.ts +1 -1
- package/_src/IO/api/ensuringChildren.ts +2 -2
- package/_src/IO/api/environment.ts +9 -11
- package/_src/IO/api/forkScoped.ts +1 -1
- package/_src/IO/api/interrupt.ts +3 -3
- package/_src/IO/api/memoize.ts +3 -3
- package/_src/IO/api/onExit.ts +1 -1
- package/_src/IO/api/onTermination.ts +1 -1
- package/_src/IO/api/provideSomeLayer.ts +1 -2
- package/_src/IO/api/race.ts +1 -1
- package/_src/IO/api/raceFirst.ts +1 -1
- package/_src/IO/api/repeat.ts +4 -4
- package/_src/IO/api/retry.ts +4 -4
- package/_src/IO/api/schedule.ts +3 -3
- package/_src/IO/api/scope.ts +1 -1
- package/_src/IO/api/scopeWith.ts +1 -1
- package/_src/IO/api/scoped.ts +2 -2
- package/_src/IO/api/sequenceT.ts +1 -1
- package/_src/IO/api/stateful.ts +1 -1
- package/_src/IO/api/withChildren.ts +1 -1
- package/_src/IO/api/withEarlyRelease.ts +1 -1
- package/_src/IO/api/withFinalizer.ts +1 -1
- package/_src/IO/api/withFinalizerExit.ts +1 -1
- package/_src/IO/api/zipC.ts +2 -2
- package/_src/IO/api.ts +48 -48
- package/_src/IO/definition.ts +29 -24
- package/_src/IO/runtime.ts +66 -12
- package/_src/IOEnv/definition.ts +1 -1
- package/_src/Layer/MemoMap.ts +19 -19
- package/_src/Layer/api.ts +38 -38
- package/_src/Layer/definition.ts +5 -5
- package/_src/Queue/api/dimapIO.ts +10 -10
- package/_src/Queue/api/filterInputIO.ts +4 -4
- package/_src/Queue/api/filterOutputIO.ts +6 -6
- package/_src/Queue/api/zipWithIO.ts +10 -10
- package/_src/Queue/definition.ts +7 -7
- package/_src/Queue/internal.ts +7 -7
- package/_src/Queue/strategy.ts +4 -4
- package/_src/Random/api.ts +1 -1
- package/_src/Ref/Atomic/Atomic.ts +3 -3
- package/_src/Ref/Derived.ts +3 -3
- package/_src/Ref/DerivedAll.ts +3 -3
- package/_src/Ref/Synchronized/api.ts +15 -15
- package/_src/Ref/Synchronized/constructors.ts +4 -4
- package/_src/Ref/Synchronized/definition.ts +2 -2
- package/_src/Ref/api/get.ts +2 -2
- package/_src/Ref/api/modify.ts +9 -9
- package/_src/Ref/api/set.ts +1 -1
- package/_src/Ref/definition.ts +13 -13
- package/_src/STM/api/core-api.ts +6 -6
- package/_src/STM/api/core-constructors.ts +7 -7
- package/_src/STM/api.ts +58 -89
- package/_src/STM/definition.ts +6 -6
- package/_src/STM/driver.ts +3 -3
- package/_src/STM/internal/Journal.ts +25 -16
- package/_src/Schedule/Decision.ts +10 -3
- package/_src/Schedule/Driver.ts +2 -2
- package/_src/Schedule/api/driver.ts +6 -6
- package/_src/Schedule/api.ts +97 -77
- package/_src/Schedule/definition.ts +1 -1
- package/_src/Scope/Finalizer/definition.ts +2 -2
- package/_src/Scope/ReleaseMap/api.ts +1 -1
- package/_src/Scope/ReleaseMap/definition.ts +1 -1
- package/_src/Scope/api.ts +11 -11
- package/_src/ScopedRef/api.ts +12 -17
- package/_src/ScopedRef/definition.ts +1 -1
- package/_src/Sink/api.ts +441 -86
- package/_src/State/api.ts +1 -1
- package/_src/Stream/api/zipAllWith.ts +2 -2
- package/_src/Stream/api/zipWith.ts +1 -1
- package/_src/Stream/api/zipWithChunks.ts +2 -2
- package/_src/Stream/api.ts +150 -149
- package/_src/Stream/definition.ts +3 -3
- package/_src/Stream/internal/Take.ts +1 -1
- package/_src/Supervisor/constructors.ts +7 -3
- package/_src/TFuture/api.ts +1 -1
- package/_src/TFuture/definition.ts +1 -1
- package/_src/TReentrantLock/api.ts +2 -2
- package/_src/TRef/api.ts +11 -11
- package/_src/TRef/constructors.ts +2 -2
- package/_src/TSemaphore/api.ts +2 -2
- package/_src/TSemaphore/definition.ts +1 -1
- package/_src/collection/immutable/Conc/dropUntilIO.ts +24 -0
- package/_src/collection/immutable/Conc/dropWhileIO.ts +26 -0
- package/_src/internal/Scheduler.ts +59 -15
- package/collection/immutable/Conc/dropUntilIO.d.ts +7 -0
- package/collection/immutable/Conc/dropWhileIO.d.ts +7 -0
- package/internal/Scheduler.d.ts +18 -1
- package/package.json +3 -3
@@ -25,9 +25,9 @@ export type StreamTypeId = typeof StreamTypeId;
|
|
25
25
|
*/
|
26
26
|
export class Stream<R, E, A> {
|
27
27
|
readonly [StreamTypeId]: StreamTypeId = StreamTypeId;
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
declare _R: () => R;
|
29
|
+
declare _E: () => E;
|
30
|
+
declare _A: () => A;
|
31
31
|
|
32
32
|
constructor(readonly channel: Channel<R, unknown, unknown, unknown, E, Conc<A>, unknown>) {}
|
33
33
|
}
|
@@ -52,7 +52,7 @@ export function matchIO_<R, R1, R2, E, E1, E2, E3, A, Z>(
|
|
52
52
|
end: IO<R, E1, Z>,
|
53
53
|
error: (cause: Cause<E>) => IO<R1, E2, Z>,
|
54
54
|
value: (chunk: Conc<A>) => IO<R2, E3, Z>,
|
55
|
-
): IO<R
|
55
|
+
): IO<R | R1 | R2, E1 | E2 | E3, Z> {
|
56
56
|
return self.exit.match((cause) => cause.flipCauseMaybe.match(() => end, error), value);
|
57
57
|
}
|
58
58
|
|
@@ -1,12 +1,14 @@
|
|
1
1
|
import type { AtomicReference } from "@fncts/base/internal/AtomicReference";
|
2
2
|
|
3
|
+
import { IterableWeakSet } from "@fncts/base/collection/weak/IterableWeakSet";
|
4
|
+
|
3
5
|
import { ConstSupervisor } from "./definition.js";
|
4
6
|
|
5
7
|
/**
|
6
8
|
* @tsplus static fncts.io.SupervisorOps unsafeTrack
|
7
9
|
*/
|
8
|
-
export function unsafeTrack(): Supervisor<Conc<Fiber.Runtime<any, any>>> {
|
9
|
-
const set = new Set<Fiber.Runtime<any, any>>();
|
10
|
+
export function unsafeTrack(weak: boolean): Supervisor<Conc<Fiber.Runtime<any, any>>> {
|
11
|
+
const set = weak ? new IterableWeakSet<Fiber.Runtime<any, any>>() : new Set<Fiber.Runtime<any, any>>();
|
10
12
|
return new (class extends Supervisor<Conc<Fiber.Runtime<any, any>>> {
|
11
13
|
value = IO.succeed(Conc.from(set));
|
12
14
|
unsafeOnStart<R, E, A>(
|
@@ -62,4 +64,6 @@ export const none = new ConstSupervisor(IO.unit);
|
|
62
64
|
/**
|
63
65
|
* @tsplus static fncts.io.SupervisorOps track
|
64
66
|
*/
|
65
|
-
export
|
67
|
+
export function track(weak: boolean, __tsplusTrace?: string): UIO<Supervisor<Conc<Fiber.Runtime<any, any>>>> {
|
68
|
+
return IO.succeed(unsafeTrack(weak));
|
69
|
+
}
|
package/_src/TFuture/api.ts
CHANGED
@@ -37,6 +37,6 @@ export function succeed_<E, A>(self: TFuture<E, A>, a: A): USTM<boolean> {
|
|
37
37
|
/**
|
38
38
|
* @tsplus getter fncts.io.TFuture await
|
39
39
|
*/
|
40
|
-
export function wait<E, A>(self: TFuture<E, A>): STM<
|
40
|
+
export function wait<E, A>(self: TFuture<E, A>): STM<never, E, A> {
|
41
41
|
return TFuture.reverseGet(self).get.filterMapSTM((mea) => mea.map(STM.fromEitherNow));
|
42
42
|
}
|
@@ -107,14 +107,14 @@ export function withWriteLock<R, E, A>(self: TReentrantLock, io: IO<R, E, A>): I
|
|
107
107
|
/**
|
108
108
|
* @tsplus getter fncts.io.TReentrantLock readLock
|
109
109
|
*/
|
110
|
-
export function readLock(self: TReentrantLock, __tsplusTrace?: string): IO<
|
110
|
+
export function readLock(self: TReentrantLock, __tsplusTrace?: string): IO<Scope, never, number> {
|
111
111
|
return self.acquireRead.commit.acquireRelease(() => self.releaseRead.commit);
|
112
112
|
}
|
113
113
|
|
114
114
|
/**
|
115
115
|
* @tsplus getter fncts.io.TReentrantLock writeLock
|
116
116
|
*/
|
117
|
-
export function writeLock(self: TReentrantLock, __tsplusTrace?: string): IO<
|
117
|
+
export function writeLock(self: TReentrantLock, __tsplusTrace?: string): IO<Scope, never, number> {
|
118
118
|
return self.acquireWrite.commit.acquireRelease(() => self.releaseWrite.commit);
|
119
119
|
}
|
120
120
|
|
package/_src/TRef/api.ts
CHANGED
@@ -19,7 +19,7 @@ function getOrMakeEntry<A>(self: Atomic<A>, journal: Journal): Entry {
|
|
19
19
|
*
|
20
20
|
* @tsplus getter fncts.io.TRef get
|
21
21
|
*/
|
22
|
-
export function get<EA, EB, A, B>(self: TRef<EA, EB, A, B>): STM<
|
22
|
+
export function get<EA, EB, A, B>(self: TRef<EA, EB, A, B>): STM<never, EB, B> {
|
23
23
|
concrete(self);
|
24
24
|
switch (self._tag) {
|
25
25
|
case "Atomic": {
|
@@ -47,7 +47,7 @@ export function get<EA, EB, A, B>(self: TRef<EA, EB, A, B>): STM<unknown, EB, B>
|
|
47
47
|
*
|
48
48
|
* @tsplus fluent fncts.io.TRef modify
|
49
49
|
*/
|
50
|
-
export function modify_<E, A, B>(self: TRef<E, E, A, A>, f: (a: A) => readonly [B, A]): STM<
|
50
|
+
export function modify_<E, A, B>(self: TRef<E, E, A, A>, f: (a: A) => readonly [B, A]): STM<never, E, B> {
|
51
51
|
concrete(self);
|
52
52
|
switch (self._tag) {
|
53
53
|
case "Atomic": {
|
@@ -99,7 +99,7 @@ export function modify_<E, A, B>(self: TRef<E, E, A, A>, f: (a: A) => readonly [
|
|
99
99
|
*
|
100
100
|
* @tsplus fluent fncts.io.TRef set
|
101
101
|
*/
|
102
|
-
export function set_<EA, EB, A, B>(self: TRef<EA, EB, A, B>, a: A): STM<
|
102
|
+
export function set_<EA, EB, A, B>(self: TRef<EA, EB, A, B>, a: A): STM<never, EA, void> {
|
103
103
|
concrete(self);
|
104
104
|
switch (self._tag) {
|
105
105
|
case "Atomic": {
|
@@ -153,7 +153,7 @@ export function modifyJust_<E, A, B>(
|
|
153
153
|
self: TRef<E, E, A, A>,
|
154
154
|
b: B,
|
155
155
|
f: (a: A) => Maybe<readonly [B, A]>,
|
156
|
-
): STM<
|
156
|
+
): STM<never, E, B> {
|
157
157
|
return self.modify((a) => f(a).getOrElse([b, a]));
|
158
158
|
}
|
159
159
|
|
@@ -162,7 +162,7 @@ export function modifyJust_<E, A, B>(
|
|
162
162
|
*
|
163
163
|
* @tsplus fluent fncts.io.TRef getAndSet
|
164
164
|
*/
|
165
|
-
export function getAndSet_<E, A>(self: TRef<E, E, A, A>, a: A): STM<
|
165
|
+
export function getAndSet_<E, A>(self: TRef<E, E, A, A>, a: A): STM<never, E, A> {
|
166
166
|
concrete(self);
|
167
167
|
switch (self._tag) {
|
168
168
|
case "Atomic": {
|
@@ -184,7 +184,7 @@ export function getAndSet_<E, A>(self: TRef<E, E, A, A>, a: A): STM<unknown, E,
|
|
184
184
|
*
|
185
185
|
* @tsplus fluent fncts.io.TRef getAndUpdate
|
186
186
|
*/
|
187
|
-
export function getAndUpdate_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<
|
187
|
+
export function getAndUpdate_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<never, E, A> {
|
188
188
|
concrete(self);
|
189
189
|
switch (self._tag) {
|
190
190
|
case "Atomic": {
|
@@ -207,7 +207,7 @@ export function getAndUpdate_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM
|
|
207
207
|
*
|
208
208
|
* @tsplus fluent fncts.io.TRef getAndUpdateJust
|
209
209
|
*/
|
210
|
-
export function getAndUpdateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<
|
210
|
+
export function getAndUpdateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<never, E, A> {
|
211
211
|
concrete(self);
|
212
212
|
switch (self._tag) {
|
213
213
|
case "Atomic": {
|
@@ -237,7 +237,7 @@ export function getAndUpdateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => May
|
|
237
237
|
*
|
238
238
|
* @tsplus fluent fncts.io.TRef update
|
239
239
|
*/
|
240
|
-
export function update_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<
|
240
|
+
export function update_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<never, E, void> {
|
241
241
|
concrete(self);
|
242
242
|
switch (self._tag) {
|
243
243
|
case "Atomic": {
|
@@ -257,7 +257,7 @@ export function update_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<unkno
|
|
257
257
|
*
|
258
258
|
* @tsplus fluent fncts.io.TRef updateJust
|
259
259
|
*/
|
260
|
-
export function updateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<
|
260
|
+
export function updateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<never, E, void> {
|
261
261
|
return self.update((a) => f(a).getOrElse(a));
|
262
262
|
}
|
263
263
|
|
@@ -266,7 +266,7 @@ export function updateJust_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>)
|
|
266
266
|
*
|
267
267
|
* @tsplus fluent fncts.io.TRef updateAndGet
|
268
268
|
*/
|
269
|
-
export function updateAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<
|
269
|
+
export function updateAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM<never, E, A> {
|
270
270
|
concrete(self);
|
271
271
|
switch (self._tag) {
|
272
272
|
case "Atomic": {
|
@@ -292,7 +292,7 @@ export function updateAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => A): STM
|
|
292
292
|
*
|
293
293
|
* @tsplus fluent fncts.io.TRef updateJustAndGet
|
294
294
|
*/
|
295
|
-
export function updateJustAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<
|
295
|
+
export function updateJustAndGet_<E, A>(self: TRef<E, E, A, A>, f: (a: A) => Maybe<A>): STM<never, E, A> {
|
296
296
|
return self.updateAndGet((a) => f(a).getOrElse(a));
|
297
297
|
}
|
298
298
|
|
@@ -13,7 +13,7 @@ import { Atomic } from "./definition.js";
|
|
13
13
|
*
|
14
14
|
* @tsplus static fncts.io.TRefOps makeNow
|
15
15
|
*/
|
16
|
-
export function makeNow<A>(a: A): STM<
|
16
|
+
export function makeNow<A>(a: A): STM<never, never, UTRef<A>> {
|
17
17
|
return new Effect((journal) => {
|
18
18
|
const value = a;
|
19
19
|
const versioned = new Versioned(value);
|
@@ -29,7 +29,7 @@ export function makeNow<A>(a: A): STM<unknown, never, UTRef<A>> {
|
|
29
29
|
*
|
30
30
|
* @tsplus static fncts.io.TRefOps make
|
31
31
|
*/
|
32
|
-
export function make<A>(a: Lazy<A>): STM<
|
32
|
+
export function make<A>(a: Lazy<A>): STM<never, never, UTRef<A>> {
|
33
33
|
return new Effect((journal) => {
|
34
34
|
const value = a();
|
35
35
|
const versioned = new Versioned(value);
|
package/_src/TSemaphore/api.ts
CHANGED
@@ -52,7 +52,7 @@ export function releaseN_(self: TSemaphore, n: number): USTM<void> {
|
|
52
52
|
/**
|
53
53
|
* @tsplus getter fncts.io.TSemaphore withPermits
|
54
54
|
*/
|
55
|
-
export function
|
55
|
+
export function withPermits(self: TSemaphore) {
|
56
56
|
return (n: number) =>
|
57
57
|
<R, E, A>(io: IO<R, E, A>) =>
|
58
58
|
IO.uninterruptibleMask(({ restore }) =>
|
@@ -63,6 +63,6 @@ export function withPermitsSelf(self: TSemaphore) {
|
|
63
63
|
/**
|
64
64
|
* @tsplus getter fncts.io.TSemaphore withPermit
|
65
65
|
*/
|
66
|
-
export function
|
66
|
+
export function withPermit(self: TSemaphore) {
|
67
67
|
return <R, E, A>(io: IO<R, E, A>) => self.withPermits(1)(io);
|
68
68
|
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
/**
|
2
|
+
* @tsplus fluent fncts.Conc dropUntilIO
|
3
|
+
*/
|
4
|
+
export function dropUntilIO<A, R, E>(
|
5
|
+
self: Conc<A>,
|
6
|
+
p: (a: A) => IO<R, E, boolean>,
|
7
|
+
__tsplusTrace?: string,
|
8
|
+
): IO<R, E, Conc<A>> {
|
9
|
+
return IO.defer(() => {
|
10
|
+
const builder = new ConcBuilder<A>();
|
11
|
+
let dropping: IO<R, E, boolean> = IO.succeedNow(false);
|
12
|
+
for (const elem of self) {
|
13
|
+
dropping = dropping.flatMap((b) => {
|
14
|
+
if (b) {
|
15
|
+
builder.append(elem);
|
16
|
+
return IO.succeedNow(true);
|
17
|
+
} else {
|
18
|
+
return p(elem);
|
19
|
+
}
|
20
|
+
});
|
21
|
+
}
|
22
|
+
return dropping.as(builder.result());
|
23
|
+
});
|
24
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/**
|
2
|
+
* @tsplus fluent fncts.Conc dropWhileIO
|
3
|
+
*/
|
4
|
+
export function dropWhileIO<A, R, E>(
|
5
|
+
self: Conc<A>,
|
6
|
+
p: (a: A) => IO<R, E, boolean>,
|
7
|
+
__tsplusTrace?: string,
|
8
|
+
): IO<R, E, Conc<A>> {
|
9
|
+
return IO.defer(() => {
|
10
|
+
const builder = new ConcBuilder<A>();
|
11
|
+
let dropping: IO<R, E, boolean> = IO.succeedNow(true);
|
12
|
+
for (const elem of self) {
|
13
|
+
dropping = dropping.flatMap((d) =>
|
14
|
+
(d ? p(elem) : IO.succeedNow(false)).map((b) => {
|
15
|
+
if (b) {
|
16
|
+
return true;
|
17
|
+
} else {
|
18
|
+
builder.append(elem);
|
19
|
+
return false;
|
20
|
+
}
|
21
|
+
}),
|
22
|
+
);
|
23
|
+
}
|
24
|
+
return dropping.as(builder.result());
|
25
|
+
});
|
26
|
+
}
|
@@ -1,15 +1,59 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
1
|
+
export interface Scheduler {
|
2
|
+
scheduleTask(task: () => void): void;
|
3
|
+
}
|
4
|
+
|
5
|
+
export class AsyncScheduler implements Scheduler {
|
6
|
+
private running = false;
|
7
|
+
private tasks = new ListBuffer<() => void>();
|
8
|
+
|
9
|
+
private starveInternal(depth: number) {
|
10
|
+
const toRun = this.tasks;
|
11
|
+
this.tasks = new ListBuffer();
|
12
|
+
for (const task of toRun) {
|
13
|
+
task();
|
14
|
+
}
|
15
|
+
if (this.tasks.isEmpty) {
|
16
|
+
this.running = false;
|
17
|
+
} else {
|
18
|
+
this.starve(depth);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
starve(depth = 0) {
|
23
|
+
if (depth >= 2048) {
|
24
|
+
setTimeout(() => this.starveInternal(0), 0);
|
25
|
+
} else {
|
26
|
+
queueMicrotask(() => this.starveInternal(depth + 1));
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
scheduleTask(task: () => void) {
|
31
|
+
this.tasks.append(task);
|
32
|
+
if (!this.running) {
|
33
|
+
this.running = true;
|
34
|
+
this.starve();
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
export const defaultScheduler: Scheduler = new AsyncScheduler();
|
40
|
+
|
41
|
+
export class StagedScheduler implements Scheduler {
|
42
|
+
private tasks = new ListBuffer<() => void>();
|
43
|
+
private deferred = false;
|
44
|
+
|
45
|
+
scheduleTask(task: () => void) {
|
46
|
+
if (this.deferred) {
|
47
|
+
defaultScheduler.scheduleTask(task);
|
48
|
+
} else {
|
49
|
+
this.tasks.append(task);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
flush() {
|
54
|
+
while (!this.tasks.isEmpty) {
|
55
|
+
this.tasks.unprepend()();
|
56
|
+
}
|
57
|
+
this.deferred = true;
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { Conc } from "@fncts/base/collection/immutable/Conc";
|
2
|
+
import { IO } from "@fncts/io/IO/definition";
|
3
|
+
/**
|
4
|
+
* @tsplus fluent fncts.Conc dropUntilIO
|
5
|
+
* @tsplus location "@fncts/io/collection/immutable/Conc/dropUntilIO"
|
6
|
+
*/
|
7
|
+
export declare function dropUntilIO<A, R, E>(self: Conc<A>, p: (a: A) => IO<R, E, boolean>, __tsplusTrace?: string): IO<R, E, Conc<A>>;
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { Conc } from "@fncts/base/collection/immutable/Conc";
|
2
|
+
import { IO } from "@fncts/io/IO/definition";
|
3
|
+
/**
|
4
|
+
* @tsplus fluent fncts.Conc dropWhileIO
|
5
|
+
* @tsplus location "@fncts/io/collection/immutable/Conc/dropWhileIO"
|
6
|
+
*/
|
7
|
+
export declare function dropWhileIO<A, R, E>(self: Conc<A>, p: (a: A) => IO<R, E, boolean>, __tsplusTrace?: string): IO<R, E, Conc<A>>;
|
package/internal/Scheduler.d.ts
CHANGED
@@ -1 +1,18 @@
|
|
1
|
-
|
1
|
+
import { ListBuffer } from "@fncts/base/collection/mutable/ListBuffer";
|
2
|
+
export interface Scheduler {
|
3
|
+
scheduleTask(task: () => void): void;
|
4
|
+
}
|
5
|
+
export declare class AsyncScheduler implements Scheduler {
|
6
|
+
private running;
|
7
|
+
private tasks;
|
8
|
+
private starveInternal;
|
9
|
+
starve(depth?: number): void;
|
10
|
+
scheduleTask(task: () => void): void;
|
11
|
+
}
|
12
|
+
export declare const defaultScheduler: Scheduler;
|
13
|
+
export declare class StagedScheduler implements Scheduler {
|
14
|
+
private tasks;
|
15
|
+
private deferred;
|
16
|
+
scheduleTask(task: () => void): void;
|
17
|
+
flush(): void;
|
18
|
+
}
|
package/package.json
CHANGED