@fncts/io 0.0.50 → 0.0.51
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/internal/SingleProducerAsyncInput.d.ts +1 -1
- package/CountdownLatch.d.ts +5 -5
- package/Fiber/FiberRuntime.d.ts +1 -1
- package/Hub/api.d.ts +7 -7
- package/IO/api.d.ts +1 -1
- package/Push/Operator/IOLoopOperator.d.ts +1 -1
- package/Push/Producer/SyncProducer.d.ts +1 -1
- package/Push/api.d.ts +8 -8
- package/Queue/api/dimapIO.d.ts +12 -12
- package/STM/api.d.ts +1 -1
- package/Semaphore/definition.d.ts +1 -1
- package/Subject/Atomic.d.ts +2 -2
- package/Subject/RefSubject/Atomic.d.ts +8 -6
- package/Subject/RefSubject/Derived.d.ts +2 -2
- package/Subject/RefSubject/RefSubject.d.ts +10 -0
- package/Subject/RefSubject/constructors.d.ts +15 -0
- package/Subject/RefSubject.d.ts +4 -0
- package/Subject.d.ts +1 -0
- package/Supervisor/definition.d.ts +1 -1
- package/_cjs/Cached/api.cjs +8 -2
- package/_cjs/Cached/api.cjs.map +1 -1
- package/_cjs/Cached/definition.cjs +2 -6
- package/_cjs/Cached/definition.cjs.map +1 -1
- package/_cjs/CancellerState.cjs +4 -7
- package/_cjs/CancellerState.cjs.map +1 -1
- package/_cjs/Channel/UpstreamPullRequest/definition.cjs +4 -2
- package/_cjs/Channel/UpstreamPullRequest/definition.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +2 -3
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Channel/definition.cjs +22 -16
- package/_cjs/Channel/definition.cjs.map +1 -1
- package/_cjs/Channel/internal/ChannelExecutor.cjs +35 -11
- package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
- package/_cjs/Channel/internal/ChannelState.cjs +15 -8
- package/_cjs/Channel/internal/ChannelState.cjs.map +1 -1
- package/_cjs/Channel/internal/MergeDecision.cjs +6 -8
- package/_cjs/Channel/internal/MergeDecision.cjs.map +1 -1
- package/_cjs/Channel/internal/MergeState.cjs +7 -3
- package/_cjs/Channel/internal/MergeState.cjs.map +1 -1
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +49 -42
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
- package/_cjs/Clock/live.cjs +1 -4
- package/_cjs/Clock/live.cjs.map +1 -1
- package/_cjs/CountdownLatch.cjs +22 -12
- package/_cjs/CountdownLatch.cjs.map +1 -1
- package/_cjs/Differ/api.cjs +3 -12
- package/_cjs/Differ/api.cjs.map +1 -1
- package/_cjs/Differ/definition.cjs +1 -5
- package/_cjs/Differ/definition.cjs.map +1 -1
- package/_cjs/Fiber/FiberMessage.cjs +6 -3
- package/_cjs/Fiber/FiberMessage.cjs.map +1 -1
- package/_cjs/Fiber/FiberRuntime.cjs +66 -61
- package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
- package/_cjs/Fiber/definition.cjs +10 -6
- package/_cjs/Fiber/definition.cjs.map +1 -1
- package/_cjs/FiberDescriptor.cjs +3 -0
- package/_cjs/FiberDescriptor.cjs.map +1 -1
- package/_cjs/FiberRef/definition.cjs +9 -6
- package/_cjs/FiberRef/definition.cjs.map +1 -1
- package/_cjs/FiberRefs/Patch.cjs +13 -13
- package/_cjs/FiberRefs/Patch.cjs.map +1 -1
- package/_cjs/FiberScope/definition.cjs +2 -0
- package/_cjs/FiberScope/definition.cjs.map +1 -1
- package/_cjs/FiberSet.cjs +4 -3
- package/_cjs/FiberSet.cjs.map +1 -1
- package/_cjs/FiberStatus/definition.cjs +12 -9
- package/_cjs/FiberStatus/definition.cjs.map +1 -1
- package/_cjs/Future/State.cjs +8 -7
- package/_cjs/Future/State.cjs.map +1 -1
- package/_cjs/Future/definition.cjs +3 -3
- package/_cjs/Future/definition.cjs.map +1 -1
- package/_cjs/Hub/api.cjs +61 -44
- package/_cjs/Hub/api.cjs.map +1 -1
- package/_cjs/Hub/definition.cjs +4 -8
- package/_cjs/Hub/definition.cjs.map +1 -1
- package/_cjs/Hub/internal.cjs +130 -110
- package/_cjs/Hub/internal.cjs.map +1 -1
- package/_cjs/IO/api/transplant.cjs +8 -7
- package/_cjs/IO/api/transplant.cjs.map +1 -1
- package/_cjs/IO/api.cjs +9 -4
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs +8 -12
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO/runtime.cjs +64 -61
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/InterruptStatus/definition.cjs +1 -0
- package/_cjs/InterruptStatus/definition.cjs.map +1 -1
- package/_cjs/Layer/MemoMap.cjs +25 -24
- package/_cjs/Layer/MemoMap.cjs.map +1 -1
- package/_cjs/Layer/definition.cjs +30 -13
- package/_cjs/Layer/definition.cjs.map +1 -1
- package/_cjs/LogLevel.cjs +3 -0
- package/_cjs/LogLevel.cjs.map +1 -1
- package/_cjs/LogSpan.cjs +2 -0
- package/_cjs/LogSpan.cjs.map +1 -1
- package/_cjs/Logger/definition.cjs +1 -0
- package/_cjs/Logger/definition.cjs.map +1 -1
- package/_cjs/MVar/definition.cjs +3 -4
- package/_cjs/MVar/definition.cjs.map +1 -1
- package/_cjs/Push/FlattenStrategy.cjs +1 -0
- package/_cjs/Push/FlattenStrategy.cjs.map +1 -1
- package/_cjs/Push/IndexedBuffer.cjs +5 -1
- package/_cjs/Push/IndexedBuffer.cjs.map +1 -1
- package/_cjs/Push/MergeStrategy.cjs +2 -0
- package/_cjs/Push/MergeStrategy.cjs.map +1 -1
- package/_cjs/Push/Producer/IOProducer.cjs +8 -3
- package/_cjs/Push/Producer/IOProducer.cjs.map +1 -1
- package/_cjs/Push/Producer/SyncProducer.cjs +8 -4
- package/_cjs/Push/Producer/SyncProducer.cjs.map +1 -1
- package/_cjs/Push/Sink.cjs +24 -5
- package/_cjs/Push/Sink.cjs.map +1 -1
- package/_cjs/Push/api.cjs +67 -41
- package/_cjs/Push/api.cjs.map +1 -1
- package/_cjs/Push/definition.cjs +10 -11
- package/_cjs/Push/definition.cjs.map +1 -1
- package/_cjs/Queue/api/dimapIO.cjs +74 -32
- package/_cjs/Queue/api/dimapIO.cjs.map +1 -1
- package/_cjs/Queue/api/filterInputIO.cjs +51 -25
- package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
- package/_cjs/Queue/api/filterOutputIO.cjs +60 -30
- package/_cjs/Queue/api/filterOutputIO.cjs.map +1 -1
- package/_cjs/Queue/api/zipWithIO.cjs +27 -10
- package/_cjs/Queue/api/zipWithIO.cjs.map +1 -1
- package/_cjs/Queue/definition.cjs +3 -7
- package/_cjs/Queue/definition.cjs.map +1 -1
- package/_cjs/Queue/internal.cjs +73 -62
- package/_cjs/Queue/internal.cjs.map +1 -1
- package/_cjs/Queue/strategy.cjs +1 -3
- package/_cjs/Queue/strategy.cjs.map +1 -1
- package/_cjs/Random/live.cjs +4 -3
- package/_cjs/Random/live.cjs.map +1 -1
- package/_cjs/Ref/Atomic.cjs +2 -3
- package/_cjs/Ref/Atomic.cjs.map +1 -1
- package/_cjs/Ref/Derived.cjs +2 -3
- package/_cjs/Ref/Derived.cjs.map +1 -1
- package/_cjs/Ref/DerivedAll.cjs +2 -3
- package/_cjs/Ref/DerivedAll.cjs.map +1 -1
- package/_cjs/Ref/Synchronized/definition.cjs +5 -4
- package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
- package/_cjs/Ref/definition.cjs +2 -6
- package/_cjs/Ref/definition.cjs.map +1 -1
- package/_cjs/Reloadable/definition.cjs +2 -0
- package/_cjs/Reloadable/definition.cjs.map +1 -1
- package/_cjs/STM/definition.cjs +30 -25
- package/_cjs/STM/definition.cjs.map +1 -1
- package/_cjs/STM/driver.cjs +5 -0
- package/_cjs/STM/driver.cjs.map +1 -1
- package/_cjs/STM/internal/Entry.cjs +9 -6
- package/_cjs/STM/internal/Entry.cjs.map +1 -1
- package/_cjs/STM/internal/TryCommit.cjs +6 -7
- package/_cjs/STM/internal/TryCommit.cjs.map +1 -1
- package/_cjs/STM/internal/Versioned.cjs +2 -3
- package/_cjs/STM/internal/Versioned.cjs.map +1 -1
- package/_cjs/Schedule/Decision.cjs +3 -4
- package/_cjs/Schedule/Decision.cjs.map +1 -1
- package/_cjs/Schedule/Driver.cjs +4 -0
- package/_cjs/Schedule/Driver.cjs.map +1 -1
- package/_cjs/Schedule/api.cjs +2 -5
- package/_cjs/Schedule/api.cjs.map +1 -1
- package/_cjs/Schedule/definition.cjs +3 -1
- package/_cjs/Schedule/definition.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/definition.cjs +8 -2
- package/_cjs/Scope/ReleaseMap/definition.cjs.map +1 -1
- package/_cjs/Scope/api.cjs +1 -4
- package/_cjs/Scope/api.cjs.map +1 -1
- package/_cjs/Scope/definition.cjs +3 -7
- package/_cjs/Scope/definition.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +8 -3
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/ScopedRef/definition.cjs +1 -5
- package/_cjs/ScopedRef/definition.cjs.map +1 -1
- package/_cjs/Semaphore/Reservation.cjs +2 -0
- package/_cjs/Semaphore/Reservation.cjs.map +1 -1
- package/_cjs/Semaphore/definition.cjs +42 -38
- package/_cjs/Semaphore/definition.cjs.map +1 -1
- package/_cjs/Sink/definition.cjs +1 -0
- package/_cjs/Sink/definition.cjs.map +1 -1
- package/_cjs/State/api.cjs +1 -4
- package/_cjs/State/api.cjs.map +1 -1
- package/_cjs/State/definition.cjs +2 -6
- package/_cjs/State/definition.cjs.map +1 -1
- package/_cjs/State/internal.cjs +1 -5
- package/_cjs/State/internal.cjs.map +1 -1
- package/_cjs/Stream/api/zipAllWith.cjs +7 -11
- package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
- package/_cjs/Stream/api/zipWithChunks.cjs +5 -5
- package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +8 -7
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/Stream/definition.cjs +3 -4
- package/_cjs/Stream/definition.cjs.map +1 -1
- package/_cjs/Stream/internal/DebounceState.cjs +5 -5
- package/_cjs/Stream/internal/DebounceState.cjs.map +1 -1
- package/_cjs/Stream/internal/Handoff.cjs +18 -17
- package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
- package/_cjs/Stream/internal/SinkEndReason.cjs +5 -12
- package/_cjs/Stream/internal/SinkEndReason.cjs.map +1 -1
- package/_cjs/Stream/internal/Take.cjs +3 -0
- package/_cjs/Stream/internal/Take.cjs.map +1 -1
- package/_cjs/Subject/Atomic.cjs +5 -10
- package/_cjs/Subject/Atomic.cjs.map +1 -1
- package/_cjs/Subject/DeferredRef.cjs +12 -9
- package/_cjs/Subject/DeferredRef.cjs.map +1 -1
- package/_cjs/Subject/Hold.cjs +2 -5
- package/_cjs/Subject/Hold.cjs.map +1 -1
- package/_cjs/Subject/RefSubject/Atomic.cjs +91 -50
- package/_cjs/Subject/RefSubject/Atomic.cjs.map +1 -1
- package/_cjs/Subject/RefSubject/Derived.cjs +19 -14
- package/_cjs/Subject/RefSubject/Derived.cjs.map +1 -1
- package/_cjs/Subject/RefSubject/RefSubject.cjs +6 -7
- package/_cjs/Subject/RefSubject/RefSubject.cjs.map +1 -1
- package/_cjs/Subject/RefSubject/constructors.cjs +30 -0
- package/_cjs/Subject/RefSubject/constructors.cjs.map +1 -0
- package/_cjs/Subject/RefSubject.cjs +2 -0
- package/_cjs/Subject/RefSubject.cjs.map +1 -0
- package/_cjs/Subject/definition.cjs +3 -8
- package/_cjs/Subject/definition.cjs.map +1 -1
- package/_cjs/Subject.cjs +11 -0
- package/_cjs/Subject.cjs.map +1 -1
- package/_cjs/SubscriptionRef.cjs +4 -4
- package/_cjs/SubscriptionRef.cjs.map +1 -1
- package/_cjs/Supervisor/constructors.cjs +3 -11
- package/_cjs/Supervisor/constructors.cjs.map +1 -1
- package/_cjs/Supervisor/definition.cjs +10 -4
- package/_cjs/Supervisor/definition.cjs.map +1 -1
- package/_cjs/SupervisorPatch.cjs +9 -12
- package/_cjs/SupervisorPatch.cjs.map +1 -1
- package/_cjs/TExit/definition.cjs +19 -18
- package/_cjs/TExit/definition.cjs.map +1 -1
- package/_cjs/TReentrantLock/definition.cjs +8 -3
- package/_cjs/TReentrantLock/definition.cjs.map +1 -1
- package/_cjs/TRef/definition.cjs +6 -6
- package/_cjs/TRef/definition.cjs.map +1 -1
- package/_cjs/internal/BackgroundScheduler.cjs +16 -16
- package/_cjs/internal/BackgroundScheduler.cjs.map +1 -1
- package/_cjs/internal/HashedPair.cjs +2 -0
- package/_cjs/internal/HashedPair.cjs.map +1 -1
- package/_cjs/internal/Hub.cjs +39 -15
- package/_cjs/internal/Hub.cjs.map +1 -1
- package/_cjs/internal/IsFatal.cjs +7 -11
- package/_cjs/internal/IsFatal.cjs.map +1 -1
- package/_cjs/internal/MutableQueue.cjs +14 -11
- package/_cjs/internal/MutableQueue.cjs.map +1 -1
- package/_cjs/internal/Scheduler.cjs +4 -8
- package/_cjs/internal/Scheduler.cjs.map +1 -1
- package/_cjs/internal/StackTraceBuilder.cjs +2 -4
- package/_cjs/internal/StackTraceBuilder.cjs.map +1 -1
- package/_mjs/Cached/api.mjs +8 -2
- package/_mjs/Cached/api.mjs.map +1 -1
- package/_mjs/Cached/definition.mjs +1 -5
- package/_mjs/Cached/definition.mjs.map +1 -1
- package/_mjs/CancellerState.mjs +4 -7
- package/_mjs/CancellerState.mjs.map +1 -1
- package/_mjs/Channel/UpstreamPullRequest/definition.mjs +4 -2
- package/_mjs/Channel/UpstreamPullRequest/definition.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +2 -3
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Channel/definition.mjs +21 -15
- package/_mjs/Channel/definition.mjs.map +1 -1
- package/_mjs/Channel/internal/ChannelExecutor.mjs +35 -11
- package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
- package/_mjs/Channel/internal/ChannelState.mjs +15 -8
- package/_mjs/Channel/internal/ChannelState.mjs.map +1 -1
- package/_mjs/Channel/internal/MergeDecision.mjs +5 -7
- package/_mjs/Channel/internal/MergeDecision.mjs.map +1 -1
- package/_mjs/Channel/internal/MergeState.mjs +7 -3
- package/_mjs/Channel/internal/MergeState.mjs.map +1 -1
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +49 -42
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
- package/_mjs/Clock/live.mjs +1 -4
- package/_mjs/Clock/live.mjs.map +1 -1
- package/_mjs/CountdownLatch.mjs +21 -11
- package/_mjs/CountdownLatch.mjs.map +1 -1
- package/_mjs/Differ/api.mjs +3 -12
- package/_mjs/Differ/api.mjs.map +1 -1
- package/_mjs/Differ/definition.mjs +1 -5
- package/_mjs/Differ/definition.mjs.map +1 -1
- package/_mjs/Fiber/FiberMessage.mjs +6 -3
- package/_mjs/Fiber/FiberMessage.mjs.map +1 -1
- package/_mjs/Fiber/FiberRuntime.mjs +66 -61
- package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
- package/_mjs/Fiber/definition.mjs +9 -5
- package/_mjs/Fiber/definition.mjs.map +1 -1
- package/_mjs/FiberDescriptor.mjs +3 -0
- package/_mjs/FiberDescriptor.mjs.map +1 -1
- package/_mjs/FiberRef/definition.mjs +9 -6
- package/_mjs/FiberRef/definition.mjs.map +1 -1
- package/_mjs/FiberRefs/Patch.mjs +13 -13
- package/_mjs/FiberRefs/Patch.mjs.map +1 -1
- package/_mjs/FiberScope/definition.mjs +2 -0
- package/_mjs/FiberScope/definition.mjs.map +1 -1
- package/_mjs/FiberSet.mjs +4 -3
- package/_mjs/FiberSet.mjs.map +1 -1
- package/_mjs/FiberStatus/definition.mjs +12 -9
- package/_mjs/FiberStatus/definition.mjs.map +1 -1
- package/_mjs/Future/State.mjs +8 -7
- package/_mjs/Future/State.mjs.map +1 -1
- package/_mjs/Future/definition.mjs +3 -3
- package/_mjs/Future/definition.mjs.map +1 -1
- package/_mjs/Hub/api.mjs +61 -44
- package/_mjs/Hub/api.mjs.map +1 -1
- package/_mjs/Hub/definition.mjs +3 -7
- package/_mjs/Hub/definition.mjs.map +1 -1
- package/_mjs/Hub/internal.mjs +130 -110
- package/_mjs/Hub/internal.mjs.map +1 -1
- package/_mjs/IO/api/transplant.mjs +8 -7
- package/_mjs/IO/api/transplant.mjs.map +1 -1
- package/_mjs/IO/api.mjs +9 -4
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs +7 -11
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO/runtime.mjs +64 -61
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/InterruptStatus/definition.mjs +1 -0
- package/_mjs/InterruptStatus/definition.mjs.map +1 -1
- package/_mjs/Layer/MemoMap.mjs +25 -24
- package/_mjs/Layer/MemoMap.mjs.map +1 -1
- package/_mjs/Layer/definition.mjs +29 -12
- package/_mjs/Layer/definition.mjs.map +1 -1
- package/_mjs/LogLevel.mjs +3 -0
- package/_mjs/LogLevel.mjs.map +1 -1
- package/_mjs/LogSpan.mjs +2 -0
- package/_mjs/LogSpan.mjs.map +1 -1
- package/_mjs/Logger/definition.mjs +1 -0
- package/_mjs/Logger/definition.mjs.map +1 -1
- package/_mjs/MVar/definition.mjs +2 -3
- package/_mjs/MVar/definition.mjs.map +1 -1
- package/_mjs/Push/FlattenStrategy.mjs +1 -0
- package/_mjs/Push/FlattenStrategy.mjs.map +1 -1
- package/_mjs/Push/IndexedBuffer.mjs +5 -1
- package/_mjs/Push/IndexedBuffer.mjs.map +1 -1
- package/_mjs/Push/MergeStrategy.mjs +2 -0
- package/_mjs/Push/MergeStrategy.mjs.map +1 -1
- package/_mjs/Push/Producer/IOProducer.mjs +8 -3
- package/_mjs/Push/Producer/IOProducer.mjs.map +1 -1
- package/_mjs/Push/Producer/SyncProducer.mjs +8 -4
- package/_mjs/Push/Producer/SyncProducer.mjs.map +1 -1
- package/_mjs/Push/Sink.mjs +24 -5
- package/_mjs/Push/Sink.mjs.map +1 -1
- package/_mjs/Push/api.mjs +44 -19
- package/_mjs/Push/api.mjs.map +1 -1
- package/_mjs/Push/definition.mjs +9 -10
- package/_mjs/Push/definition.mjs.map +1 -1
- package/_mjs/Queue/api/dimapIO.mjs +74 -32
- package/_mjs/Queue/api/dimapIO.mjs.map +1 -1
- package/_mjs/Queue/api/filterInputIO.mjs +51 -25
- package/_mjs/Queue/api/filterInputIO.mjs.map +1 -1
- package/_mjs/Queue/api/filterOutputIO.mjs +60 -30
- package/_mjs/Queue/api/filterOutputIO.mjs.map +1 -1
- package/_mjs/Queue/api/zipWithIO.mjs +27 -10
- package/_mjs/Queue/api/zipWithIO.mjs.map +1 -1
- package/_mjs/Queue/definition.mjs +3 -7
- package/_mjs/Queue/definition.mjs.map +1 -1
- package/_mjs/Queue/internal.mjs +73 -62
- package/_mjs/Queue/internal.mjs.map +1 -1
- package/_mjs/Queue/strategy.mjs +1 -3
- package/_mjs/Queue/strategy.mjs.map +1 -1
- package/_mjs/Random/live.mjs +4 -3
- package/_mjs/Random/live.mjs.map +1 -1
- package/_mjs/Ref/Atomic.mjs +2 -3
- package/_mjs/Ref/Atomic.mjs.map +1 -1
- package/_mjs/Ref/Derived.mjs +2 -3
- package/_mjs/Ref/Derived.mjs.map +1 -1
- package/_mjs/Ref/DerivedAll.mjs +2 -3
- package/_mjs/Ref/DerivedAll.mjs.map +1 -1
- package/_mjs/Ref/Synchronized/definition.mjs +4 -3
- package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
- package/_mjs/Ref/definition.mjs +1 -5
- package/_mjs/Ref/definition.mjs.map +1 -1
- package/_mjs/Reloadable/definition.mjs +2 -0
- package/_mjs/Reloadable/definition.mjs.map +1 -1
- package/_mjs/STM/definition.mjs +29 -24
- package/_mjs/STM/definition.mjs.map +1 -1
- package/_mjs/STM/driver.mjs +5 -0
- package/_mjs/STM/driver.mjs.map +1 -1
- package/_mjs/STM/internal/Entry.mjs +8 -5
- package/_mjs/STM/internal/Entry.mjs.map +1 -1
- package/_mjs/STM/internal/TryCommit.mjs +6 -7
- package/_mjs/STM/internal/TryCommit.mjs.map +1 -1
- package/_mjs/STM/internal/Versioned.mjs +2 -3
- package/_mjs/STM/internal/Versioned.mjs.map +1 -1
- package/_mjs/Schedule/Decision.mjs +3 -4
- package/_mjs/Schedule/Decision.mjs.map +1 -1
- package/_mjs/Schedule/Driver.mjs +4 -0
- package/_mjs/Schedule/Driver.mjs.map +1 -1
- package/_mjs/Schedule/api.mjs +2 -5
- package/_mjs/Schedule/api.mjs.map +1 -1
- package/_mjs/Schedule/definition.mjs +3 -1
- package/_mjs/Schedule/definition.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/definition.mjs +8 -2
- package/_mjs/Scope/ReleaseMap/definition.mjs.map +1 -1
- package/_mjs/Scope/api.mjs +1 -4
- package/_mjs/Scope/api.mjs.map +1 -1
- package/_mjs/Scope/definition.mjs +2 -6
- package/_mjs/Scope/definition.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +8 -3
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/ScopedRef/definition.mjs +1 -5
- package/_mjs/ScopedRef/definition.mjs.map +1 -1
- package/_mjs/Semaphore/Reservation.mjs +2 -0
- package/_mjs/Semaphore/Reservation.mjs.map +1 -1
- package/_mjs/Semaphore/definition.mjs +42 -38
- package/_mjs/Semaphore/definition.mjs.map +1 -1
- package/_mjs/Sink/definition.mjs +1 -0
- package/_mjs/Sink/definition.mjs.map +1 -1
- package/_mjs/State/api.mjs +1 -4
- package/_mjs/State/api.mjs.map +1 -1
- package/_mjs/State/definition.mjs +1 -5
- package/_mjs/State/definition.mjs.map +1 -1
- package/_mjs/State/internal.mjs +1 -5
- package/_mjs/State/internal.mjs.map +1 -1
- package/_mjs/Stream/api/zipAllWith.mjs +7 -11
- package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
- package/_mjs/Stream/api/zipWithChunks.mjs +5 -5
- package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +8 -7
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/Stream/definition.mjs +2 -3
- package/_mjs/Stream/definition.mjs.map +1 -1
- package/_mjs/Stream/internal/DebounceState.mjs +5 -5
- package/_mjs/Stream/internal/DebounceState.mjs.map +1 -1
- package/_mjs/Stream/internal/Handoff.mjs +17 -16
- package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
- package/_mjs/Stream/internal/SinkEndReason.mjs +4 -11
- package/_mjs/Stream/internal/SinkEndReason.mjs.map +1 -1
- package/_mjs/Stream/internal/Take.mjs +3 -0
- package/_mjs/Stream/internal/Take.mjs.map +1 -1
- package/_mjs/Subject/Atomic.mjs +5 -10
- package/_mjs/Subject/Atomic.mjs.map +1 -1
- package/_mjs/Subject/DeferredRef.mjs +12 -9
- package/_mjs/Subject/DeferredRef.mjs.map +1 -1
- package/_mjs/Subject/Hold.mjs +2 -5
- package/_mjs/Subject/Hold.mjs.map +1 -1
- package/_mjs/Subject/RefSubject/Atomic.mjs +90 -49
- package/_mjs/Subject/RefSubject/Atomic.mjs.map +1 -1
- package/_mjs/Subject/RefSubject/Derived.mjs +19 -14
- package/_mjs/Subject/RefSubject/Derived.mjs.map +1 -1
- package/_mjs/Subject/RefSubject/RefSubject.mjs +6 -7
- package/_mjs/Subject/RefSubject/RefSubject.mjs.map +1 -1
- package/_mjs/Subject/RefSubject/constructors.mjs +23 -0
- package/_mjs/Subject/RefSubject/constructors.mjs.map +1 -0
- package/_mjs/Subject/RefSubject.mjs +2 -0
- package/_mjs/Subject/RefSubject.mjs.map +1 -0
- package/_mjs/Subject/definition.mjs +3 -8
- package/_mjs/Subject/definition.mjs.map +1 -1
- package/_mjs/Subject.mjs +1 -0
- package/_mjs/Subject.mjs.map +1 -1
- package/_mjs/SubscriptionRef.mjs +4 -4
- package/_mjs/SubscriptionRef.mjs.map +1 -1
- package/_mjs/Supervisor/constructors.mjs +3 -11
- package/_mjs/Supervisor/constructors.mjs.map +1 -1
- package/_mjs/Supervisor/definition.mjs +10 -4
- package/_mjs/Supervisor/definition.mjs.map +1 -1
- package/_mjs/SupervisorPatch.mjs +9 -12
- package/_mjs/SupervisorPatch.mjs.map +1 -1
- package/_mjs/TExit/definition.mjs +19 -18
- package/_mjs/TExit/definition.mjs.map +1 -1
- package/_mjs/TReentrantLock/definition.mjs +8 -3
- package/_mjs/TReentrantLock/definition.mjs.map +1 -1
- package/_mjs/TRef/definition.mjs +6 -6
- package/_mjs/TRef/definition.mjs.map +1 -1
- package/_mjs/internal/BackgroundScheduler.mjs +16 -16
- package/_mjs/internal/BackgroundScheduler.mjs.map +1 -1
- package/_mjs/internal/HashedPair.mjs +2 -0
- package/_mjs/internal/HashedPair.mjs.map +1 -1
- package/_mjs/internal/Hub.mjs +39 -15
- package/_mjs/internal/Hub.mjs.map +1 -1
- package/_mjs/internal/IsFatal.mjs +7 -11
- package/_mjs/internal/IsFatal.mjs.map +1 -1
- package/_mjs/internal/MutableQueue.mjs +14 -11
- package/_mjs/internal/MutableQueue.mjs.map +1 -1
- package/_mjs/internal/Scheduler.mjs +4 -8
- package/_mjs/internal/Scheduler.mjs.map +1 -1
- package/_mjs/internal/StackTraceBuilder.mjs +2 -4
- package/_mjs/internal/StackTraceBuilder.mjs.map +1 -1
- package/_src/Cached/api.ts +8 -2
- package/_src/Channel/internal/SingleProducerAsyncInput.ts +6 -4
- package/_src/CountdownLatch.ts +24 -13
- package/_src/Fiber/FiberRuntime.ts +4 -2
- package/_src/FiberRef/definition.ts +1 -1
- package/_src/Hub/api.ts +85 -54
- package/_src/Hub/internal.ts +36 -20
- package/_src/IO/api.ts +0 -5
- package/_src/Push/Producer/SyncProducer.ts +1 -1
- package/_src/Push/api.ts +17 -17
- package/_src/Queue/api/dimapIO.ts +57 -19
- package/_src/Queue/api/filterInputIO.ts +36 -12
- package/_src/Queue/api/filterOutputIO.ts +42 -18
- package/_src/Queue/api/zipWithIO.ts +23 -11
- package/_src/Queue/internal.ts +9 -3
- package/_src/Schedule/api.ts +1 -1
- package/_src/ScopedRef/api.ts +6 -2
- package/_src/Semaphore/definition.ts +4 -2
- package/_src/Stream/api.ts +0 -2
- package/_src/Subject/RefSubject/Atomic.ts +47 -7
- package/_src/Subject/RefSubject/Derived.ts +7 -2
- package/_src/Subject/RefSubject/RefSubject.ts +10 -0
- package/_src/Subject/RefSubject/constructors.ts +27 -0
- package/_src/Subject/RefSubject.ts +7 -0
- package/_src/Subject.ts +1 -0
- package/_src/Supervisor/constructors.ts +0 -2
- package/_src/Supervisor/definition.ts +2 -1
- package/_src/TReentrantLock/api.ts +1 -1
- package/_src/global.ts +8 -0
- package/_src/internal/MutableQueue.ts +5 -3
- package/global.d.ts +8 -0
- package/internal/MutableQueue.d.ts +2 -2
- package/package.json +4 -4
package/_src/Push/api.ts
CHANGED
|
@@ -2,14 +2,25 @@ import type { MergeStrategy } from "./MergeStrategy.js";
|
|
|
2
2
|
import type { UnsafeSink } from "@fncts/io/Push/Sink";
|
|
3
3
|
|
|
4
4
|
import { IO, IOTag } from "@fncts/io/IO";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { Push, PushPrimitive, PushTag } from "@fncts/io/Push/definition";
|
|
6
|
+
import { FlattenStrategy, UnboundedStrategy } from "@fncts/io/Push/FlattenStrategy";
|
|
7
7
|
import { SyncProducer } from "@fncts/io/Push/Producer/SyncProducer";
|
|
8
8
|
import { Sink } from "@fncts/io/Push/Sink";
|
|
9
9
|
import { Scope } from "@fncts/io/Scope";
|
|
10
10
|
|
|
11
11
|
import { FromIO, FromScheduled, type IOProducer, Scheduled } from "./Producer/IOProducer.js";
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* @tsplus static fncts.io.PushOps bracketExit
|
|
15
|
+
*/
|
|
16
|
+
export function bracketExit<R, E, A, R1, E1, B, R2, E2, C>(
|
|
17
|
+
acquire: IO<R, E, A>,
|
|
18
|
+
use: (a: A) => Push<R1, E1, B>,
|
|
19
|
+
release: (a: A, exit: Exit<unknown, unknown>) => IO<R2, E2, C>,
|
|
20
|
+
): Push<R | R1 | R2, E | E1 | E2, B> {
|
|
21
|
+
return new BracketExit(acquire, use, release);
|
|
22
|
+
}
|
|
23
|
+
|
|
13
24
|
class BracketExit<R, E, A, R1, E1, B, R2, E2, C> extends Push<R | R1 | R2, E | E1 | E2, B> {
|
|
14
25
|
constructor(
|
|
15
26
|
readonly acquire: IO<R, E, A>,
|
|
@@ -29,14 +40,10 @@ class BracketExit<R, E, A, R1, E1, B, R2, E2, C> extends Push<R | R1 | R2, E | E
|
|
|
29
40
|
}
|
|
30
41
|
|
|
31
42
|
/**
|
|
32
|
-
* @tsplus static fncts.io.PushOps
|
|
43
|
+
* @tsplus static fncts.io.PushOps defer
|
|
33
44
|
*/
|
|
34
|
-
export function
|
|
35
|
-
|
|
36
|
-
use: (a: A) => Push<R1, E1, B>,
|
|
37
|
-
release: (a: A, exit: Exit<unknown, unknown>) => IO<R2, E2, C>,
|
|
38
|
-
): Push<R | R1 | R2, E | E1 | E2, B> {
|
|
39
|
-
return new BracketExit(acquire, use, release);
|
|
45
|
+
export function defer<R, E, A>(self: Lazy<Push<R, E, A>>): Push<R, E, A> {
|
|
46
|
+
return new Defer(self);
|
|
40
47
|
}
|
|
41
48
|
|
|
42
49
|
class CombineLatest<R, E, A> extends Push<R | Scope, E, ReadonlyArray<A>> {
|
|
@@ -88,11 +95,11 @@ class CombineLatest<R, E, A> extends Push<R | Scope, E, ReadonlyArray<A>> {
|
|
|
88
95
|
export function combineLatest<A extends ReadonlyArray<Push<any, any, any>>>(
|
|
89
96
|
streams: [...A],
|
|
90
97
|
): Push<Push.EnvironmentOf<A[number]> | Scope, Push.ErrorOf<A[number]>, { [K in keyof A]: Push.ValueOf<A[K]> }>;
|
|
91
|
-
|
|
92
98
|
export function combineLatest<R, E, A>(streams: Iterable<Push<R, E, A>>): Push<R | Scope, E, ReadonlyArray<A>>;
|
|
93
99
|
export function combineLatest<R, E, A>(streams: Iterable<Push<R, E, A>>): Push<R | Scope, E, ReadonlyArray<A>> {
|
|
94
100
|
return new CombineLatest(streams);
|
|
95
101
|
}
|
|
102
|
+
|
|
96
103
|
class ContramapEnvironment<R, E, A, R1> extends Push<R1, E, A> {
|
|
97
104
|
constructor(
|
|
98
105
|
readonly self: Push<R, E, A>,
|
|
@@ -122,13 +129,6 @@ class Defer<R, E, A> extends Push<R, E, A> {
|
|
|
122
129
|
}
|
|
123
130
|
}
|
|
124
131
|
|
|
125
|
-
/**
|
|
126
|
-
* @tsplus static fncts.io.PushOps defer
|
|
127
|
-
*/
|
|
128
|
-
export function defer<R, E, A>(self: Lazy<Push<R, E, A>>): Push<R, E, A> {
|
|
129
|
-
return new Defer(self);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
132
|
/**
|
|
133
133
|
* @tsplus static fncts.io.PushOps failCause
|
|
134
134
|
*/
|
|
@@ -27,11 +27,17 @@ class DimapIO<RA, RB, EA, EB, A, B, RC, EC, C, RD, ED, D> extends QueueInternal<
|
|
|
27
27
|
super();
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
awaitShutdown: UIO<void>
|
|
30
|
+
get awaitShutdown(): UIO<void> {
|
|
31
|
+
return this.queue.awaitShutdown;
|
|
32
|
+
}
|
|
31
33
|
|
|
32
|
-
capacity: number
|
|
34
|
+
get capacity(): number {
|
|
35
|
+
return this.queue.capacity;
|
|
36
|
+
}
|
|
33
37
|
|
|
34
|
-
isShutdown: UIO<boolean>
|
|
38
|
+
get isShutdown(): UIO<boolean> {
|
|
39
|
+
return this.queue.isShutdown;
|
|
40
|
+
}
|
|
35
41
|
|
|
36
42
|
get unsafeSize(): Maybe<number> {
|
|
37
43
|
return this.queue.unsafeSize;
|
|
@@ -49,13 +55,21 @@ class DimapIO<RA, RB, EA, EB, A, B, RC, EC, C, RD, ED, D> extends QueueInternal<
|
|
|
49
55
|
return IO.foreach(cs, this.f).flatMap((as) => this.queue.offerAll(as));
|
|
50
56
|
}
|
|
51
57
|
|
|
52
|
-
shutdown: UIO<void>
|
|
58
|
+
get shutdown(): UIO<void> {
|
|
59
|
+
return this.queue.shutdown;
|
|
60
|
+
}
|
|
53
61
|
|
|
54
|
-
size: UIO<number>
|
|
62
|
+
get size(): UIO<number> {
|
|
63
|
+
return this.queue.size;
|
|
64
|
+
}
|
|
55
65
|
|
|
56
|
-
take: IO<RD | RB, ED | EB, D>
|
|
66
|
+
get take(): IO<RD | RB, ED | EB, D> {
|
|
67
|
+
return this.queue.take.flatMap(this.g);
|
|
68
|
+
}
|
|
57
69
|
|
|
58
|
-
takeAll: IO<RD | RB, ED | EB, Conc<D>>
|
|
70
|
+
get takeAll(): IO<RD | RB, ED | EB, Conc<D>> {
|
|
71
|
+
return this.queue.takeAll.flatMap((bs) => IO.foreach(bs, this.g));
|
|
72
|
+
}
|
|
59
73
|
|
|
60
74
|
takeUpTo(n: number): IO<RD | RB, ED | EB, Conc<D>> {
|
|
61
75
|
return this.queue.takeUpTo(n).flatMap((bs) => IO.foreach(bs, this.g));
|
|
@@ -154,11 +168,17 @@ class ContramapIO<RA, RB, EA, EB, A, B, RC, EC, C> implements PEnqueueInternal<R
|
|
|
154
168
|
readonly f: (c: C) => IO<RC, EC, A>,
|
|
155
169
|
) {}
|
|
156
170
|
|
|
157
|
-
awaitShutdown: UIO<void>
|
|
171
|
+
get awaitShutdown(): UIO<void> {
|
|
172
|
+
return this.queue.awaitShutdown;
|
|
173
|
+
}
|
|
158
174
|
|
|
159
|
-
capacity: number
|
|
175
|
+
get capacity(): number {
|
|
176
|
+
return this.queue.capacity;
|
|
177
|
+
}
|
|
160
178
|
|
|
161
|
-
isShutdown: UIO<boolean>
|
|
179
|
+
get isShutdown(): UIO<boolean> {
|
|
180
|
+
return this.queue.isShutdown;
|
|
181
|
+
}
|
|
162
182
|
|
|
163
183
|
get unsafeSize(): Maybe<number> {
|
|
164
184
|
return this.queue.unsafeSize;
|
|
@@ -176,9 +196,13 @@ class ContramapIO<RA, RB, EA, EB, A, B, RC, EC, C> implements PEnqueueInternal<R
|
|
|
176
196
|
return IO.foreach(cs, this.f).flatMap((as) => this.queue.offerAll(as));
|
|
177
197
|
}
|
|
178
198
|
|
|
179
|
-
shutdown: UIO<void>
|
|
199
|
+
get shutdown(): UIO<void> {
|
|
200
|
+
return this.queue.shutdown;
|
|
201
|
+
}
|
|
180
202
|
|
|
181
|
-
size: UIO<number>
|
|
203
|
+
get size(): UIO<number> {
|
|
204
|
+
return this.queue.size;
|
|
205
|
+
}
|
|
182
206
|
}
|
|
183
207
|
|
|
184
208
|
/**
|
|
@@ -209,15 +233,25 @@ class MapIO<RA, RB, EA, EB, A, B, RC, EC, C> implements PDequeueInternal<RA, RB
|
|
|
209
233
|
readonly f: (b: B) => IO<RC, EC, C>,
|
|
210
234
|
) {}
|
|
211
235
|
|
|
212
|
-
awaitShutdown: UIO<void>
|
|
236
|
+
get awaitShutdown(): UIO<void> {
|
|
237
|
+
return this.queue.awaitShutdown;
|
|
238
|
+
}
|
|
213
239
|
|
|
214
|
-
capacity: number
|
|
240
|
+
get capacity(): number {
|
|
241
|
+
return this.queue.capacity;
|
|
242
|
+
}
|
|
215
243
|
|
|
216
|
-
isShutdown: UIO<boolean>
|
|
244
|
+
get isShutdown(): UIO<boolean> {
|
|
245
|
+
return this.queue.isShutdown;
|
|
246
|
+
}
|
|
217
247
|
|
|
218
|
-
shutdown: UIO<void>
|
|
248
|
+
get shutdown(): UIO<void> {
|
|
249
|
+
return this.queue.shutdown;
|
|
250
|
+
}
|
|
219
251
|
|
|
220
|
-
size: UIO<number>
|
|
252
|
+
get size(): UIO<number> {
|
|
253
|
+
return this.queue.size;
|
|
254
|
+
}
|
|
221
255
|
|
|
222
256
|
get unsafeSize(): Maybe<number> {
|
|
223
257
|
return this.queue.unsafeSize;
|
|
@@ -227,9 +261,13 @@ class MapIO<RA, RB, EA, EB, A, B, RC, EC, C> implements PDequeueInternal<RA, RB
|
|
|
227
261
|
throw new Error("Cannot unsafely offer to an effectful Queue");
|
|
228
262
|
}
|
|
229
263
|
|
|
230
|
-
take: IO<RB | RC, EB | EC, C>
|
|
264
|
+
get take(): IO<RB | RC, EB | EC, C> {
|
|
265
|
+
return this.queue.take.flatMap(this.f);
|
|
266
|
+
}
|
|
231
267
|
|
|
232
|
-
takeAll: IO<RB | RC, EB | EC, Conc<C>>
|
|
268
|
+
get takeAll(): IO<RB | RC, EB | EC, Conc<C>> {
|
|
269
|
+
return this.queue.takeAll.flatMap((bs) => IO.foreach(bs, this.f));
|
|
270
|
+
}
|
|
233
271
|
|
|
234
272
|
takeUpTo(n: number): IO<RB | RC, EB | EC, Conc<C>> {
|
|
235
273
|
return this.queue.takeUpTo(n).flatMap((bs) => IO.foreach(bs, this.f));
|
|
@@ -10,11 +10,17 @@ class FilterInputIO<RA, RB, EA, EB, B, A, A1 extends A, R2, E2> extends QueueInt
|
|
|
10
10
|
super();
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
awaitShutdown: UIO<void>
|
|
13
|
+
get awaitShutdown(): UIO<void> {
|
|
14
|
+
return this.queue.awaitShutdown;
|
|
15
|
+
}
|
|
14
16
|
|
|
15
|
-
capacity: number
|
|
17
|
+
get capacity(): number {
|
|
18
|
+
return this.queue.capacity;
|
|
19
|
+
}
|
|
16
20
|
|
|
17
|
-
isShutdown: UIO<boolean>
|
|
21
|
+
get isShutdown(): UIO<boolean> {
|
|
22
|
+
return this.queue.isShutdown;
|
|
23
|
+
}
|
|
18
24
|
|
|
19
25
|
get unsafeSize(): Maybe<number> {
|
|
20
26
|
return this.queue.unsafeSize;
|
|
@@ -39,13 +45,21 @@ class FilterInputIO<RA, RB, EA, EB, B, A, A1 extends A, R2, E2> extends QueueInt
|
|
|
39
45
|
});
|
|
40
46
|
}
|
|
41
47
|
|
|
42
|
-
shutdown: UIO<void>
|
|
48
|
+
get shutdown(): UIO<void> {
|
|
49
|
+
return this.queue.shutdown;
|
|
50
|
+
}
|
|
43
51
|
|
|
44
|
-
size: UIO<number>
|
|
52
|
+
get size(): UIO<number> {
|
|
53
|
+
return this.queue.size;
|
|
54
|
+
}
|
|
45
55
|
|
|
46
|
-
take: IO<RB, EB, B>
|
|
56
|
+
get take(): IO<RB, EB, B> {
|
|
57
|
+
return this.queue.take;
|
|
58
|
+
}
|
|
47
59
|
|
|
48
|
-
takeAll: IO<RB, EB, Conc<B>>
|
|
60
|
+
get takeAll(): IO<RB, EB, Conc<B>> {
|
|
61
|
+
return this.queue.takeAll;
|
|
62
|
+
}
|
|
49
63
|
|
|
50
64
|
takeUpTo(max: number): IO<RB, EB, Conc<B>> {
|
|
51
65
|
return this.queue.takeUpTo(max);
|
|
@@ -94,11 +108,17 @@ class FilterInputEnqueueIO<RA, RB, EA, EB, B, A, A1 extends A, R2, E2>
|
|
|
94
108
|
readonly f: (_: A1) => IO<R2, E2, boolean>,
|
|
95
109
|
) {}
|
|
96
110
|
|
|
97
|
-
awaitShutdown: UIO<void>
|
|
111
|
+
get awaitShutdown(): UIO<void> {
|
|
112
|
+
return this.queue.awaitShutdown;
|
|
113
|
+
}
|
|
98
114
|
|
|
99
|
-
capacity: number
|
|
115
|
+
get capacity(): number {
|
|
116
|
+
return this.queue.capacity;
|
|
117
|
+
}
|
|
100
118
|
|
|
101
|
-
isShutdown: UIO<boolean>
|
|
119
|
+
get isShutdown(): UIO<boolean> {
|
|
120
|
+
return this.queue.isShutdown;
|
|
121
|
+
}
|
|
102
122
|
|
|
103
123
|
get unsafeSize(): Maybe<number> {
|
|
104
124
|
return this.queue.unsafeSize;
|
|
@@ -123,9 +143,13 @@ class FilterInputEnqueueIO<RA, RB, EA, EB, B, A, A1 extends A, R2, E2>
|
|
|
123
143
|
});
|
|
124
144
|
}
|
|
125
145
|
|
|
126
|
-
shutdown: UIO<void>
|
|
146
|
+
get shutdown(): UIO<void> {
|
|
147
|
+
return this.queue.shutdown;
|
|
148
|
+
}
|
|
127
149
|
|
|
128
|
-
size: UIO<number>
|
|
150
|
+
get size(): UIO<number> {
|
|
151
|
+
return this.queue.size;
|
|
152
|
+
}
|
|
129
153
|
}
|
|
130
154
|
|
|
131
155
|
/**
|
|
@@ -10,11 +10,17 @@ class FilterOutputIO<RA, RB, EA, EB, A, B, RB1, EB1> extends QueueInternal<RA, R
|
|
|
10
10
|
super();
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
awaitShutdown: UIO<void>
|
|
13
|
+
get awaitShutdown(): UIO<void> {
|
|
14
|
+
return this.queue.awaitShutdown;
|
|
15
|
+
}
|
|
14
16
|
|
|
15
|
-
capacity: number
|
|
17
|
+
get capacity(): number {
|
|
18
|
+
return this.queue.capacity;
|
|
19
|
+
}
|
|
16
20
|
|
|
17
|
-
isShutdown: UIO<boolean>
|
|
21
|
+
get isShutdown(): UIO<boolean> {
|
|
22
|
+
return this.queue.isShutdown;
|
|
23
|
+
}
|
|
18
24
|
|
|
19
25
|
get unsafeSize(): Maybe<number> {
|
|
20
26
|
return this.queue.unsafeSize;
|
|
@@ -32,15 +38,21 @@ class FilterOutputIO<RA, RB, EA, EB, A, B, RB1, EB1> extends QueueInternal<RA, R
|
|
|
32
38
|
return this.queue.offerAll(as);
|
|
33
39
|
}
|
|
34
40
|
|
|
35
|
-
shutdown: UIO<void>
|
|
41
|
+
get shutdown(): UIO<void> {
|
|
42
|
+
return this.queue.shutdown;
|
|
43
|
+
}
|
|
36
44
|
|
|
37
|
-
size: UIO<number>
|
|
45
|
+
get size(): UIO<number> {
|
|
46
|
+
return this.queue.size;
|
|
47
|
+
}
|
|
38
48
|
|
|
39
|
-
take: IO<RB | RB1, EB1 | EB, B>
|
|
40
|
-
this.f(b).flatMap((p) => (p ? IO.succeedNow(b) : this.take))
|
|
41
|
-
|
|
49
|
+
get take(): IO<RB | RB1, EB1 | EB, B> {
|
|
50
|
+
return this.queue.take.flatMap((b) => this.f(b).flatMap((p) => (p ? IO.succeedNow(b) : this.take)));
|
|
51
|
+
}
|
|
42
52
|
|
|
43
|
-
takeAll: IO<RB | RB1, EB | EB1, Conc<B>>
|
|
53
|
+
get takeAll(): IO<RB | RB1, EB | EB1, Conc<B>> {
|
|
54
|
+
return this.queue.takeAll.flatMap((bs) => IO.filter(bs, this.f));
|
|
55
|
+
}
|
|
44
56
|
|
|
45
57
|
loop(max: number, acc: Conc<B>): IO<RB | RB1, EB | EB1, Conc<B>> {
|
|
46
58
|
return this.queue.takeUpTo(max).flatMap((bs) => {
|
|
@@ -102,15 +114,25 @@ class FilterOutputDequeueIO<RA, RB, EA, EB, A, B, RB1, EB1>
|
|
|
102
114
|
readonly f: (b: B) => IO<RB1, EB1, boolean>,
|
|
103
115
|
) {}
|
|
104
116
|
|
|
105
|
-
awaitShutdown: UIO<void>
|
|
117
|
+
get awaitShutdown(): UIO<void> {
|
|
118
|
+
return this.queue.awaitShutdown;
|
|
119
|
+
}
|
|
106
120
|
|
|
107
|
-
capacity: number
|
|
121
|
+
get capacity(): number {
|
|
122
|
+
return this.queue.capacity;
|
|
123
|
+
}
|
|
108
124
|
|
|
109
|
-
isShutdown: UIO<boolean>
|
|
125
|
+
get isShutdown(): UIO<boolean> {
|
|
126
|
+
return this.queue.isShutdown;
|
|
127
|
+
}
|
|
110
128
|
|
|
111
|
-
shutdown: UIO<void>
|
|
129
|
+
get shutdown(): UIO<void> {
|
|
130
|
+
return this.queue.shutdown;
|
|
131
|
+
}
|
|
112
132
|
|
|
113
|
-
size: UIO<number>
|
|
133
|
+
get size(): UIO<number> {
|
|
134
|
+
return this.queue.size;
|
|
135
|
+
}
|
|
114
136
|
|
|
115
137
|
get unsafeSize(): Maybe<number> {
|
|
116
138
|
return this.queue.unsafeSize;
|
|
@@ -120,11 +142,13 @@ class FilterOutputDequeueIO<RA, RB, EA, EB, A, B, RB1, EB1>
|
|
|
120
142
|
throw new Error("Cannot unsafely offer to an effectful Queue");
|
|
121
143
|
}
|
|
122
144
|
|
|
123
|
-
take: IO<RB | RB1, EB1 | EB, B>
|
|
124
|
-
this.f(b).flatMap((p) => (p ? IO.succeedNow(b) : this.take))
|
|
125
|
-
|
|
145
|
+
get take(): IO<RB | RB1, EB1 | EB, B> {
|
|
146
|
+
return this.queue.take.flatMap((b) => this.f(b).flatMap((p) => (p ? IO.succeedNow(b) : this.take)));
|
|
147
|
+
}
|
|
126
148
|
|
|
127
|
-
takeAll: IO<RB | RB1, EB | EB1, Conc<B>>
|
|
149
|
+
get takeAll(): IO<RB | RB1, EB | EB1, Conc<B>> {
|
|
150
|
+
return this.queue.takeAll.flatMap((bs) => IO.filter(bs, this.f));
|
|
151
|
+
}
|
|
128
152
|
|
|
129
153
|
loop(max: number, acc: Conc<B>): IO<RB | RB1, EB | EB1, Conc<B>> {
|
|
130
154
|
return this.queue.takeUpTo(max).flatMap((bs) => {
|
|
@@ -17,11 +17,17 @@ class ZipWithIO<RA, RB, EA, EB, A, B, RA1, RB1, EA1, EB1, A1 extends A, B1, R3,
|
|
|
17
17
|
super();
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
awaitShutdown: UIO<void>
|
|
20
|
+
get awaitShutdown(): UIO<void> {
|
|
21
|
+
return this.fa.awaitShutdown.flatMap(() => this.fb.awaitShutdown);
|
|
22
|
+
}
|
|
21
23
|
|
|
22
|
-
capacity: number
|
|
24
|
+
get capacity(): number {
|
|
25
|
+
return Math.min(this.fa.capacity, this.fb.capacity);
|
|
26
|
+
}
|
|
23
27
|
|
|
24
|
-
isShutdown: UIO<boolean>
|
|
28
|
+
get isShutdown(): UIO<boolean> {
|
|
29
|
+
return this.fa.isShutdown;
|
|
30
|
+
}
|
|
25
31
|
|
|
26
32
|
get unsafeSize(): Maybe<number> {
|
|
27
33
|
return this.fa.unsafeSize.zipWith(this.fb.unsafeSize, (a, b) => Math.max(a, b));
|
|
@@ -39,17 +45,23 @@ class ZipWithIO<RA, RB, EA, EB, A, B, RA1, RB1, EA1, EB1, A1 extends A, B1, R3,
|
|
|
39
45
|
return this.fa.offerAll(as).zipWithConcurrent(this.fb.offerAll(as), (x, y) => x && y);
|
|
40
46
|
}
|
|
41
47
|
|
|
42
|
-
shutdown: UIO<void>
|
|
48
|
+
get shutdown(): UIO<void> {
|
|
49
|
+
return this.fa.shutdown.zipWithConcurrent(this.fb.shutdown, () => undefined);
|
|
50
|
+
}
|
|
43
51
|
|
|
44
|
-
size: UIO<number>
|
|
52
|
+
get size(): UIO<number> {
|
|
53
|
+
return this.fa.size.zipWithConcurrent(this.fb.size, (x, y) => Math.max(x, y));
|
|
54
|
+
}
|
|
45
55
|
|
|
46
|
-
take: IO<RB | RB1 | R3, E3 | EB | EB1, C>
|
|
47
|
-
.zipConcurrent(this.fb.take)
|
|
48
|
-
|
|
56
|
+
get take(): IO<RB | RB1 | R3, E3 | EB | EB1, C> {
|
|
57
|
+
return this.fa.take.zipConcurrent(this.fb.take).flatMap(([b, c]) => this.f(b, c));
|
|
58
|
+
}
|
|
49
59
|
|
|
50
|
-
takeAll: IO<RB | RB1 | R3, E3 | EB | EB1, Conc<C>>
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
get takeAll(): IO<RB | RB1 | R3, E3 | EB | EB1, Conc<C>> {
|
|
61
|
+
return this.fa.takeAll
|
|
62
|
+
.zipConcurrent(this.fb.takeAll)
|
|
63
|
+
.flatMap(([bs, cs]) => IO.foreach(bs.zip(cs), ([b, c]) => this.f(b, c)));
|
|
64
|
+
}
|
|
53
65
|
|
|
54
66
|
takeUpTo(max: number): IO<RB | RB1 | R3, E3 | EB | EB1, Conc<C>> {
|
|
55
67
|
return this.fa
|
package/_src/Queue/internal.ts
CHANGED
|
@@ -16,11 +16,17 @@ class UnsafeQueue<A> extends QueueInternal<never, never, never, never, A, A> {
|
|
|
16
16
|
super();
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
awaitShutdown: UIO<void>
|
|
19
|
+
get awaitShutdown(): UIO<void> {
|
|
20
|
+
return this.shutdownHook.await;
|
|
21
|
+
}
|
|
20
22
|
|
|
21
|
-
capacity: number
|
|
23
|
+
get capacity(): number {
|
|
24
|
+
return this.queue.capacity;
|
|
25
|
+
}
|
|
22
26
|
|
|
23
|
-
isShutdown: UIO<boolean>
|
|
27
|
+
get isShutdown(): UIO<boolean> {
|
|
28
|
+
return IO.succeed(this.shutdownFlag.get);
|
|
29
|
+
}
|
|
24
30
|
|
|
25
31
|
get unsafeSize(): Maybe<number> {
|
|
26
32
|
if (this.shutdownFlag.get) {
|
package/_src/Schedule/api.ts
CHANGED
|
@@ -9,7 +9,7 @@ export function make<State, Env, In, Out>(
|
|
|
9
9
|
__tsplusTrace?: string,
|
|
10
10
|
): Schedule.WithState<State, Env, In, Out> {
|
|
11
11
|
return new (class extends Schedule<Env, In, Out> {
|
|
12
|
-
readonly _State
|
|
12
|
+
declare readonly _State: State;
|
|
13
13
|
initial = initial;
|
|
14
14
|
step = step;
|
|
15
15
|
})();
|
package/_src/ScopedRef/api.ts
CHANGED
|
@@ -20,7 +20,9 @@ class Synch<A> extends ScopedRef<A> {
|
|
|
20
20
|
constructor(readonly ref: Ref.Synchronized<readonly [Scope.Closeable, A]>) {
|
|
21
21
|
super();
|
|
22
22
|
}
|
|
23
|
-
close: UIO<void>
|
|
23
|
+
get close(): UIO<void> {
|
|
24
|
+
return this.ref.get.flatMap(([scope, _]) => scope.close(Exit.unit));
|
|
25
|
+
}
|
|
24
26
|
set<R, E>(acquire: IO<R, E, A>, __tsplusTrace?: string): IO<Exclude<R, Scope>, E, void> {
|
|
25
27
|
return this.ref.modifyIO(([oldScope, a]) =>
|
|
26
28
|
IO.uninterruptibleMask((restore) =>
|
|
@@ -39,5 +41,7 @@ class Synch<A> extends ScopedRef<A> {
|
|
|
39
41
|
),
|
|
40
42
|
).flatten;
|
|
41
43
|
}
|
|
42
|
-
get: UIO<A>
|
|
44
|
+
get get(): UIO<A> {
|
|
45
|
+
return this.ref.get.map(([_, a]) => a);
|
|
46
|
+
}
|
|
43
47
|
}
|
|
@@ -7,9 +7,11 @@ import { Reservation } from "@fncts/io/Semaphore/Reservation";
|
|
|
7
7
|
* @tsplus companion fncts.io.SemaphoreOps
|
|
8
8
|
*/
|
|
9
9
|
export class Semaphore {
|
|
10
|
-
|
|
10
|
+
readonly ref: Ref<Either<ImmutableQueue<[Future<never, void>, number]>, number>>;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
constructor(readonly permits: number) {
|
|
13
|
+
this.ref = Ref.unsafeMake(Either.right(this.permits));
|
|
14
|
+
}
|
|
13
15
|
|
|
14
16
|
available(__tsplusTrace?: string): UIO<number> {
|
|
15
17
|
return this.ref.get.map((_) =>
|
package/_src/Stream/api.ts
CHANGED
|
@@ -1367,9 +1367,7 @@ export function failNow<E>(error: E, __tsplusTrace?: string): Stream<never, E, n
|
|
|
1367
1367
|
* @tsplus pipeable fncts.io.Stream filter
|
|
1368
1368
|
*/
|
|
1369
1369
|
export function filter<A, B extends A>(refinement: Refinement<A, B>): <R, E>(fa: Stream<R, E, A>) => Stream<R, E, B>;
|
|
1370
|
-
|
|
1371
1370
|
export function filter<A>(predicate: Predicate<A>): <R, E>(fa: Stream<R, E, A>) => Stream<R, E, A>;
|
|
1372
|
-
|
|
1373
1371
|
export function filter<A>(predicate: Predicate<A>, __tsplusTrace?: string) {
|
|
1374
1372
|
return <R, E>(fa: Stream<R, E, A>): Stream<R, E, A> => {
|
|
1375
1373
|
return fa.mapChunks((chunk) => chunk.filter(predicate));
|
|
@@ -2,7 +2,9 @@ import type { Runtime } from "@fncts/io/IO/runtime";
|
|
|
2
2
|
import type { UnsafeSink } from "@fncts/io/Push/Sink";
|
|
3
3
|
import type { Scope } from "@fncts/io/Scope";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { EitherTag } from "@fncts/base/data/Either";
|
|
6
|
+
import { ExitTag } from "@fncts/base/data/Exit";
|
|
7
|
+
import { IO, IOTag } from "@fncts/io/IO";
|
|
6
8
|
import { PSynchronizedInternal } from "@fncts/io/Ref/Synchronized/definition";
|
|
7
9
|
|
|
8
10
|
import { FutureRef } from "../DeferredRef.js";
|
|
@@ -11,19 +13,57 @@ import { Derived } from "./Derived.js";
|
|
|
11
13
|
import { PRefSubject } from "./RefSubject.js";
|
|
12
14
|
|
|
13
15
|
export class Atomic<R, E, A> extends PRefSubject<never, never, E, E, E, A, A> {
|
|
16
|
+
private futureRef: FutureRef<E, A>;
|
|
17
|
+
|
|
18
|
+
private subject = new HoldSubject<E, A>();
|
|
19
|
+
private fiber: Fiber<E, A> | null = null;
|
|
20
|
+
|
|
21
|
+
readonly semaphore = Semaphore.unsafeMake(1);
|
|
22
|
+
|
|
14
23
|
constructor(
|
|
15
24
|
readonly fiberId: FiberId,
|
|
16
25
|
readonly initial: IO<R, E, A>,
|
|
17
|
-
readonly runtime: Runtime<R>,
|
|
26
|
+
readonly runtime: Runtime<R | Scope>,
|
|
18
27
|
readonly scope: Scope.Closeable,
|
|
19
28
|
) {
|
|
20
29
|
super();
|
|
21
|
-
}
|
|
22
30
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
31
|
+
this.futureRef = new FutureRef(this.fiberId, this.subject.value);
|
|
32
|
+
|
|
33
|
+
const onSuccess = (a: A) => this.futureRef.done(Exit.succeed(a));
|
|
34
|
+
const onCause = (cause: Cause<E>) => this.futureRef.done(Exit.failCause(cause));
|
|
35
|
+
const onError = (e: E) => onCause(Cause.fail(e));
|
|
36
|
+
const io = IO.concrete(initial);
|
|
37
|
+
|
|
38
|
+
switch (io._ioOpCode) {
|
|
39
|
+
case IOTag.SucceedNow:
|
|
40
|
+
onSuccess(io.i0);
|
|
41
|
+
break;
|
|
42
|
+
case null: {
|
|
43
|
+
switch (io._tag) {
|
|
44
|
+
case MaybeTag.Just:
|
|
45
|
+
onSuccess(io.value);
|
|
46
|
+
break;
|
|
47
|
+
case MaybeTag.Nothing:
|
|
48
|
+
onError(new NoSuchElementError() as E);
|
|
49
|
+
break;
|
|
50
|
+
case EitherTag.Right:
|
|
51
|
+
onSuccess(io.right);
|
|
52
|
+
break;
|
|
53
|
+
case EitherTag.Left:
|
|
54
|
+
onError(io.left);
|
|
55
|
+
break;
|
|
56
|
+
case ExitTag.Success:
|
|
57
|
+
onSuccess(io.value);
|
|
58
|
+
break;
|
|
59
|
+
case ExitTag.Failure:
|
|
60
|
+
onCause(io.cause);
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
27
67
|
|
|
28
68
|
readonly interrupt = IO.fiberIdWith((fiberId) => {
|
|
29
69
|
this.futureRef.reset();
|
|
@@ -36,8 +36,13 @@ export class Derived<EnvIn, EnvOut, ErrIn, ErrOut, ErrInRef, In, Out> extends PR
|
|
|
36
36
|
super();
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
subscribers
|
|
40
|
-
|
|
39
|
+
get subscribers() {
|
|
40
|
+
return this.use(({ ref }) => ref.subscribers);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
get interrupt() {
|
|
44
|
+
return this.use(({ ref }) => ref.interrupt);
|
|
45
|
+
}
|
|
41
46
|
|
|
42
47
|
onSuccess(value: In): IO<EnvIn, never, void> {
|
|
43
48
|
return this.use(({ ref, mapSetErrorInput, mapSet }) =>
|
|
@@ -12,6 +12,16 @@ import type { IO } from "@fncts/io/IO";
|
|
|
12
12
|
import { RefTypeId, RefVariance, SynchronizedTypeId } from "../../Ref.js";
|
|
13
13
|
import { PSubject } from "../definition.js";
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* @tsplus type fncts.io.RefSubject.RefSubject
|
|
17
|
+
* @tsplus companion fncts.io.RefSubject.RefSubjectOps
|
|
18
|
+
*/
|
|
19
|
+
export interface RefSubject<R, E, A> extends PRefSubject<R, R, E, E, E, A, A> {}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @tsplus type fncts.io.RefSubject.PRefSubject
|
|
23
|
+
* @tsplus companion fncts.io.RefSubject.PRefSubjectOps
|
|
24
|
+
*/
|
|
15
25
|
export abstract class PRefSubject<EnvIn, EnvOut, ErrIn, ErrOut, ErrInRef, In, Out>
|
|
16
26
|
extends PSubject<EnvIn, EnvOut, ErrIn, ErrOut, In, Out>
|
|
17
27
|
implements
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { RefSubject } from "@fncts/io/Subject/RefSubject/RefSubject";
|
|
2
|
+
|
|
3
|
+
import { Atomic } from "@fncts/io/Subject/RefSubject/Atomic";
|
|
4
|
+
|
|
5
|
+
export interface RefSubjectOptions<A> {
|
|
6
|
+
executionStrategy?: ExecutionStrategy;
|
|
7
|
+
eq?: Eq<A>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @tsplus static fncts.io.RefSubject.PRefSubjectOps fromIO
|
|
12
|
+
* @tsplus static fncts.io.RefSubject.RefSubjectOps fromIO
|
|
13
|
+
*/
|
|
14
|
+
export function fromIO<R, E, A>(
|
|
15
|
+
initial: IO<R, E, A>,
|
|
16
|
+
options?: RefSubjectOptions<A>,
|
|
17
|
+
): IO<Scope | R, never, RefSubject<never, E, A>> {
|
|
18
|
+
return Do((Δ) => {
|
|
19
|
+
const runtime = Δ(IO.runtime<R | Scope>());
|
|
20
|
+
const executionStrategy = options?.executionStrategy ?? ExecutionStrategy.concurrent;
|
|
21
|
+
const scope = Δ(runtime.environment.get(Scope.Tag).forkWith(executionStrategy));
|
|
22
|
+
const fiberId = Δ(IO.fiberId);
|
|
23
|
+
const refSubject = new Atomic(fiberId, initial, runtime, scope);
|
|
24
|
+
Δ(scope.addFinalizer(refSubject.interrupt.provideEnvironment(runtime.environment)));
|
|
25
|
+
return refSubject;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* eslint-disable simple-import-sort/exports */
|
|
2
|
+
// codegen:start { preset: type-barrel, include: ./RefSubject/*.ts }
|
|
3
|
+
export type {} from "./RefSubject/constructors.js";
|
|
4
|
+
export type {} from "./RefSubject/RefSubject.js";
|
|
5
|
+
export type {} from "./RefSubject/Derived.js";
|
|
6
|
+
export type {} from "./RefSubject/Atomic.js";
|
|
7
|
+
// codegen:end
|