@typed/fx 0.0.1
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/.editorconfig +14 -0
- package/.eslintcache +1 -0
- package/.eslintrc.cjs +60 -0
- package/.huskyrc +5 -0
- package/.lintstagedrc +5 -0
- package/.mocharc.json +6 -0
- package/.nvmrc +1 -0
- package/.pnpm-debug.log +20 -0
- package/.prettierrc.cjs +11 -0
- package/.tracing-plugin/plugin.cjs +100 -0
- package/.tracing-plugin/plugin.d.ts +10 -0
- package/.tracing-plugin/plugin.d.ts.map +1 -0
- package/.tracing-plugin/plugin.js.map +1 -0
- package/.tracing-plugin/vite.d.ts +10 -0
- package/.tracing-plugin/vite.d.ts.map +1 -0
- package/.tracing-plugin/vite.js +54 -0
- package/.tracing-plugin/vite.js.map +1 -0
- package/.vscode/settings.json +7 -0
- package/cjs/Atomic/Atomic.d.ts +56 -0
- package/cjs/Atomic/Atomic.d.ts.map +1 -0
- package/cjs/Atomic/Atomic.js +92 -0
- package/cjs/Atomic/Atomic.js.map +1 -0
- package/cjs/Atomic/AtomicCounter.d.ts +10 -0
- package/cjs/Atomic/AtomicCounter.d.ts.map +1 -0
- package/cjs/Atomic/AtomicCounter.js +14 -0
- package/cjs/Atomic/AtomicCounter.js.map +1 -0
- package/cjs/Atomic/index.d.ts +3 -0
- package/cjs/Atomic/index.d.ts.map +1 -0
- package/cjs/Atomic/index.js +19 -0
- package/cjs/Atomic/index.js.map +1 -0
- package/cjs/Cause/Cause.d.ts +169 -0
- package/cjs/Cause/Cause.d.ts.map +1 -0
- package/cjs/Cause/Cause.js +344 -0
- package/cjs/Cause/Cause.js.map +1 -0
- package/cjs/Cause/CauseError.d.ts +13 -0
- package/cjs/Cause/CauseError.d.ts.map +1 -0
- package/cjs/Cause/CauseError.js +73 -0
- package/cjs/Cause/CauseError.js.map +1 -0
- package/cjs/Cause/Renderer.d.ts +47 -0
- package/cjs/Cause/Renderer.d.ts.map +1 -0
- package/cjs/Cause/Renderer.js +235 -0
- package/cjs/Cause/Renderer.js.map +1 -0
- package/cjs/Cause/index.d.ts +2 -0
- package/cjs/Cause/index.d.ts.map +1 -0
- package/cjs/Cause/index.js +18 -0
- package/cjs/Cause/index.js.map +1 -0
- package/cjs/Cause/prettyStringify.d.ts +2 -0
- package/cjs/Cause/prettyStringify.d.ts.map +1 -0
- package/cjs/Cause/prettyStringify.js +11 -0
- package/cjs/Cause/prettyStringify.js.map +1 -0
- package/cjs/Clock/Clock.d.ts +26 -0
- package/cjs/Clock/Clock.d.ts.map +1 -0
- package/cjs/Clock/Clock.js +87 -0
- package/cjs/Clock/Clock.js.map +1 -0
- package/cjs/Clock/DateClock.d.ts +3 -0
- package/cjs/Clock/DateClock.d.ts.map +1 -0
- package/cjs/Clock/DateClock.js +11 -0
- package/cjs/Clock/DateClock.js.map +1 -0
- package/cjs/Clock/TestClock.d.ts +11 -0
- package/cjs/Clock/TestClock.d.ts.map +1 -0
- package/cjs/Clock/TestClock.js +19 -0
- package/cjs/Clock/TestClock.js.map +1 -0
- package/cjs/Clock/index.d.ts +4 -0
- package/cjs/Clock/index.d.ts.map +1 -0
- package/cjs/Clock/index.js +20 -0
- package/cjs/Clock/index.js.map +1 -0
- package/cjs/Disposable/Disposable.d.ts +25 -0
- package/cjs/Disposable/Disposable.d.ts.map +1 -0
- package/cjs/Disposable/Disposable.js +46 -0
- package/cjs/Disposable/Disposable.js.map +1 -0
- package/cjs/Disposable/index.d.ts +2 -0
- package/cjs/Disposable/index.d.ts.map +1 -0
- package/cjs/Disposable/index.js +18 -0
- package/cjs/Disposable/index.js.map +1 -0
- package/cjs/Duration/Duration.d.ts +27 -0
- package/cjs/Duration/Duration.d.ts.map +1 -0
- package/cjs/Duration/Duration.js +119 -0
- package/cjs/Duration/Duration.js.map +1 -0
- package/cjs/Duration/index.d.ts +2 -0
- package/cjs/Duration/index.d.ts.map +1 -0
- package/cjs/Duration/index.js +18 -0
- package/cjs/Duration/index.js.map +1 -0
- package/cjs/Env/Env.d.ts +8 -0
- package/cjs/Env/Env.d.ts.map +1 -0
- package/cjs/Env/Env.js +64 -0
- package/cjs/Env/Env.js.map +1 -0
- package/cjs/Env/index.d.ts +2 -0
- package/cjs/Env/index.d.ts.map +1 -0
- package/cjs/Env/index.js +18 -0
- package/cjs/Env/index.js.map +1 -0
- package/cjs/Exit/Exit.d.ts +21 -0
- package/cjs/Exit/Exit.d.ts.map +1 -0
- package/cjs/Exit/Exit.js +54 -0
- package/cjs/Exit/Exit.js.map +1 -0
- package/cjs/Exit/hkt.d.ts +17 -0
- package/cjs/Exit/hkt.d.ts.map +1 -0
- package/cjs/Exit/hkt.js +45 -0
- package/cjs/Exit/hkt.js.map +1 -0
- package/cjs/Exit/index.d.ts +3 -0
- package/cjs/Exit/index.d.ts.map +1 -0
- package/cjs/Exit/index.js +19 -0
- package/cjs/Exit/index.js.map +1 -0
- package/cjs/Fiber/Fiber.d.ts +36 -0
- package/cjs/Fiber/Fiber.d.ts.map +1 -0
- package/cjs/Fiber/Fiber.js +36 -0
- package/cjs/Fiber/Fiber.js.map +1 -0
- package/cjs/Fiber/index.d.ts +2 -0
- package/cjs/Fiber/index.d.ts.map +1 -0
- package/cjs/Fiber/index.js +18 -0
- package/cjs/Fiber/index.js.map +1 -0
- package/cjs/FiberContext/FiberContext.d.ts +22 -0
- package/cjs/FiberContext/FiberContext.d.ts.map +1 -0
- package/cjs/FiberContext/FiberContext.js +64 -0
- package/cjs/FiberContext/FiberContext.js.map +1 -0
- package/cjs/FiberContext/index.d.ts +2 -0
- package/cjs/FiberContext/index.d.ts.map +1 -0
- package/cjs/FiberContext/index.js +18 -0
- package/cjs/FiberContext/index.js.map +1 -0
- package/cjs/FiberId/FiberId.d.ts +46 -0
- package/cjs/FiberId/FiberId.d.ts.map +1 -0
- package/cjs/FiberId/FiberId.js +122 -0
- package/cjs/FiberId/FiberId.js.map +1 -0
- package/cjs/FiberId/index.d.ts +2 -0
- package/cjs/FiberId/index.d.ts.map +1 -0
- package/cjs/FiberId/index.js +18 -0
- package/cjs/FiberId/index.js.map +1 -0
- package/cjs/FiberRef/FiberRef.d.ts +38 -0
- package/cjs/FiberRef/FiberRef.d.ts.map +1 -0
- package/cjs/FiberRef/FiberRef.js +57 -0
- package/cjs/FiberRef/FiberRef.js.map +1 -0
- package/cjs/FiberRef/index.d.ts +3 -0
- package/cjs/FiberRef/index.d.ts.map +1 -0
- package/cjs/FiberRef/index.js +20 -0
- package/cjs/FiberRef/index.js.map +1 -0
- package/cjs/FiberRef/operations.d.ts +9 -0
- package/cjs/FiberRef/operations.d.ts.map +1 -0
- package/cjs/FiberRef/operations.js +20 -0
- package/cjs/FiberRef/operations.js.map +1 -0
- package/cjs/FiberRefs/FiberRefs.d.ts +19 -0
- package/cjs/FiberRefs/FiberRefs.d.ts.map +1 -0
- package/cjs/FiberRefs/FiberRefs.js +130 -0
- package/cjs/FiberRefs/FiberRefs.js.map +1 -0
- package/cjs/FiberRefs/index.d.ts +2 -0
- package/cjs/FiberRefs/index.d.ts.map +1 -0
- package/cjs/FiberRefs/index.js +18 -0
- package/cjs/FiberRefs/index.js.map +1 -0
- package/cjs/FiberRuntime/FiberRuntime.d.ts +154 -0
- package/cjs/FiberRuntime/FiberRuntime.d.ts.map +1 -0
- package/cjs/FiberRuntime/FiberRuntime.js +506 -0
- package/cjs/FiberRuntime/FiberRuntime.js.map +1 -0
- package/cjs/FiberRuntime/Frame.d.ts +14 -0
- package/cjs/FiberRuntime/Frame.d.ts.map +1 -0
- package/cjs/FiberRuntime/Frame.js +18 -0
- package/cjs/FiberRuntime/Frame.js.map +1 -0
- package/cjs/FiberRuntime/index.d.ts +2 -0
- package/cjs/FiberRuntime/index.d.ts.map +1 -0
- package/cjs/FiberRuntime/index.js +18 -0
- package/cjs/FiberRuntime/index.js.map +1 -0
- package/cjs/FiberStatus/index.d.ts +19 -0
- package/cjs/FiberStatus/index.d.ts.map +1 -0
- package/cjs/FiberStatus/index.js +24 -0
- package/cjs/FiberStatus/index.js.map +1 -0
- package/cjs/Finalizer/Finalizer.d.ts +39 -0
- package/cjs/Finalizer/Finalizer.d.ts.map +1 -0
- package/cjs/Finalizer/Finalizer.js +24 -0
- package/cjs/Finalizer/Finalizer.js.map +1 -0
- package/cjs/Finalizer/index.d.ts +2 -0
- package/cjs/Finalizer/index.d.ts.map +1 -0
- package/cjs/Finalizer/index.js +18 -0
- package/cjs/Finalizer/index.js.map +1 -0
- package/cjs/Future/Future.d.ts +23 -0
- package/cjs/Future/Future.d.ts.map +1 -0
- package/cjs/Future/Future.js +42 -0
- package/cjs/Future/Future.js.map +1 -0
- package/cjs/Future/MutableFutureQueue.d.ts +16 -0
- package/cjs/Future/MutableFutureQueue.d.ts.map +1 -0
- package/cjs/Future/MutableFutureQueue.js +40 -0
- package/cjs/Future/MutableFutureQueue.js.map +1 -0
- package/cjs/Future/complete.d.ts +4 -0
- package/cjs/Future/complete.d.ts.map +1 -0
- package/cjs/Future/complete.js +14 -0
- package/cjs/Future/complete.js.map +1 -0
- package/cjs/Future/index.d.ts +4 -0
- package/cjs/Future/index.d.ts.map +1 -0
- package/cjs/Future/index.js +20 -0
- package/cjs/Future/index.js.map +1 -0
- package/cjs/Future/wait.d.ts +4 -0
- package/cjs/Future/wait.d.ts.map +1 -0
- package/cjs/Future/wait.js +9 -0
- package/cjs/Future/wait.js.map +1 -0
- package/cjs/Fx/Fx.d.ts +136 -0
- package/cjs/Fx/Fx.d.ts.map +1 -0
- package/cjs/Fx/Fx.js +247 -0
- package/cjs/Fx/Fx.js.map +1 -0
- package/cjs/Fx/Instruction.d.ts +202 -0
- package/cjs/Fx/Instruction.d.ts.map +1 -0
- package/cjs/Fx/Instruction.js +387 -0
- package/cjs/Fx/Instruction.js.map +1 -0
- package/cjs/Fx/index.d.ts +5 -0
- package/cjs/Fx/index.d.ts.map +1 -0
- package/cjs/Fx/index.js +21 -0
- package/cjs/Fx/index.js.map +1 -0
- package/cjs/Fx/join.d.ts +4 -0
- package/cjs/Fx/join.d.ts.map +1 -0
- package/cjs/Fx/join.js +39 -0
- package/cjs/Fx/join.js.map +1 -0
- package/cjs/Fx/logging.d.ts +11 -0
- package/cjs/Fx/logging.d.ts.map +1 -0
- package/cjs/Fx/logging.js +45 -0
- package/cjs/Fx/logging.js.map +1 -0
- package/cjs/Fx/scoped.d.ts +20 -0
- package/cjs/Fx/scoped.d.ts.map +1 -0
- package/cjs/Fx/scoped.js +52 -0
- package/cjs/Fx/scoped.js.map +1 -0
- package/cjs/ImmutableMap/ImmutableMap.d.ts +15 -0
- package/cjs/ImmutableMap/ImmutableMap.d.ts.map +1 -0
- package/cjs/ImmutableMap/ImmutableMap.js +39 -0
- package/cjs/ImmutableMap/ImmutableMap.js.map +1 -0
- package/cjs/ImmutableMap/index.d.ts +2 -0
- package/cjs/ImmutableMap/index.d.ts.map +1 -0
- package/cjs/ImmutableMap/index.js +18 -0
- package/cjs/ImmutableMap/index.js.map +1 -0
- package/cjs/Layer/Layer.d.ts +14 -0
- package/cjs/Layer/Layer.d.ts.map +1 -0
- package/cjs/Layer/Layer.js +42 -0
- package/cjs/Layer/Layer.js.map +1 -0
- package/cjs/Layer/index.d.ts +2 -0
- package/cjs/Layer/index.d.ts.map +1 -0
- package/cjs/Layer/index.js +18 -0
- package/cjs/Layer/index.js.map +1 -0
- package/cjs/Logger/Console.d.ts +3 -0
- package/cjs/Logger/Console.d.ts.map +1 -0
- package/cjs/Logger/Console.js +75 -0
- package/cjs/Logger/Console.js.map +1 -0
- package/cjs/Logger/LogAnnotation.d.ts +6 -0
- package/cjs/Logger/LogAnnotation.d.ts.map +1 -0
- package/cjs/Logger/LogAnnotation.js +8 -0
- package/cjs/Logger/LogAnnotation.js.map +1 -0
- package/cjs/Logger/LogLevel.d.ts +11 -0
- package/cjs/Logger/LogLevel.d.ts.map +1 -0
- package/cjs/Logger/LogLevel.js +15 -0
- package/cjs/Logger/LogLevel.js.map +1 -0
- package/cjs/Logger/LogSpan.d.ts +7 -0
- package/cjs/Logger/LogSpan.d.ts.map +1 -0
- package/cjs/Logger/LogSpan.js +8 -0
- package/cjs/Logger/LogSpan.js.map +1 -0
- package/cjs/Logger/Logger.d.ts +31 -0
- package/cjs/Logger/Logger.d.ts.map +1 -0
- package/cjs/Logger/Logger.js +66 -0
- package/cjs/Logger/Logger.js.map +1 -0
- package/cjs/Logger/index.d.ts +2 -0
- package/cjs/Logger/index.d.ts.map +1 -0
- package/cjs/Logger/index.js +18 -0
- package/cjs/Logger/index.js.map +1 -0
- package/cjs/Platform/Platform.d.ts +14 -0
- package/cjs/Platform/Platform.d.ts.map +1 -0
- package/cjs/Platform/Platform.js +47 -0
- package/cjs/Platform/Platform.js.map +1 -0
- package/cjs/Platform/TestPlatform.d.ts +7 -0
- package/cjs/Platform/TestPlatform.d.ts.map +1 -0
- package/cjs/Platform/TestPlatform.js +13 -0
- package/cjs/Platform/TestPlatform.js.map +1 -0
- package/cjs/Platform/index.d.ts +3 -0
- package/cjs/Platform/index.d.ts.map +1 -0
- package/cjs/Platform/index.js +19 -0
- package/cjs/Platform/index.js.map +1 -0
- package/cjs/Ref/Ref.d.ts +40 -0
- package/cjs/Ref/Ref.d.ts.map +1 -0
- package/cjs/Ref/Ref.js +57 -0
- package/cjs/Ref/Ref.js.map +1 -0
- package/cjs/Ref/atomic.d.ts +5 -0
- package/cjs/Ref/atomic.d.ts.map +1 -0
- package/cjs/Ref/atomic.js +20 -0
- package/cjs/Ref/atomic.js.map +1 -0
- package/cjs/Ref/index.d.ts +3 -0
- package/cjs/Ref/index.d.ts.map +1 -0
- package/cjs/Ref/index.js +19 -0
- package/cjs/Ref/index.js.map +1 -0
- package/cjs/Schedule/Decision.d.ts +15 -0
- package/cjs/Schedule/Decision.d.ts.map +1 -0
- package/cjs/Schedule/Decision.js +38 -0
- package/cjs/Schedule/Decision.js.map +1 -0
- package/cjs/Schedule/Schedule.d.ts +30 -0
- package/cjs/Schedule/Schedule.d.ts.map +1 -0
- package/cjs/Schedule/Schedule.js +78 -0
- package/cjs/Schedule/Schedule.js.map +1 -0
- package/cjs/Schedule/ScheduleState.d.ts +45 -0
- package/cjs/Schedule/ScheduleState.d.ts.map +1 -0
- package/cjs/Schedule/ScheduleState.js +58 -0
- package/cjs/Schedule/ScheduleState.js.map +1 -0
- package/cjs/Schedule/index.d.ts +4 -0
- package/cjs/Schedule/index.d.ts.map +1 -0
- package/cjs/Schedule/index.js +20 -0
- package/cjs/Schedule/index.js.map +1 -0
- package/cjs/Scheduler/RootScheduler.d.ts +4 -0
- package/cjs/Scheduler/RootScheduler.d.ts.map +1 -0
- package/cjs/Scheduler/RootScheduler.js +57 -0
- package/cjs/Scheduler/RootScheduler.js.map +1 -0
- package/cjs/Scheduler/Scheduler.d.ts +14 -0
- package/cjs/Scheduler/Scheduler.d.ts.map +1 -0
- package/cjs/Scheduler/Scheduler.js +6 -0
- package/cjs/Scheduler/Scheduler.js.map +1 -0
- package/cjs/Scheduler/callbackScheduler.d.ts +5 -0
- package/cjs/Scheduler/callbackScheduler.d.ts.map +1 -0
- package/cjs/Scheduler/callbackScheduler.js +59 -0
- package/cjs/Scheduler/callbackScheduler.js.map +1 -0
- package/cjs/Scheduler/index.d.ts +1 -0
- package/cjs/Scheduler/index.d.ts.map +1 -0
- package/cjs/Scheduler/index.js +2 -0
- package/cjs/Scheduler/index.js.map +1 -0
- package/cjs/Scheduler/scheduled.d.ts +10 -0
- package/cjs/Scheduler/scheduled.d.ts.map +1 -0
- package/cjs/Scheduler/scheduled.js +25 -0
- package/cjs/Scheduler/scheduled.js.map +1 -0
- package/cjs/Scope/Closeable.d.ts +11 -0
- package/cjs/Scope/Closeable.d.ts.map +1 -0
- package/cjs/Scope/Closeable.js +25 -0
- package/cjs/Scope/Closeable.js.map +1 -0
- package/cjs/Scope/GlobalScope.d.ts +3 -0
- package/cjs/Scope/GlobalScope.d.ts.map +1 -0
- package/cjs/Scope/GlobalScope.js +15 -0
- package/cjs/Scope/GlobalScope.js.map +1 -0
- package/cjs/Scope/LocalScope.d.ts +24 -0
- package/cjs/Scope/LocalScope.d.ts.map +1 -0
- package/cjs/Scope/LocalScope.js +97 -0
- package/cjs/Scope/LocalScope.js.map +1 -0
- package/cjs/Scope/ReleaseMap.d.ts +19 -0
- package/cjs/Scope/ReleaseMap.d.ts.map +1 -0
- package/cjs/Scope/ReleaseMap.js +66 -0
- package/cjs/Scope/ReleaseMap.js.map +1 -0
- package/cjs/Scope/Scope.d.ts +11 -0
- package/cjs/Scope/Scope.d.ts.map +1 -0
- package/cjs/Scope/Scope.js +6 -0
- package/cjs/Scope/Scope.js.map +1 -0
- package/cjs/Scope/ScopeState.d.ts +19 -0
- package/cjs/Scope/ScopeState.d.ts.map +1 -0
- package/cjs/Scope/ScopeState.js +30 -0
- package/cjs/Scope/ScopeState.js.map +1 -0
- package/cjs/Scope/index.d.ts +7 -0
- package/cjs/Scope/index.d.ts.map +1 -0
- package/cjs/Scope/index.js +23 -0
- package/cjs/Scope/index.js.map +1 -0
- package/cjs/Semaphore/Semaphore.d.ts +38 -0
- package/cjs/Semaphore/Semaphore.d.ts.map +1 -0
- package/cjs/Semaphore/Semaphore.js +96 -0
- package/cjs/Semaphore/Semaphore.js.map +1 -0
- package/cjs/Semaphore/index.d.ts +2 -0
- package/cjs/Semaphore/index.d.ts.map +1 -0
- package/cjs/Semaphore/index.js +18 -0
- package/cjs/Semaphore/index.js.map +1 -0
- package/cjs/Service/Id.d.ts +59 -0
- package/cjs/Service/Id.d.ts.map +1 -0
- package/cjs/Service/Id.js +90 -0
- package/cjs/Service/Id.js.map +1 -0
- package/cjs/Service/Service.d.ts +20 -0
- package/cjs/Service/Service.d.ts.map +1 -0
- package/cjs/Service/Service.js +19 -0
- package/cjs/Service/Service.js.map +1 -0
- package/cjs/Service/index.d.ts +4 -0
- package/cjs/Service/index.d.ts.map +1 -0
- package/cjs/Service/index.js +20 -0
- package/cjs/Service/index.js.map +1 -0
- package/cjs/Service/tagged.d.ts +23 -0
- package/cjs/Service/tagged.d.ts.map +1 -0
- package/cjs/Service/tagged.js +13 -0
- package/cjs/Service/tagged.js.map +1 -0
- package/cjs/Sink/Sink.d.ts +22 -0
- package/cjs/Sink/Sink.d.ts.map +1 -0
- package/cjs/Sink/Sink.js +31 -0
- package/cjs/Sink/Sink.js.map +1 -0
- package/cjs/Sink/index.d.ts +1 -0
- package/cjs/Sink/index.d.ts.map +1 -0
- package/cjs/Sink/index.js +2 -0
- package/cjs/Sink/index.js.map +1 -0
- package/cjs/Stack/index.d.ts +20 -0
- package/cjs/Stack/index.d.ts.map +1 -0
- package/cjs/Stack/index.js +103 -0
- package/cjs/Stack/index.js.map +1 -0
- package/cjs/StackFrame/StackFrame.d.ts +29 -0
- package/cjs/StackFrame/StackFrame.d.ts.map +1 -0
- package/cjs/StackFrame/StackFrame.js +61 -0
- package/cjs/StackFrame/StackFrame.js.map +1 -0
- package/cjs/StackFrame/getStackFrames.d.ts +7 -0
- package/cjs/StackFrame/getStackFrames.d.ts.map +1 -0
- package/cjs/StackFrame/getStackFrames.js +56 -0
- package/cjs/StackFrame/getStackFrames.js.map +1 -0
- package/cjs/StackFrame/index.d.ts +3 -0
- package/cjs/StackFrame/index.d.ts.map +1 -0
- package/cjs/StackFrame/index.js +19 -0
- package/cjs/StackFrame/index.js.map +1 -0
- package/cjs/StackFrame/parseChromeStack.d.ts +3 -0
- package/cjs/StackFrame/parseChromeStack.d.ts.map +1 -0
- package/cjs/StackFrame/parseChromeStack.js +36 -0
- package/cjs/StackFrame/parseChromeStack.js.map +1 -0
- package/cjs/StackFrame/parseGeckoStackFrame.d.ts +3 -0
- package/cjs/StackFrame/parseGeckoStackFrame.d.ts.map +1 -0
- package/cjs/StackFrame/parseGeckoStackFrame.js +28 -0
- package/cjs/StackFrame/parseGeckoStackFrame.js.map +1 -0
- package/cjs/Stream/Stream.d.ts +18 -0
- package/cjs/Stream/Stream.d.ts.map +1 -0
- package/cjs/Stream/Stream.js +8 -0
- package/cjs/Stream/Stream.js.map +1 -0
- package/cjs/Stream/drain.d.ts +11 -0
- package/cjs/Stream/drain.d.ts.map +1 -0
- package/cjs/Stream/drain.js +51 -0
- package/cjs/Stream/drain.js.map +1 -0
- package/cjs/Stream/fromFx.d.ts +4 -0
- package/cjs/Stream/fromFx.d.ts.map +1 -0
- package/cjs/Stream/fromFx.js +34 -0
- package/cjs/Stream/fromFx.js.map +1 -0
- package/cjs/Stream/index.d.ts +4 -0
- package/cjs/Stream/index.d.ts.map +1 -0
- package/cjs/Stream/index.js +20 -0
- package/cjs/Stream/index.js.map +1 -0
- package/cjs/Supervisor/Supervisor.d.ts +32 -0
- package/cjs/Supervisor/Supervisor.d.ts.map +1 -0
- package/cjs/Supervisor/Supervisor.js +46 -0
- package/cjs/Supervisor/Supervisor.js.map +1 -0
- package/cjs/Supervisor/index.d.ts +2 -0
- package/cjs/Supervisor/index.d.ts.map +1 -0
- package/cjs/Supervisor/index.js +18 -0
- package/cjs/Supervisor/index.js.map +1 -0
- package/cjs/Tagged/index.d.ts +79 -0
- package/cjs/Tagged/index.d.ts.map +1 -0
- package/cjs/Tagged/index.js +71 -0
- package/cjs/Tagged/index.js.map +1 -0
- package/cjs/Time/index.d.ts +95 -0
- package/cjs/Time/index.d.ts.map +1 -0
- package/cjs/Time/index.js +59 -0
- package/cjs/Time/index.js.map +1 -0
- package/cjs/Timeline/index.d.ts +27 -0
- package/cjs/Timeline/index.d.ts.map +1 -0
- package/cjs/Timeline/index.js +102 -0
- package/cjs/Timeline/index.js.map +1 -0
- package/cjs/Timer/SetTimeoutTimer.d.ts +4 -0
- package/cjs/Timer/SetTimeoutTimer.d.ts.map +1 -0
- package/cjs/Timer/SetTimeoutTimer.js +18 -0
- package/cjs/Timer/SetTimeoutTimer.js.map +1 -0
- package/cjs/Timer/TestTimer.d.ts +9 -0
- package/cjs/Timer/TestTimer.d.ts.map +1 -0
- package/cjs/Timer/TestTimer.js +52 -0
- package/cjs/Timer/TestTimer.js.map +1 -0
- package/cjs/Timer/Timer.d.ts +11 -0
- package/cjs/Timer/Timer.d.ts.map +1 -0
- package/cjs/Timer/Timer.js +44 -0
- package/cjs/Timer/Timer.js.map +1 -0
- package/cjs/Timer/index.d.ts +4 -0
- package/cjs/Timer/index.d.ts.map +1 -0
- package/cjs/Timer/index.js +20 -0
- package/cjs/Timer/index.js.map +1 -0
- package/cjs/Trace/Trace.d.ts +38 -0
- package/cjs/Trace/Trace.d.ts.map +1 -0
- package/cjs/Trace/Trace.js +183 -0
- package/cjs/Trace/Trace.js.map +1 -0
- package/cjs/Trace/index.d.ts +2 -0
- package/cjs/Trace/index.d.ts.map +1 -0
- package/cjs/Trace/index.js +18 -0
- package/cjs/Trace/index.js.map +1 -0
- package/cjs/Tracing/plugin.d.ts +10 -0
- package/cjs/Tracing/plugin.d.ts.map +1 -0
- package/cjs/Tracing/plugin.js +100 -0
- package/cjs/Tracing/plugin.js.map +1 -0
- package/cjs/Tracing/vite.d.ts +10 -0
- package/cjs/Tracing/vite.d.ts.map +1 -0
- package/cjs/Tracing/vite.js +54 -0
- package/cjs/Tracing/vite.js.map +1 -0
- package/cjs/index.d.ts +35 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +64 -0
- package/cjs/index.js.map +1 -0
- package/cjs/internal.d.ts +18 -0
- package/cjs/internal.d.ts.map +1 -0
- package/cjs/internal.js +3 -0
- package/cjs/internal.js.map +1 -0
- package/cjs/test.d.ts +1 -0
- package/cjs/test.d.ts.map +1 -0
- package/cjs/test.js +2 -0
- package/cjs/test.js.map +1 -0
- package/coverage/tmp/coverage-74826-1660784295157-0.json +1 -0
- package/coverage/tmp/coverage-74830-1660784295115-0.json +1 -0
- package/coverage/tmp/coverage-74836-1660784295074-0.json +1 -0
- package/esm/Atomic/Atomic.d.ts +56 -0
- package/esm/Atomic/Atomic.d.ts.map +1 -0
- package/esm/Atomic/Atomic.js +79 -0
- package/esm/Atomic/Atomic.js.map +1 -0
- package/esm/Atomic/AtomicCounter.d.ts +10 -0
- package/esm/Atomic/AtomicCounter.d.ts.map +1 -0
- package/esm/Atomic/AtomicCounter.js +10 -0
- package/esm/Atomic/AtomicCounter.js.map +1 -0
- package/esm/Atomic/index.d.ts +3 -0
- package/esm/Atomic/index.d.ts.map +1 -0
- package/esm/Atomic/index.js +3 -0
- package/esm/Atomic/index.js.map +1 -0
- package/esm/Cause/Cause.d.ts +169 -0
- package/esm/Cause/Cause.d.ts.map +1 -0
- package/esm/Cause/Cause.js +296 -0
- package/esm/Cause/Cause.js.map +1 -0
- package/esm/Cause/CauseError.d.ts +13 -0
- package/esm/Cause/CauseError.d.ts.map +1 -0
- package/esm/Cause/CauseError.js +44 -0
- package/esm/Cause/CauseError.js.map +1 -0
- package/esm/Cause/Renderer.d.ts +47 -0
- package/esm/Cause/Renderer.d.ts.map +1 -0
- package/esm/Cause/Renderer.js +191 -0
- package/esm/Cause/Renderer.js.map +1 -0
- package/esm/Cause/index.d.ts +2 -0
- package/esm/Cause/index.d.ts.map +1 -0
- package/esm/Cause/index.js +2 -0
- package/esm/Cause/index.js.map +1 -0
- package/esm/Cause/prettyStringify.d.ts +2 -0
- package/esm/Cause/prettyStringify.d.ts.map +1 -0
- package/esm/Cause/prettyStringify.js +7 -0
- package/esm/Cause/prettyStringify.js.map +1 -0
- package/esm/Clock/Clock.d.ts +26 -0
- package/esm/Clock/Clock.d.ts.map +1 -0
- package/esm/Clock/Clock.js +50 -0
- package/esm/Clock/Clock.js.map +1 -0
- package/esm/Clock/DateClock.d.ts +3 -0
- package/esm/Clock/DateClock.d.ts.map +1 -0
- package/esm/Clock/DateClock.js +7 -0
- package/esm/Clock/DateClock.js.map +1 -0
- package/esm/Clock/TestClock.d.ts +11 -0
- package/esm/Clock/TestClock.d.ts.map +1 -0
- package/esm/Clock/TestClock.js +15 -0
- package/esm/Clock/TestClock.js.map +1 -0
- package/esm/Clock/index.d.ts +4 -0
- package/esm/Clock/index.d.ts.map +1 -0
- package/esm/Clock/index.js +4 -0
- package/esm/Clock/index.js.map +1 -0
- package/esm/Disposable/Disposable.d.ts +25 -0
- package/esm/Disposable/Disposable.d.ts.map +1 -0
- package/esm/Disposable/Disposable.js +39 -0
- package/esm/Disposable/Disposable.js.map +1 -0
- package/esm/Disposable/index.d.ts +2 -0
- package/esm/Disposable/index.d.ts.map +1 -0
- package/esm/Disposable/index.js +2 -0
- package/esm/Disposable/index.js.map +1 -0
- package/esm/Duration/Duration.d.ts +27 -0
- package/esm/Duration/Duration.d.ts.map +1 -0
- package/esm/Duration/Duration.js +106 -0
- package/esm/Duration/Duration.js.map +1 -0
- package/esm/Duration/index.d.ts +2 -0
- package/esm/Duration/index.d.ts.map +1 -0
- package/esm/Duration/index.js +2 -0
- package/esm/Duration/index.js.map +1 -0
- package/esm/Env/Env.d.ts +8 -0
- package/esm/Env/Env.d.ts.map +1 -0
- package/esm/Env/Env.js +37 -0
- package/esm/Env/Env.js.map +1 -0
- package/esm/Env/index.d.ts +2 -0
- package/esm/Env/index.d.ts.map +1 -0
- package/esm/Env/index.js +2 -0
- package/esm/Env/index.js.map +1 -0
- package/esm/Exit/Exit.d.ts +21 -0
- package/esm/Exit/Exit.d.ts.map +1 -0
- package/esm/Exit/Exit.js +16 -0
- package/esm/Exit/Exit.js.map +1 -0
- package/esm/Exit/hkt.d.ts +17 -0
- package/esm/Exit/hkt.d.ts.map +1 -0
- package/esm/Exit/hkt.js +19 -0
- package/esm/Exit/hkt.js.map +1 -0
- package/esm/Exit/index.d.ts +3 -0
- package/esm/Exit/index.d.ts.map +1 -0
- package/esm/Exit/index.js +3 -0
- package/esm/Exit/index.js.map +1 -0
- package/esm/Fiber/Fiber.d.ts +36 -0
- package/esm/Fiber/Fiber.d.ts.map +1 -0
- package/esm/Fiber/Fiber.js +25 -0
- package/esm/Fiber/Fiber.js.map +1 -0
- package/esm/Fiber/index.d.ts +2 -0
- package/esm/Fiber/index.d.ts.map +1 -0
- package/esm/Fiber/index.js +2 -0
- package/esm/Fiber/index.js.map +1 -0
- package/esm/FiberContext/FiberContext.d.ts +22 -0
- package/esm/FiberContext/FiberContext.d.ts.map +1 -0
- package/esm/FiberContext/FiberContext.js +36 -0
- package/esm/FiberContext/FiberContext.js.map +1 -0
- package/esm/FiberContext/index.d.ts +2 -0
- package/esm/FiberContext/index.d.ts.map +1 -0
- package/esm/FiberContext/index.js +2 -0
- package/esm/FiberContext/index.js.map +1 -0
- package/esm/FiberId/FiberId.d.ts +46 -0
- package/esm/FiberId/FiberId.d.ts.map +1 -0
- package/esm/FiberId/FiberId.js +93 -0
- package/esm/FiberId/FiberId.js.map +1 -0
- package/esm/FiberId/index.d.ts +2 -0
- package/esm/FiberId/index.d.ts.map +1 -0
- package/esm/FiberId/index.js +2 -0
- package/esm/FiberId/index.js.map +1 -0
- package/esm/FiberRef/FiberRef.d.ts +38 -0
- package/esm/FiberRef/FiberRef.d.ts.map +1 -0
- package/esm/FiberRef/FiberRef.js +52 -0
- package/esm/FiberRef/FiberRef.js.map +1 -0
- package/esm/FiberRef/index.d.ts +3 -0
- package/esm/FiberRef/index.d.ts.map +1 -0
- package/esm/FiberRef/index.js +4 -0
- package/esm/FiberRef/index.js.map +1 -0
- package/esm/FiberRef/operations.d.ts +9 -0
- package/esm/FiberRef/operations.d.ts.map +1 -0
- package/esm/FiberRef/operations.js +13 -0
- package/esm/FiberRef/operations.js.map +1 -0
- package/esm/FiberRefs/FiberRefs.d.ts +19 -0
- package/esm/FiberRefs/FiberRefs.d.ts.map +1 -0
- package/esm/FiberRefs/FiberRefs.js +95 -0
- package/esm/FiberRefs/FiberRefs.js.map +1 -0
- package/esm/FiberRefs/index.d.ts +2 -0
- package/esm/FiberRefs/index.d.ts.map +1 -0
- package/esm/FiberRefs/index.js +2 -0
- package/esm/FiberRefs/index.js.map +1 -0
- package/esm/FiberRuntime/FiberRuntime.d.ts +154 -0
- package/esm/FiberRuntime/FiberRuntime.d.ts.map +1 -0
- package/esm/FiberRuntime/FiberRuntime.js +479 -0
- package/esm/FiberRuntime/FiberRuntime.js.map +1 -0
- package/esm/FiberRuntime/Frame.d.ts +14 -0
- package/esm/FiberRuntime/Frame.d.ts.map +1 -0
- package/esm/FiberRuntime/Frame.js +13 -0
- package/esm/FiberRuntime/Frame.js.map +1 -0
- package/esm/FiberRuntime/index.d.ts +2 -0
- package/esm/FiberRuntime/index.d.ts.map +1 -0
- package/esm/FiberRuntime/index.js +2 -0
- package/esm/FiberRuntime/index.js.map +1 -0
- package/esm/FiberStatus/index.d.ts +19 -0
- package/esm/FiberStatus/index.d.ts.map +1 -0
- package/esm/FiberStatus/index.js +18 -0
- package/esm/FiberStatus/index.js.map +1 -0
- package/esm/Finalizer/Finalizer.d.ts +39 -0
- package/esm/Finalizer/Finalizer.d.ts.map +1 -0
- package/esm/Finalizer/Finalizer.js +19 -0
- package/esm/Finalizer/Finalizer.js.map +1 -0
- package/esm/Finalizer/index.d.ts +2 -0
- package/esm/Finalizer/index.d.ts.map +1 -0
- package/esm/Finalizer/index.js +2 -0
- package/esm/Finalizer/index.js.map +1 -0
- package/esm/Future/Future.d.ts +23 -0
- package/esm/Future/Future.d.ts.map +1 -0
- package/esm/Future/Future.js +36 -0
- package/esm/Future/Future.js.map +1 -0
- package/esm/Future/MutableFutureQueue.d.ts +16 -0
- package/esm/Future/MutableFutureQueue.d.ts.map +1 -0
- package/esm/Future/MutableFutureQueue.js +36 -0
- package/esm/Future/MutableFutureQueue.js.map +1 -0
- package/esm/Future/complete.d.ts +4 -0
- package/esm/Future/complete.d.ts.map +1 -0
- package/esm/Future/complete.js +10 -0
- package/esm/Future/complete.js.map +1 -0
- package/esm/Future/index.d.ts +4 -0
- package/esm/Future/index.d.ts.map +1 -0
- package/esm/Future/index.js +4 -0
- package/esm/Future/index.js.map +1 -0
- package/esm/Future/wait.d.ts +4 -0
- package/esm/Future/wait.d.ts.map +1 -0
- package/esm/Future/wait.js +5 -0
- package/esm/Future/wait.js.map +1 -0
- package/esm/Fx/Fx.d.ts +136 -0
- package/esm/Fx/Fx.d.ts.map +1 -0
- package/esm/Fx/Fx.js +173 -0
- package/esm/Fx/Fx.js.map +1 -0
- package/esm/Fx/Instruction.d.ts +202 -0
- package/esm/Fx/Instruction.d.ts.map +1 -0
- package/esm/Fx/Instruction.js +358 -0
- package/esm/Fx/Instruction.js.map +1 -0
- package/esm/Fx/index.d.ts +5 -0
- package/esm/Fx/index.d.ts.map +1 -0
- package/esm/Fx/index.js +5 -0
- package/esm/Fx/index.js.map +1 -0
- package/esm/Fx/join.d.ts +4 -0
- package/esm/Fx/join.d.ts.map +1 -0
- package/esm/Fx/join.js +12 -0
- package/esm/Fx/join.js.map +1 -0
- package/esm/Fx/logging.d.ts +11 -0
- package/esm/Fx/logging.d.ts.map +1 -0
- package/esm/Fx/logging.js +17 -0
- package/esm/Fx/logging.js.map +1 -0
- package/esm/Fx/scoped.d.ts +20 -0
- package/esm/Fx/scoped.d.ts.map +1 -0
- package/esm/Fx/scoped.js +45 -0
- package/esm/Fx/scoped.js.map +1 -0
- package/esm/ImmutableMap/ImmutableMap.d.ts +15 -0
- package/esm/ImmutableMap/ImmutableMap.d.ts.map +1 -0
- package/esm/ImmutableMap/ImmutableMap.js +35 -0
- package/esm/ImmutableMap/ImmutableMap.js.map +1 -0
- package/esm/ImmutableMap/index.d.ts +2 -0
- package/esm/ImmutableMap/index.d.ts.map +1 -0
- package/esm/ImmutableMap/index.js +2 -0
- package/esm/ImmutableMap/index.js.map +1 -0
- package/esm/Layer/Layer.d.ts +14 -0
- package/esm/Layer/Layer.d.ts.map +1 -0
- package/esm/Layer/Layer.js +14 -0
- package/esm/Layer/Layer.js.map +1 -0
- package/esm/Layer/index.d.ts +2 -0
- package/esm/Layer/index.d.ts.map +1 -0
- package/esm/Layer/index.js +2 -0
- package/esm/Layer/index.js.map +1 -0
- package/esm/Logger/Console.d.ts +3 -0
- package/esm/Logger/Console.d.ts.map +1 -0
- package/esm/Logger/Console.js +72 -0
- package/esm/Logger/Console.js.map +1 -0
- package/esm/Logger/LogAnnotation.d.ts +6 -0
- package/esm/Logger/LogAnnotation.d.ts.map +1 -0
- package/esm/Logger/LogAnnotation.js +4 -0
- package/esm/Logger/LogAnnotation.js.map +1 -0
- package/esm/Logger/LogLevel.d.ts +11 -0
- package/esm/Logger/LogLevel.d.ts.map +1 -0
- package/esm/Logger/LogLevel.js +12 -0
- package/esm/Logger/LogLevel.js.map +1 -0
- package/esm/Logger/LogSpan.d.ts +7 -0
- package/esm/Logger/LogSpan.d.ts.map +1 -0
- package/esm/Logger/LogSpan.js +4 -0
- package/esm/Logger/LogSpan.js.map +1 -0
- package/esm/Logger/Logger.d.ts +31 -0
- package/esm/Logger/Logger.d.ts.map +1 -0
- package/esm/Logger/Logger.js +36 -0
- package/esm/Logger/Logger.js.map +1 -0
- package/esm/Logger/index.d.ts +2 -0
- package/esm/Logger/index.d.ts.map +1 -0
- package/esm/Logger/index.js +2 -0
- package/esm/Logger/index.js.map +1 -0
- package/esm/Platform/Platform.d.ts +14 -0
- package/esm/Platform/Platform.d.ts.map +1 -0
- package/esm/Platform/Platform.js +19 -0
- package/esm/Platform/Platform.js.map +1 -0
- package/esm/Platform/TestPlatform.d.ts +7 -0
- package/esm/Platform/TestPlatform.d.ts.map +1 -0
- package/esm/Platform/TestPlatform.js +9 -0
- package/esm/Platform/TestPlatform.js.map +1 -0
- package/esm/Platform/index.d.ts +3 -0
- package/esm/Platform/index.d.ts.map +1 -0
- package/esm/Platform/index.js +3 -0
- package/esm/Platform/index.js.map +1 -0
- package/esm/Ref/Ref.d.ts +40 -0
- package/esm/Ref/Ref.d.ts.map +1 -0
- package/esm/Ref/Ref.js +30 -0
- package/esm/Ref/Ref.js.map +1 -0
- package/esm/Ref/atomic.d.ts +5 -0
- package/esm/Ref/atomic.d.ts.map +1 -0
- package/esm/Ref/atomic.js +16 -0
- package/esm/Ref/atomic.js.map +1 -0
- package/esm/Ref/index.d.ts +3 -0
- package/esm/Ref/index.d.ts.map +1 -0
- package/esm/Ref/index.js +3 -0
- package/esm/Ref/index.js.map +1 -0
- package/esm/Schedule/Decision.d.ts +15 -0
- package/esm/Schedule/Decision.d.ts.map +1 -0
- package/esm/Schedule/Decision.js +34 -0
- package/esm/Schedule/Decision.js.map +1 -0
- package/esm/Schedule/Schedule.d.ts +30 -0
- package/esm/Schedule/Schedule.d.ts.map +1 -0
- package/esm/Schedule/Schedule.js +64 -0
- package/esm/Schedule/Schedule.js.map +1 -0
- package/esm/Schedule/ScheduleState.d.ts +45 -0
- package/esm/Schedule/ScheduleState.d.ts.map +1 -0
- package/esm/Schedule/ScheduleState.js +54 -0
- package/esm/Schedule/ScheduleState.js.map +1 -0
- package/esm/Schedule/index.d.ts +4 -0
- package/esm/Schedule/index.d.ts.map +1 -0
- package/esm/Schedule/index.js +4 -0
- package/esm/Schedule/index.js.map +1 -0
- package/esm/Scheduler/RootScheduler.d.ts +4 -0
- package/esm/Scheduler/RootScheduler.d.ts.map +1 -0
- package/esm/Scheduler/RootScheduler.js +53 -0
- package/esm/Scheduler/RootScheduler.js.map +1 -0
- package/esm/Scheduler/Scheduler.d.ts +14 -0
- package/esm/Scheduler/Scheduler.d.ts.map +1 -0
- package/esm/Scheduler/Scheduler.js +3 -0
- package/esm/Scheduler/Scheduler.js.map +1 -0
- package/esm/Scheduler/callbackScheduler.d.ts +5 -0
- package/esm/Scheduler/callbackScheduler.d.ts.map +1 -0
- package/esm/Scheduler/callbackScheduler.js +32 -0
- package/esm/Scheduler/callbackScheduler.js.map +1 -0
- package/esm/Scheduler/index.d.ts +1 -0
- package/esm/Scheduler/index.d.ts.map +1 -0
- package/esm/Scheduler/index.js +2 -0
- package/esm/Scheduler/index.js.map +1 -0
- package/esm/Scheduler/scheduled.d.ts +10 -0
- package/esm/Scheduler/scheduled.d.ts.map +1 -0
- package/esm/Scheduler/scheduled.js +21 -0
- package/esm/Scheduler/scheduled.js.map +1 -0
- package/esm/Scope/Closeable.d.ts +11 -0
- package/esm/Scope/Closeable.d.ts.map +1 -0
- package/esm/Scope/Closeable.js +20 -0
- package/esm/Scope/Closeable.js.map +1 -0
- package/esm/Scope/GlobalScope.d.ts +3 -0
- package/esm/Scope/GlobalScope.d.ts.map +1 -0
- package/esm/Scope/GlobalScope.js +12 -0
- package/esm/Scope/GlobalScope.js.map +1 -0
- package/esm/Scope/LocalScope.d.ts +24 -0
- package/esm/Scope/LocalScope.d.ts.map +1 -0
- package/esm/Scope/LocalScope.js +70 -0
- package/esm/Scope/LocalScope.js.map +1 -0
- package/esm/Scope/ReleaseMap.d.ts +19 -0
- package/esm/Scope/ReleaseMap.d.ts.map +1 -0
- package/esm/Scope/ReleaseMap.js +62 -0
- package/esm/Scope/ReleaseMap.js.map +1 -0
- package/esm/Scope/Scope.d.ts +11 -0
- package/esm/Scope/Scope.d.ts.map +1 -0
- package/esm/Scope/Scope.js +3 -0
- package/esm/Scope/Scope.js.map +1 -0
- package/esm/Scope/ScopeState.d.ts +19 -0
- package/esm/Scope/ScopeState.d.ts.map +1 -0
- package/esm/Scope/ScopeState.js +24 -0
- package/esm/Scope/ScopeState.js.map +1 -0
- package/esm/Scope/index.d.ts +7 -0
- package/esm/Scope/index.d.ts.map +1 -0
- package/esm/Scope/index.js +7 -0
- package/esm/Scope/index.js.map +1 -0
- package/esm/Semaphore/Semaphore.d.ts +38 -0
- package/esm/Semaphore/Semaphore.d.ts.map +1 -0
- package/esm/Semaphore/Semaphore.js +87 -0
- package/esm/Semaphore/Semaphore.js.map +1 -0
- package/esm/Semaphore/index.d.ts +2 -0
- package/esm/Semaphore/index.d.ts.map +1 -0
- package/esm/Semaphore/index.js +2 -0
- package/esm/Semaphore/index.js.map +1 -0
- package/esm/Service/Id.d.ts +59 -0
- package/esm/Service/Id.d.ts.map +1 -0
- package/esm/Service/Id.js +62 -0
- package/esm/Service/Id.js.map +1 -0
- package/esm/Service/Service.d.ts +20 -0
- package/esm/Service/Service.d.ts.map +1 -0
- package/esm/Service/Service.js +14 -0
- package/esm/Service/Service.js.map +1 -0
- package/esm/Service/index.d.ts +4 -0
- package/esm/Service/index.d.ts.map +1 -0
- package/esm/Service/index.js +4 -0
- package/esm/Service/index.js.map +1 -0
- package/esm/Service/tagged.d.ts +23 -0
- package/esm/Service/tagged.d.ts.map +1 -0
- package/esm/Service/tagged.js +9 -0
- package/esm/Service/tagged.js.map +1 -0
- package/esm/Sink/Sink.d.ts +22 -0
- package/esm/Sink/Sink.d.ts.map +1 -0
- package/esm/Sink/Sink.js +26 -0
- package/esm/Sink/Sink.js.map +1 -0
- package/esm/Sink/index.d.ts +1 -0
- package/esm/Sink/index.d.ts.map +1 -0
- package/esm/Sink/index.js +2 -0
- package/esm/Sink/index.js.map +1 -0
- package/esm/Stack/index.d.ts +20 -0
- package/esm/Stack/index.d.ts.map +1 -0
- package/esm/Stack/index.js +70 -0
- package/esm/Stack/index.js.map +1 -0
- package/esm/StackFrame/StackFrame.d.ts +29 -0
- package/esm/StackFrame/StackFrame.d.ts.map +1 -0
- package/esm/StackFrame/StackFrame.js +35 -0
- package/esm/StackFrame/StackFrame.js.map +1 -0
- package/esm/StackFrame/getStackFrames.d.ts +7 -0
- package/esm/StackFrame/getStackFrames.d.ts.map +1 -0
- package/esm/StackFrame/getStackFrames.js +51 -0
- package/esm/StackFrame/getStackFrames.js.map +1 -0
- package/esm/StackFrame/index.d.ts +3 -0
- package/esm/StackFrame/index.d.ts.map +1 -0
- package/esm/StackFrame/index.js +3 -0
- package/esm/StackFrame/index.js.map +1 -0
- package/esm/StackFrame/parseChromeStack.d.ts +3 -0
- package/esm/StackFrame/parseChromeStack.d.ts.map +1 -0
- package/esm/StackFrame/parseChromeStack.js +32 -0
- package/esm/StackFrame/parseChromeStack.js.map +1 -0
- package/esm/StackFrame/parseGeckoStackFrame.d.ts +3 -0
- package/esm/StackFrame/parseGeckoStackFrame.d.ts.map +1 -0
- package/esm/StackFrame/parseGeckoStackFrame.js +24 -0
- package/esm/StackFrame/parseGeckoStackFrame.js.map +1 -0
- package/esm/Stream/Stream.d.ts +18 -0
- package/esm/Stream/Stream.d.ts.map +1 -0
- package/esm/Stream/Stream.js +4 -0
- package/esm/Stream/Stream.js.map +1 -0
- package/esm/Stream/drain.d.ts +11 -0
- package/esm/Stream/drain.d.ts.map +1 -0
- package/esm/Stream/drain.js +21 -0
- package/esm/Stream/drain.js.map +1 -0
- package/esm/Stream/fromFx.d.ts +4 -0
- package/esm/Stream/fromFx.d.ts.map +1 -0
- package/esm/Stream/fromFx.js +7 -0
- package/esm/Stream/fromFx.js.map +1 -0
- package/esm/Stream/index.d.ts +4 -0
- package/esm/Stream/index.d.ts.map +1 -0
- package/esm/Stream/index.js +4 -0
- package/esm/Stream/index.js.map +1 -0
- package/esm/Supervisor/Supervisor.d.ts +32 -0
- package/esm/Supervisor/Supervisor.d.ts.map +1 -0
- package/esm/Supervisor/Supervisor.js +40 -0
- package/esm/Supervisor/Supervisor.js.map +1 -0
- package/esm/Supervisor/index.d.ts +2 -0
- package/esm/Supervisor/index.d.ts.map +1 -0
- package/esm/Supervisor/index.js +2 -0
- package/esm/Supervisor/index.js.map +1 -0
- package/esm/Tagged/index.d.ts +79 -0
- package/esm/Tagged/index.d.ts.map +1 -0
- package/esm/Tagged/index.js +43 -0
- package/esm/Tagged/index.js.map +1 -0
- package/esm/Time/index.d.ts +95 -0
- package/esm/Time/index.d.ts.map +1 -0
- package/esm/Time/index.js +33 -0
- package/esm/Time/index.js.map +1 -0
- package/esm/Timeline/index.d.ts +27 -0
- package/esm/Timeline/index.d.ts.map +1 -0
- package/esm/Timeline/index.js +98 -0
- package/esm/Timeline/index.js.map +1 -0
- package/esm/Timer/SetTimeoutTimer.d.ts +4 -0
- package/esm/Timer/SetTimeoutTimer.d.ts.map +1 -0
- package/esm/Timer/SetTimeoutTimer.js +14 -0
- package/esm/Timer/SetTimeoutTimer.js.map +1 -0
- package/esm/Timer/TestTimer.d.ts +9 -0
- package/esm/Timer/TestTimer.d.ts.map +1 -0
- package/esm/Timer/TestTimer.js +25 -0
- package/esm/Timer/TestTimer.js.map +1 -0
- package/esm/Timer/Timer.d.ts +11 -0
- package/esm/Timer/Timer.d.ts.map +1 -0
- package/esm/Timer/Timer.js +16 -0
- package/esm/Timer/Timer.js.map +1 -0
- package/esm/Timer/index.d.ts +4 -0
- package/esm/Timer/index.d.ts.map +1 -0
- package/esm/Timer/index.js +4 -0
- package/esm/Timer/index.js.map +1 -0
- package/esm/Trace/Trace.d.ts +38 -0
- package/esm/Trace/Trace.d.ts.map +1 -0
- package/esm/Trace/Trace.js +152 -0
- package/esm/Trace/Trace.js.map +1 -0
- package/esm/Trace/index.d.ts +2 -0
- package/esm/Trace/index.d.ts.map +1 -0
- package/esm/Trace/index.js +2 -0
- package/esm/Trace/index.js.map +1 -0
- package/esm/Tracing/plugin.d.ts +10 -0
- package/esm/Tracing/plugin.d.ts.map +1 -0
- package/esm/Tracing/plugin.js +93 -0
- package/esm/Tracing/plugin.js.map +1 -0
- package/esm/Tracing/vite.d.ts +10 -0
- package/esm/Tracing/vite.d.ts.map +1 -0
- package/esm/Tracing/vite.js +50 -0
- package/esm/Tracing/vite.js.map +1 -0
- package/esm/index.d.ts +35 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +68 -0
- package/esm/index.js.map +1 -0
- package/esm/internal.d.ts +18 -0
- package/esm/internal.d.ts.map +1 -0
- package/esm/internal.js +2 -0
- package/esm/internal.js.map +1 -0
- package/esm/test.d.ts +1 -0
- package/esm/test.d.ts.map +1 -0
- package/esm/test.js +2 -0
- package/esm/test.js.map +1 -0
- package/package.json +1238 -0
- package/readme.md +35 -0
- package/src/Atomic/Atomic.ts +122 -0
- package/src/Atomic/AtomicCounter.ts +23 -0
- package/src/Atomic/index.ts +2 -0
- package/src/Cause/Cause.ts +425 -0
- package/src/Cause/CauseError.ts +55 -0
- package/src/Cause/Renderer.ts +289 -0
- package/src/Cause/index.ts +1 -0
- package/src/Cause/prettyStringify.ts +8 -0
- package/src/Clock/Clock.ts +82 -0
- package/src/Clock/DateClock.ts +9 -0
- package/src/Clock/TestClock.ts +25 -0
- package/src/Clock/index.ts +3 -0
- package/src/Disposable/Disposable.ts +63 -0
- package/src/Disposable/index.ts +1 -0
- package/src/Duration/Duration.ts +125 -0
- package/src/Duration/index.ts +1 -0
- package/src/Env/Env.ts +62 -0
- package/src/Env/index.ts +1 -0
- package/src/Exit/Exit.ts +50 -0
- package/src/Exit/hkt.ts +29 -0
- package/src/Exit/index.ts +2 -0
- package/src/Fiber/Fiber.ts +85 -0
- package/src/Fiber/index.ts +1 -0
- package/src/FiberContext/FiberContext.ts +67 -0
- package/src/FiberContext/index.ts +1 -0
- package/src/FiberId/FiberId.ts +122 -0
- package/src/FiberId/index.ts +1 -0
- package/src/FiberRef/FiberRef.ts +93 -0
- package/src/FiberRef/index.ts +3 -0
- package/src/FiberRef/operations.ts +19 -0
- package/src/FiberRefs/FiberRefs.ts +162 -0
- package/src/FiberRefs/index.ts +1 -0
- package/src/FiberRuntime/FiberRuntime.ts +742 -0
- package/src/FiberRuntime/Frame.ts +28 -0
- package/src/FiberRuntime/index.ts +1 -0
- package/src/FiberStatus/index.ts +37 -0
- package/src/Finalizer/Finalizer.ts +48 -0
- package/src/Finalizer/index.ts +1 -0
- package/src/Future/Future.ts +72 -0
- package/src/Future/MutableFutureQueue.ts +58 -0
- package/src/Future/complete.ts +16 -0
- package/src/Future/index.ts +3 -0
- package/src/Future/wait.ts +8 -0
- package/src/Fx/Fx.test.ts +110 -0
- package/src/Fx/Fx.ts +629 -0
- package/src/Fx/Instruction.ts +468 -0
- package/src/Fx/index.ts +4 -0
- package/src/Fx/join.ts +17 -0
- package/src/Fx/logging.ts +69 -0
- package/src/Fx/scoped.ts +77 -0
- package/src/ImmutableMap/ImmutableMap.ts +55 -0
- package/src/ImmutableMap/index.ts +1 -0
- package/src/Layer/Layer.ts +44 -0
- package/src/Layer/index.ts +1 -0
- package/src/Logger/Console.test.ts +10 -0
- package/src/Logger/Console.ts +85 -0
- package/src/Logger/LogAnnotation.ts +8 -0
- package/src/Logger/LogLevel.ts +10 -0
- package/src/Logger/LogSpan.ts +10 -0
- package/src/Logger/Logger.ts +83 -0
- package/src/Logger/index.ts +1 -0
- package/src/Platform/Platform.ts +42 -0
- package/src/Platform/TestPlatform.ts +14 -0
- package/src/Platform/index.ts +2 -0
- package/src/Ref/Ref.test.ts +34 -0
- package/src/Ref/Ref.ts +76 -0
- package/src/Ref/atomic.ts +33 -0
- package/src/Ref/index.ts +2 -0
- package/src/Schedule/Decision.ts +44 -0
- package/src/Schedule/Schedule.ts +148 -0
- package/src/Schedule/ScheduleState.ts +80 -0
- package/src/Schedule/index.ts +3 -0
- package/src/Scheduler/RootScheduler.ts +84 -0
- package/src/Scheduler/Scheduler.ts +21 -0
- package/src/Scheduler/callbackScheduler.ts +43 -0
- package/src/Scheduler/index.ts +0 -0
- package/src/Scheduler/scheduled.ts +32 -0
- package/src/Scope/Closeable.test.ts +98 -0
- package/src/Scope/Closeable.ts +35 -0
- package/src/Scope/GlobalScope.ts +15 -0
- package/src/Scope/LocalScope.ts +93 -0
- package/src/Scope/ReleaseMap.ts +95 -0
- package/src/Scope/Scope.ts +13 -0
- package/src/Scope/ScopeState.ts +45 -0
- package/src/Scope/index.ts +6 -0
- package/src/Semaphore/Semaphore.ts +110 -0
- package/src/Semaphore/index.ts +1 -0
- package/src/Service/Id.ts +87 -0
- package/src/Service/Service.ts +31 -0
- package/src/Service/index.ts +3 -0
- package/src/Service/tagged.ts +10 -0
- package/src/Sink/Sink.ts +65 -0
- package/src/Sink/index.ts +0 -0
- package/src/Stack/index.ts +88 -0
- package/src/StackFrame/StackFrame.ts +68 -0
- package/src/StackFrame/getStackFrames.test.ts +30 -0
- package/src/StackFrame/getStackFrames.ts +70 -0
- package/src/StackFrame/index.ts +2 -0
- package/src/StackFrame/parseChromeStack.ts +43 -0
- package/src/StackFrame/parseGeckoStackFrame.ts +31 -0
- package/src/Stream/Stream.ts +21 -0
- package/src/Stream/drain.ts +73 -0
- package/src/Stream/fromFx.test.ts +39 -0
- package/src/Stream/fromFx.ts +27 -0
- package/src/Stream/index.ts +3 -0
- package/src/Supervisor/Supervisor.ts +49 -0
- package/src/Supervisor/index.ts +1 -0
- package/src/Tagged/index.ts +127 -0
- package/src/Time/index.ts +62 -0
- package/src/Timeline/index.ts +157 -0
- package/src/Timer/SetTimeoutTimer.ts +19 -0
- package/src/Timer/TestTimer.ts +39 -0
- package/src/Timer/Timer.ts +24 -0
- package/src/Timer/index.ts +3 -0
- package/src/Trace/Trace.ts +210 -0
- package/src/Trace/index.ts +1 -0
- package/src/Tracing/plugin.ts +155 -0
- package/src/Tracing/vite.ts +72 -0
- package/src/index.ts +34 -0
- package/src/internal.ts +33 -0
- package/src/test.ts +0 -0
- package/tools/common.ts +43 -0
- package/tools/generatePackageExports.ts +100 -0
- package/tsconfig.base.json +32 -0
- package/tsconfig.build.cjs.json +26 -0
- package/tsconfig.build.esm.json +30 -0
- package/tsconfig.build.tracing.json +16 -0
- package/tsconfig.json +8 -0
- package/tsconfig.test.json +17 -0
- package/vite.config.ts +28 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callbackScheduler.js","sourceRoot":"","sources":["../../src/Scheduler/callbackScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAG/C,MAAM,UAAU,iBAAiB,CAC/B,KAAY;IAEZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAa,eAAe,CAAC,CAAA;IAC/D,IAAI,UAAU,GAAe,UAAU,CAAC,IAAI,CAAA;IAC5C,IAAI,WAAW,GAAoB,IAAI,CAAA;IAEvC,SAAS,eAAe;QACtB,uDAAuD;QACvD,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;YACtB,UAAU,CAAC,OAAO,EAAE,CAAA;YACpB,WAAW,GAAG,IAAI,CAAA;YAElB,OAAM;SACP;QAED,6DAA6D;QAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;QACnC,MAAM,yBAAyB,GAAG,CAAC,WAAW,IAAI,WAAW,GAAG,IAAI,CAAA;QAEpE,0EAA0E;QAC1E,4BAA4B;QAC5B,IAAI,yBAAyB,EAAE;YAC7B,UAAU,CAAC,OAAO,EAAE,CAAA;YACpB,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;YAC9E,WAAW,GAAG,IAAI,CAAA;SACnB;IACH,CAAC;IAED,SAAS,aAAa;QACpB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QAE/F,eAAe,EAAE,CAAA;IACnB,CAAC;IAED,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAU,CAAA;AACxE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Scheduler/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Scheduler/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as Clock from '@/Clock/Clock.js';
|
|
2
|
+
import { Fx } from '@/Fx/Fx.js';
|
|
3
|
+
import { Schedule } from '@/Schedule/Schedule.js';
|
|
4
|
+
import { ScheduleState } from '@/Schedule/ScheduleState.js';
|
|
5
|
+
import { Delay } from '@/Time/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Runs an Fx on a given Schedule
|
|
8
|
+
*/
|
|
9
|
+
export declare function scheduled<R, E, A>(fx: Fx<R, E, A>, schedule: Schedule, clock: Clock.Clock, runAt: (fx: Fx<R, E, A>, delay: Delay) => Fx<R, E, A>): Fx<R, E, ScheduleState>;
|
|
10
|
+
//# sourceMappingURL=scheduled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled.d.ts","sourceRoot":"","sources":["../../src/Scheduler/scheduled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/B,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACpD,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAiBzB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Fx } from '@/Fx/Fx.js';
|
|
2
|
+
import { ScheduleState } from '@/Schedule/ScheduleState.js';
|
|
3
|
+
/**
|
|
4
|
+
* Runs an Fx on a given Schedule
|
|
5
|
+
*/
|
|
6
|
+
export function scheduled(fx, schedule, clock, runAt) {
|
|
7
|
+
return Fx(function* () {
|
|
8
|
+
let [state, decision] = schedule.step(clock.getCurrentTime(), new ScheduleState());
|
|
9
|
+
while (decision.tag === 'Continue') {
|
|
10
|
+
// Schedule a Task to run the next iteration of this Fx
|
|
11
|
+
yield* runAt(fx, decision.delay);
|
|
12
|
+
// Calculate if we should continue or not
|
|
13
|
+
const [nextState, nextDecision] = schedule.step(clock.getCurrentTime(), state);
|
|
14
|
+
state = nextState;
|
|
15
|
+
decision = nextDecision;
|
|
16
|
+
}
|
|
17
|
+
// Return the final state
|
|
18
|
+
return state;
|
|
19
|
+
}, "Fx" + " node_modules/@typed/fx/src/Scheduler/scheduled.ts:16:12");
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=scheduled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled.js","sourceRoot":"","sources":["../../src/Scheduler/scheduled.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAG3D;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,EAAe,EACf,QAAkB,EAClB,KAAkB,EAClB,KAAqD;IAErD,OAAO,EAAE,CAAC,QAAQ,CAAC;QACjB,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,IAAI,aAAa,EAAE,CAAC,CAAA;QAElF,OAAO,QAAQ,CAAC,GAAG,KAAK,UAAU,EAAE;YAClC,uDAAuD;YACvD,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;YAEhC,yCAAyC;YACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,CAAA;YAC9E,KAAK,GAAG,SAAS,CAAA;YACjB,QAAQ,GAAG,YAAY,CAAA;SACxB;QAED,yBAAyB;QACzB,OAAO,KAAK,CAAA;IACd,CAAC,oEAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Scope } from './Scope.js';
|
|
2
|
+
import { AnyExit, Exit } from '@/Exit/Exit.js';
|
|
3
|
+
import { Of } from '@/Fx/Fx.js';
|
|
4
|
+
import { Service } from '@/Service/index.js';
|
|
5
|
+
export interface Closeable extends Scope {
|
|
6
|
+
readonly close: (exit: Exit<any, any>) => Of<boolean>;
|
|
7
|
+
}
|
|
8
|
+
export declare const Closeable: Service<Closeable>;
|
|
9
|
+
export declare function wait(scope: Closeable): import("@/Fx/Fx.js").Fx<never, never, Exit<any, any>>;
|
|
10
|
+
export declare function closeOrWait(scope: Closeable): (exit: AnyExit) => import("@/Fx/Fx.js").Fx<never, never, Exit<any, any>>;
|
|
11
|
+
//# sourceMappingURL=Closeable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Closeable.d.ts","sourceRoot":"","sources":["../../src/Scope/Closeable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,EAAE,EAA2C,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAA;CACtD;AAED,eAAO,MAAM,SAAS,oBAAkC,CAAA;AAExD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,yDAUpC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,UAC5B,OAAO,2DAMtB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Left, Right } from 'hkt-ts/Either';
|
|
2
|
+
import { pipe } from 'hkt-ts/function';
|
|
3
|
+
import { async, flatMap, fromLazy, lazy, success } from '@/Fx/Fx.js';
|
|
4
|
+
import { Service } from '@/Service/index.js';
|
|
5
|
+
export const Closeable = Service('Closeable');
|
|
6
|
+
export function wait(scope) {
|
|
7
|
+
return async((cb) => {
|
|
8
|
+
if (scope.state.tag === 'Open') {
|
|
9
|
+
const finalizer = scope.ensuring((exit) => fromLazy(() => cb(success(exit))));
|
|
10
|
+
return Left(lazy(() => finalizer(Right(undefined))));
|
|
11
|
+
}
|
|
12
|
+
return Right(success(scope.state.exit));
|
|
13
|
+
}, "async" + " node_modules/@typed/fx/src/Scope/Closeable.ts:17:15");
|
|
14
|
+
}
|
|
15
|
+
export function closeOrWait(scope) {
|
|
16
|
+
return (exit) => {
|
|
17
|
+
return pipe(scope.close(exit), flatMap((closed) => (closed ? success(exit) : wait(scope))));
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=Closeable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Closeable.js","sourceRoot":"","sources":["../../src/Scope/Closeable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAKtC,OAAO,EAAM,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAM5C,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAY,WAAW,CAAC,CAAA;AAExD,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,OAAO,KAAK,CAA+B,CAAC,EAAE,EAAE,EAAE;QAChD,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE;YAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YAE7E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;SACrD;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACzC,CAAC,mEAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAgB;IAC1C,OAAO,CAAC,IAAa,EAAE,EAAE;QACvB,OAAO,IAAI,CACT,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EACjB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5D,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalScope.d.ts","sourceRoot":"","sources":["../../src/Scope/GlobalScope.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAO1C,eAAO,MAAM,WAAW,EAAE,SAKzB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { constant } from 'hkt-ts';
|
|
2
|
+
import { LocalScope } from './LocalScope.js';
|
|
3
|
+
import { Open } from './ScopeState.js';
|
|
4
|
+
import { SequentialStrategy } from '@/Finalizer/Finalizer.js';
|
|
5
|
+
import { success, unit } from '@/Fx/Fx.js';
|
|
6
|
+
export const GlobalScope = {
|
|
7
|
+
state: Open,
|
|
8
|
+
ensuring: constant(constant(unit)),
|
|
9
|
+
fork: (s = SequentialStrategy) => new LocalScope(s),
|
|
10
|
+
close: constant(success(false)),
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=GlobalScope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalScope.js","sourceRoot":"","sources":["../../src/Scope/GlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAGjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAwB,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACnF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAE1C,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,IAA0B,kBAAkB,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;IACzE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAuB;CACtD,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as Maybe from 'hkt-ts/Maybe';
|
|
2
|
+
import { Closeable } from './Closeable.js';
|
|
3
|
+
import { ReleaseMap } from './ReleaseMap.js';
|
|
4
|
+
import { ScopeState } from './ScopeState.js';
|
|
5
|
+
import { AtomicCounter } from '@/Atomic/AtomicCounter.js';
|
|
6
|
+
import { Exit } from '@/Exit/Exit.js';
|
|
7
|
+
import { FinalizationStrategy, Finalizer } from '@/Finalizer/Finalizer.js';
|
|
8
|
+
import { Of } from '@/Fx/Fx.js';
|
|
9
|
+
export declare class LocalScope implements Closeable {
|
|
10
|
+
readonly strategy: FinalizationStrategy;
|
|
11
|
+
protected _state: ScopeState;
|
|
12
|
+
protected _releaseMap: ReleaseMap;
|
|
13
|
+
protected _refCount: AtomicCounter;
|
|
14
|
+
protected _exit: Maybe.Maybe<Exit<any, any>>;
|
|
15
|
+
constructor(strategy: FinalizationStrategy);
|
|
16
|
+
get state(): ScopeState;
|
|
17
|
+
readonly ensuring: (finalizer: Finalizer) => Finalizer;
|
|
18
|
+
readonly fork: (strategy?: FinalizationStrategy) => LocalScope;
|
|
19
|
+
readonly close: (exit: Exit<any, any>) => Of<boolean>;
|
|
20
|
+
protected release: Of<boolean>;
|
|
21
|
+
protected get isClosed(): boolean;
|
|
22
|
+
protected setExit(exit: Exit<any, any>): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=LocalScope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalScope.d.ts","sourceRoot":"","sources":["../../src/Scope/LocalScope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAKrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAyB,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAAE,IAAI,EAA6B,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EAAM,EAAE,EAAuB,MAAM,YAAY,CAAA;AAIxD,qBAAa,UAAW,YAAW,SAAS;IAM9B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB;IALnD,SAAS,CAAC,MAAM,EAAE,UAAU,CAAO;IACnC,SAAS,CAAC,WAAW,aAAgC;IACrD,SAAS,CAAC,SAAS,gBAAuC;IAC1D,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAgB;gBAEvC,QAAQ,EAAE,oBAAoB;IAEnD,IAAI,KAAK,IAAI,UAAU,CAEtB;IAED,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,CAQrD;IAED,QAAQ,CAAC,IAAI,cAAc,oBAAoB,KAAmB,UAAU,CAa3E;IAED,QAAQ,CAAC,KAAK,SAAU,KAAK,GAAG,EAAE,GAAG,CAAC,KAAG,GAAG,OAAO,CAAC,CAOhD;IAIJ,SAAS,CAAC,OAAO,cAkBf;IAEF,SAAS,KAAK,QAAQ,YAErB;IAGD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;CAGvC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as Maybe from 'hkt-ts/Maybe';
|
|
2
|
+
import { First } from 'hkt-ts/Typeclass/Associative';
|
|
3
|
+
import { pipe } from 'hkt-ts/function';
|
|
4
|
+
import { NonNegativeInteger } from 'hkt-ts/number';
|
|
5
|
+
import { ReleaseMap } from './ReleaseMap.js';
|
|
6
|
+
import { Closed, Closing, Open } from './ScopeState.js';
|
|
7
|
+
import { AtomicCounter, decrement, increment } from '@/Atomic/AtomicCounter.js';
|
|
8
|
+
import { makeSequentialAssociative } from '@/Exit/Exit.js';
|
|
9
|
+
import { Fx, lazy, success, unit } from '@/Fx/Fx.js';
|
|
10
|
+
const { concat: concatExits } = makeSequentialAssociative(First);
|
|
11
|
+
export class LocalScope {
|
|
12
|
+
strategy;
|
|
13
|
+
_state = Open;
|
|
14
|
+
_releaseMap = new ReleaseMap(this.strategy);
|
|
15
|
+
_refCount = AtomicCounter(NonNegativeInteger(1));
|
|
16
|
+
_exit = Maybe.Nothing;
|
|
17
|
+
constructor(strategy) {
|
|
18
|
+
this.strategy = strategy;
|
|
19
|
+
}
|
|
20
|
+
get state() {
|
|
21
|
+
return this._state;
|
|
22
|
+
}
|
|
23
|
+
ensuring = (finalizer) => {
|
|
24
|
+
if (this.isClosed) {
|
|
25
|
+
return (() => unit);
|
|
26
|
+
}
|
|
27
|
+
const key = this._releaseMap.add(finalizer);
|
|
28
|
+
return (exit) => this._releaseMap.release(key, exit);
|
|
29
|
+
};
|
|
30
|
+
fork = (strategy = this.strategy) => {
|
|
31
|
+
if (this.isClosed) {
|
|
32
|
+
throw new Error(`Unable to Fork a Closed Scope`);
|
|
33
|
+
}
|
|
34
|
+
const extended = new LocalScope(strategy);
|
|
35
|
+
// Mutually track resources
|
|
36
|
+
extended.ensuring(() => this.release);
|
|
37
|
+
extended.ensuring(this.ensuring(() => extended.release));
|
|
38
|
+
increment(this._refCount);
|
|
39
|
+
return extended;
|
|
40
|
+
};
|
|
41
|
+
close = (exit) => lazy(() => {
|
|
42
|
+
if (!this.isClosed) {
|
|
43
|
+
this.setExit(exit);
|
|
44
|
+
}
|
|
45
|
+
return this.release;
|
|
46
|
+
}, "lazy" + " node_modules/@typed/fx/src/Scope/LocalScope.ts:55:9");
|
|
47
|
+
// Internals
|
|
48
|
+
release = lazy(() => {
|
|
49
|
+
if (decrement(this._refCount) > 0 || Maybe.isNothing(this._exit) || this.isClosed) {
|
|
50
|
+
return success(false);
|
|
51
|
+
}
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
53
|
+
const that = this;
|
|
54
|
+
const exit = this._exit.value;
|
|
55
|
+
return Fx(function* () {
|
|
56
|
+
that._state = Closing(exit);
|
|
57
|
+
yield* that._releaseMap.releaseAll(exit);
|
|
58
|
+
that._state = Closed(exit);
|
|
59
|
+
return true;
|
|
60
|
+
});
|
|
61
|
+
}, "lazy" + " node_modules/@typed/fx/src/Scope/LocalScope.ts:65:27");
|
|
62
|
+
get isClosed() {
|
|
63
|
+
return this.state.tag === 'Closed';
|
|
64
|
+
}
|
|
65
|
+
// Accumulate Exit values
|
|
66
|
+
setExit(exit) {
|
|
67
|
+
this._exit = pipe(this._exit, Maybe.reduce(exit, concatExits), Maybe.Just);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=LocalScope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalScope.js","sourceRoot":"","sources":["../../src/Scope/LocalScope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Maybe } from 'hkt-ts/Maybe';
|
|
2
|
+
import { Exit } from '@/Exit/Exit.js';
|
|
3
|
+
import { FinalizationStrategy, Finalizer, FinalizerKey } from '@/Finalizer/Finalizer.js';
|
|
4
|
+
import { Of } from '@/Fx/Fx.js';
|
|
5
|
+
/**
|
|
6
|
+
* ReleaseMap is an underlying class utilizing in the implementation of Managed. It allows
|
|
7
|
+
* tracking multiple Finalizers and closing them.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ReleaseMap {
|
|
10
|
+
readonly strategy: FinalizationStrategy;
|
|
11
|
+
protected finalizers: Map<FinalizerKey, Finalizer>;
|
|
12
|
+
constructor(strategy: FinalizationStrategy);
|
|
13
|
+
readonly isEmpty: () => boolean;
|
|
14
|
+
readonly add: (finalizer: Finalizer) => FinalizerKey;
|
|
15
|
+
readonly remove: (key: FinalizerKey) => Maybe<Finalizer>;
|
|
16
|
+
readonly release: (key: FinalizerKey, exit: Exit<any, any>) => Of<void>;
|
|
17
|
+
readonly releaseAll: (exit: Exit<any, any>) => Of<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ReleaseMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseMap.d.ts","sourceRoot":"","sources":["../../src/Scope/ReleaseMap.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,KAAK,EAAW,MAAM,cAAc,CAAA;AAGnD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,YAAY,EAEb,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAM,EAAE,EAA8C,MAAM,YAAY,CAAA;AAI/E;;;GAGG;AACH,qBAAa,UAAU;IAGT,QAAQ,CAAC,QAAQ,EAAE,oBAAoB;IAFnD,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAY;gBAEzC,QAAQ,EAAE,oBAAoB;IAEnD,QAAQ,CAAC,OAAO,gBAAmC;IAEnD,QAAQ,CAAC,GAAG,cAAe,SAAS,KAAG,YAAY,CAMlD;IAED,QAAQ,CAAC,MAAM,QAAS,YAAY,KAAG,MAAM,SAAS,CAAC,CAUtD;IAED,QAAQ,CAAC,OAAO,QAAS,YAAY,QAAQ,KAAK,GAAG,EAAE,GAAG,CAAC,KAAG,GAAG,IAAI,CAAC,CAWnE;IAEH,QAAQ,CAAC,UAAU,SAAU,KAAK,GAAG,EAAE,GAAG,CAAC,KAAG,GAAG,IAAI,CAAC,CAgCrD;CACF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-this-alias */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
3
|
+
import { Just, Nothing } from 'hkt-ts/Maybe';
|
|
4
|
+
import { pipe } from 'hkt-ts/function';
|
|
5
|
+
import { FinalizerKey, finalizationStrategyToConcurrency, } from '@/Finalizer/Finalizer.js';
|
|
6
|
+
import { Fx, lazy, mapTo, unit, withConcurrency, zipAll } from '@/Fx/Fx.js';
|
|
7
|
+
let nextId = 0;
|
|
8
|
+
/**
|
|
9
|
+
* ReleaseMap is an underlying class utilizing in the implementation of Managed. It allows
|
|
10
|
+
* tracking multiple Finalizers and closing them.
|
|
11
|
+
*/
|
|
12
|
+
export class ReleaseMap {
|
|
13
|
+
strategy;
|
|
14
|
+
finalizers = new Map();
|
|
15
|
+
constructor(strategy) {
|
|
16
|
+
this.strategy = strategy;
|
|
17
|
+
}
|
|
18
|
+
isEmpty = () => this.finalizers.size === 0;
|
|
19
|
+
add = (finalizer) => {
|
|
20
|
+
const id = FinalizerKey(Symbol(nextId++));
|
|
21
|
+
this.finalizers.set(id, finalizer);
|
|
22
|
+
return id;
|
|
23
|
+
};
|
|
24
|
+
remove = (key) => {
|
|
25
|
+
if (!this.finalizers.has(key)) {
|
|
26
|
+
return Nothing;
|
|
27
|
+
}
|
|
28
|
+
const finalizer = this.finalizers.get(key);
|
|
29
|
+
this.finalizers.delete(key);
|
|
30
|
+
return Just(finalizer);
|
|
31
|
+
};
|
|
32
|
+
release = (key, exit) => lazy(() => this.finalizers.has(key)
|
|
33
|
+
? lazy(() => {
|
|
34
|
+
const finalize = this.finalizers.get(key)(exit);
|
|
35
|
+
this.remove(key);
|
|
36
|
+
return finalize;
|
|
37
|
+
})
|
|
38
|
+
: unit, "lazy" + " node_modules/@typed/fx/src/Scope/ReleaseMap.ts:50:9");
|
|
39
|
+
releaseAll = (exit) => {
|
|
40
|
+
const toBeReleased = () => Array.from(this.finalizers.keys())
|
|
41
|
+
.reverse()
|
|
42
|
+
.map((key) => this.release(key, exit));
|
|
43
|
+
const isEmpty = () => this.isEmpty();
|
|
44
|
+
if (this.strategy.strategy === 'Sequential') {
|
|
45
|
+
return Fx(function* () {
|
|
46
|
+
while (!isEmpty()) {
|
|
47
|
+
for (const fx of toBeReleased()) {
|
|
48
|
+
yield* fx;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}, "Fx" + " node_modules/@typed/fx/src/Scope/ReleaseMap.ts:71:16");
|
|
52
|
+
}
|
|
53
|
+
const releaseAll_ = () => pipe(zipAll(toBeReleased()), withConcurrency(finalizationStrategyToConcurrency(this.strategy)), mapTo(undefined));
|
|
54
|
+
return Fx(function* () {
|
|
55
|
+
yield* releaseAll_();
|
|
56
|
+
while (!isEmpty()) {
|
|
57
|
+
yield* releaseAll_();
|
|
58
|
+
}
|
|
59
|
+
}, "Fx" + " node_modules/@typed/fx/src/Scope/ReleaseMap.ts:87:14");
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=ReleaseMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleaseMap.js","sourceRoot":"","sources":["../../src/Scope/ReleaseMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Closeable } from './Closeable.js';
|
|
2
|
+
import { ScopeState } from './ScopeState.js';
|
|
3
|
+
import { FinalizationStrategy, Finalizer } from '@/Finalizer/Finalizer.js';
|
|
4
|
+
import { Service } from '@/Service/Service.js';
|
|
5
|
+
export interface Scope {
|
|
6
|
+
readonly state: ScopeState;
|
|
7
|
+
readonly ensuring: (finalizer: Finalizer) => Finalizer;
|
|
8
|
+
readonly fork: (strategy?: FinalizationStrategy) => Closeable;
|
|
9
|
+
}
|
|
10
|
+
export declare const Scope: Service<Scope>;
|
|
11
|
+
//# sourceMappingURL=Scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/Scope/Scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,CAAA;IACtD,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,oBAAoB,KAAK,SAAS,CAAA;CAC9D;AAED,eAAO,MAAM,KAAK,gBAA0B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/Scope/Scope.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAQ9C,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAQ,OAAO,CAAC,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Maybe } from 'hkt-ts/Maybe';
|
|
2
|
+
import { Exit } from '@/Exit/Exit.js';
|
|
3
|
+
export declare type ScopeState = Open | Closing | Closed;
|
|
4
|
+
export interface Open {
|
|
5
|
+
readonly tag: 'Open';
|
|
6
|
+
}
|
|
7
|
+
export declare const Open: Open;
|
|
8
|
+
export interface Closing {
|
|
9
|
+
readonly tag: 'Closing';
|
|
10
|
+
readonly exit: Exit<any, any>;
|
|
11
|
+
}
|
|
12
|
+
export declare function Closing(exit: Exit<any, any>): Closing;
|
|
13
|
+
export interface Closed {
|
|
14
|
+
readonly tag: 'Closed';
|
|
15
|
+
readonly exit: Exit<any, any>;
|
|
16
|
+
}
|
|
17
|
+
export declare function Closed(exit: Exit<any, any>): Closed;
|
|
18
|
+
export declare function getExit(state: ScopeState): Maybe<Exit<any, any>>;
|
|
19
|
+
//# sourceMappingURL=ScopeState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScopeState.d.ts","sourceRoot":"","sources":["../../src/Scope/ScopeState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,EAAW,MAAM,cAAc,CAAA;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAErC,oBAAY,UAAU,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,CAAA;AAEhD,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,IAAI,EAAE,IAAsB,CAAA;AAEzC,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAC9B;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAKrD;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAC9B;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAKnD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAQhE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Just, Nothing } from 'hkt-ts/Maybe';
|
|
2
|
+
export const Open = { tag: 'Open' };
|
|
3
|
+
export function Closing(exit) {
|
|
4
|
+
return {
|
|
5
|
+
tag: 'Closing',
|
|
6
|
+
exit,
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export function Closed(exit) {
|
|
10
|
+
return {
|
|
11
|
+
tag: 'Closed',
|
|
12
|
+
exit,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function getExit(state) {
|
|
16
|
+
switch (state.tag) {
|
|
17
|
+
case 'Closing':
|
|
18
|
+
case 'Closed':
|
|
19
|
+
return Just(state.exit);
|
|
20
|
+
default:
|
|
21
|
+
return Nothing;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ScopeState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScopeState.js","sourceRoot":"","sources":["../../src/Scope/ScopeState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAS,OAAO,EAAE,MAAM,cAAc,CAAA;AAUnD,MAAM,CAAC,MAAM,IAAI,GAAS,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;AAOzC,MAAM,UAAU,OAAO,CAAC,IAAoB;IAC1C,OAAO;QACL,GAAG,EAAE,SAAS;QACd,IAAI;KACL,CAAA;AACH,CAAC;AAOD,MAAM,UAAU,MAAM,CAAC,IAAoB;IACzC,OAAO;QACL,GAAG,EAAE,QAAQ;QACb,IAAI;KACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAiB;IACvC,QAAQ,KAAK,CAAC,GAAG,EAAE;QACjB,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzB;YACE,OAAO,OAAO,CAAA;KACjB;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Scope/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Scope/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { NonNegativeInteger } from 'hkt-ts/number';
|
|
2
|
+
import { MutableFutureQueue } from '@/Future/MutableFutureQueue.js';
|
|
3
|
+
import { Fx, Of } from '@/Fx/Fx.js';
|
|
4
|
+
export declare class Semaphore {
|
|
5
|
+
readonly maxPermits: NonNegativeInteger;
|
|
6
|
+
protected waiting: MutableFutureQueue<never, never, void>;
|
|
7
|
+
protected running: number;
|
|
8
|
+
constructor(maxPermits: NonNegativeInteger);
|
|
9
|
+
get available(): NonNegativeInteger;
|
|
10
|
+
get acquired(): NonNegativeInteger;
|
|
11
|
+
readonly prepare: Of<Acquisition>;
|
|
12
|
+
protected release: Of<void>;
|
|
13
|
+
}
|
|
14
|
+
export declare class Acquisition {
|
|
15
|
+
readonly acquire: Of<void>;
|
|
16
|
+
readonly release: Of<void>;
|
|
17
|
+
constructor(acquire: Of<void>, release: Of<void>);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Specialization of Semaphore which only allows 1 permit.
|
|
21
|
+
*/
|
|
22
|
+
export declare class Lock extends Semaphore {
|
|
23
|
+
constructor();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Acquire a permit from a given semaphore, blocking until it is available.
|
|
27
|
+
* Must be used with Fx.scoped() to release the permit at the desired time.
|
|
28
|
+
*/
|
|
29
|
+
export declare function acquirePermit(semaphore: Semaphore): Fx<import("../Scope/Scope.js").Scope, never, void>;
|
|
30
|
+
/**
|
|
31
|
+
* Acquire a permit from a given semaphore, run an Fx, and then release the permit.
|
|
32
|
+
*/
|
|
33
|
+
export declare function acquire(semaphore: Semaphore): <R, E, A>(fx: Fx<R, E, A>) => Fx<Exclude<R, import("../Scope/Scope.js").Scope>, E, A>;
|
|
34
|
+
/**
|
|
35
|
+
* Acquire a permit from a given semaphore, run an Fx, and then release the permit.
|
|
36
|
+
*/
|
|
37
|
+
export declare function acquireFiber(semaphore: Semaphore): <R, E, A>(fx: Fx<R, E, A>) => Fx<Exclude<R, import("../Scope/Scope.js").Scope>, E, A>;
|
|
38
|
+
//# sourceMappingURL=Semaphore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../../src/Semaphore/Semaphore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEnE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAkB,MAAM,YAAY,CAAA;AAGnD,qBAAa,SAAS;IAIR,QAAQ,CAAC,UAAU,EAAE,kBAAkB;IAHnD,SAAS,CAAC,OAAO,yCAA2C;IAC5D,SAAS,CAAC,OAAO,SAAI;gBAEA,UAAU,EAAE,kBAAkB;IAGnD,IAAI,SAAS,IAAI,kBAAkB,CAElC;IAED,IAAI,QAAQ,IAAI,kBAAkB,CAEjC;IAED,QAAQ,CAAC,OAAO,kBAwBd;IAEF,SAAS,CAAC,OAAO,WAMf;CACH;AAED,qBAAa,WAAW;IACV,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;gBAA7C,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,EAAW,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;CACnE;AAED;;GAEG;AACH,qBAAa,IAAK,SAAQ,SAAS;;CAIlC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,sDAMjD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,SAAS,yFAS3C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,yFAShD"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { constant } from 'hkt-ts/function';
|
|
2
|
+
import { NonNegativeInteger } from 'hkt-ts/number';
|
|
3
|
+
import { MutableFutureQueue } from '@/Future/MutableFutureQueue.js';
|
|
4
|
+
import { wait } from '@/Future/wait.js';
|
|
5
|
+
import { Fx, fromLazy, unit } from '@/Fx/Fx.js';
|
|
6
|
+
import { fiberScoped, managed, scoped } from '@/Fx/scoped.js';
|
|
7
|
+
export class Semaphore {
|
|
8
|
+
maxPermits;
|
|
9
|
+
waiting = MutableFutureQueue();
|
|
10
|
+
running = 0;
|
|
11
|
+
constructor(maxPermits) {
|
|
12
|
+
this.maxPermits = maxPermits;
|
|
13
|
+
}
|
|
14
|
+
// Retrieve the number of permits still available
|
|
15
|
+
get available() {
|
|
16
|
+
return NonNegativeInteger(Math.max(0, this.maxPermits - this.running));
|
|
17
|
+
}
|
|
18
|
+
get acquired() {
|
|
19
|
+
return NonNegativeInteger(this.running);
|
|
20
|
+
}
|
|
21
|
+
prepare = fromLazy(() => {
|
|
22
|
+
if (this.available > 0) {
|
|
23
|
+
return new Acquisition(fromLazy(() => {
|
|
24
|
+
this.running++;
|
|
25
|
+
}), this.release);
|
|
26
|
+
}
|
|
27
|
+
const [future] = this.waiting.waitFor(1);
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
29
|
+
const that = this;
|
|
30
|
+
const acquisition = new Acquisition(Fx(function* () {
|
|
31
|
+
yield* wait(future);
|
|
32
|
+
that.running++;
|
|
33
|
+
}), this.release);
|
|
34
|
+
return acquisition;
|
|
35
|
+
}, "fromLazy" + " node_modules/@typed/fx/src/Semaphore/Semaphore.ts:24:30");
|
|
36
|
+
release = fromLazy(() => {
|
|
37
|
+
this.running = Math.max(0, this.running - 1);
|
|
38
|
+
if (this.waiting.size() > 0) {
|
|
39
|
+
this.waiting.next(unit);
|
|
40
|
+
}
|
|
41
|
+
}, "fromLazy" + " node_modules/@typed/fx/src/Semaphore/Semaphore.ts:50:31");
|
|
42
|
+
}
|
|
43
|
+
export class Acquisition {
|
|
44
|
+
acquire;
|
|
45
|
+
release;
|
|
46
|
+
constructor(acquire, release) {
|
|
47
|
+
this.acquire = acquire;
|
|
48
|
+
this.release = release;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Specialization of Semaphore which only allows 1 permit.
|
|
53
|
+
*/
|
|
54
|
+
export class Lock extends Semaphore {
|
|
55
|
+
constructor() {
|
|
56
|
+
super(NonNegativeInteger(1));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Acquire a permit from a given semaphore, blocking until it is available.
|
|
61
|
+
* Must be used with Fx.scoped() to release the permit at the desired time.
|
|
62
|
+
*/
|
|
63
|
+
export function acquirePermit(semaphore) {
|
|
64
|
+
return Fx(function* () {
|
|
65
|
+
const { acquire, release } = yield* semaphore.prepare;
|
|
66
|
+
return yield* managed(acquire, constant(release));
|
|
67
|
+
}, "Fx" + " node_modules/@typed/fx/src/Semaphore/Semaphore.ts:77:12");
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Acquire a permit from a given semaphore, run an Fx, and then release the permit.
|
|
71
|
+
*/
|
|
72
|
+
export function acquire(semaphore) {
|
|
73
|
+
return (fx) => scoped(Fx(function* () {
|
|
74
|
+
yield* acquirePermit(semaphore);
|
|
75
|
+
return yield* fx;
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Acquire a permit from a given semaphore, run an Fx, and then release the permit.
|
|
80
|
+
*/
|
|
81
|
+
export function acquireFiber(semaphore) {
|
|
82
|
+
return (fx) => fiberScoped(Fx(function* () {
|
|
83
|
+
yield* acquirePermit(semaphore);
|
|
84
|
+
return yield* fx;
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=Semaphore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Semaphore.js","sourceRoot":"","sources":["../../src/Semaphore/Semaphore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Semaphore/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Semaphore/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
|