@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
package/src/Exit/Exit.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { pipe } from 'hkt-ts'
|
|
2
|
+
import * as Either from 'hkt-ts/Either'
|
|
3
|
+
import { Associative } from 'hkt-ts/Typeclass'
|
|
4
|
+
import { Eq } from 'hkt-ts/Typeclass/Eq'
|
|
5
|
+
import { Identity } from 'hkt-ts/Typeclass/Identity'
|
|
6
|
+
|
|
7
|
+
import * as Cause from '@/Cause/Cause.js'
|
|
8
|
+
import type * as FiberId from '@/FiberId/FiberId.js'
|
|
9
|
+
|
|
10
|
+
export type Exit<E, A> = Either.Either<Cause.Cause<E>, A>
|
|
11
|
+
|
|
12
|
+
export type AnyExit = Exit<any, any>
|
|
13
|
+
|
|
14
|
+
export const success = <A>(value: A): Exit<never, A> => Either.Right(value)
|
|
15
|
+
|
|
16
|
+
export const interrupt = (fiberId: FiberId.FiberId): Exit<never, never> =>
|
|
17
|
+
Either.Left(Cause.interrupted(fiberId))
|
|
18
|
+
|
|
19
|
+
export const unexpected = (error: unknown): Exit<never, never> =>
|
|
20
|
+
Either.Left(Cause.unexpected(error))
|
|
21
|
+
|
|
22
|
+
export const expected = <E>(error: E): Exit<E, never> => Either.Left(Cause.expected(error))
|
|
23
|
+
|
|
24
|
+
export const fromEither = <E, A>(either: Either.Either<E, A>): Exit<E, A> =>
|
|
25
|
+
pipe(
|
|
26
|
+
either,
|
|
27
|
+
Either.mapLeft((e) => Cause.expected(e)),
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
export const makeParallelAssociative = <A, E = never>(
|
|
31
|
+
A: Associative.Associative<A>,
|
|
32
|
+
): Associative.Associative<Exit<E, A>> =>
|
|
33
|
+
Either.makeAssociative(Cause.makeParallelAssociative<E>(), A)
|
|
34
|
+
|
|
35
|
+
export const makeSequentialAssociative = <A, E = never>(
|
|
36
|
+
A: Associative.Associative<A>,
|
|
37
|
+
): Associative.Associative<Exit<E, A>> =>
|
|
38
|
+
Either.makeAssociative(Cause.makeSequentialAssociative<E>(), A)
|
|
39
|
+
|
|
40
|
+
export const makeParallelIdentity = <A, E = never>(A: Identity<A>): Identity<Exit<E, A>> =>
|
|
41
|
+
Either.makeIdentity(Cause.makeParallelAssociative<E>(), A)
|
|
42
|
+
|
|
43
|
+
export const makeSequentialIdentity = <A, E = never>(A: Identity<A>): Identity<Exit<E, A>> =>
|
|
44
|
+
Either.makeIdentity(Cause.makeSequentialAssociative<E>(), A)
|
|
45
|
+
|
|
46
|
+
export const makeParallelBottom = <E>() => Either.makeBottom(Cause.makeParallelIdentity<E>())
|
|
47
|
+
export const makeSequentialBottom = <E>() => Either.makeBottom(Cause.makeSequentialIdentity<E>())
|
|
48
|
+
|
|
49
|
+
export const makeEq = <E, A>(E: Eq<E>, A: Eq<A>): Eq<Exit<E, A>> =>
|
|
50
|
+
Either.makeEq(Cause.makeEq(E), A)
|
package/src/Exit/hkt.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { HKT2, Params, flow, pipe } from 'hkt-ts'
|
|
2
|
+
import { Left, Right, match } from 'hkt-ts/Either'
|
|
3
|
+
import * as B from 'hkt-ts/Typeclass/Bicovariant'
|
|
4
|
+
import * as C from 'hkt-ts/Typeclass/Covariant'
|
|
5
|
+
|
|
6
|
+
import { Exit } from './Exit.js'
|
|
7
|
+
|
|
8
|
+
import * as Cause from '@/Cause/index.js'
|
|
9
|
+
|
|
10
|
+
export interface ExitHKT extends HKT2 {
|
|
11
|
+
readonly type: Exit<this[Params.E], this[Params.A]>
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const Bicovariant: B.Bicovariant2<ExitHKT> = {
|
|
15
|
+
bimap: (f, g) => (exit) => pipe(exit, match(flow(Cause.map(f), Left), flow(g, Right))),
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const bimap = Bicovariant.bimap
|
|
19
|
+
export const mapLeft = B.mapLeft(Bicovariant)
|
|
20
|
+
export const map = B.map(Bicovariant)
|
|
21
|
+
|
|
22
|
+
export const Covariant: C.Covariant2<ExitHKT> = {
|
|
23
|
+
map,
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const bindTo = C.bindTo(Covariant)
|
|
27
|
+
export const flap = C.flap(Covariant)
|
|
28
|
+
export const mapTo = C.mapTo(Covariant)
|
|
29
|
+
export const tupled = C.tupled(Covariant)
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { flow, pipe } from 'hkt-ts/function'
|
|
2
|
+
|
|
3
|
+
import type { Exit } from '@/Exit/Exit.js'
|
|
4
|
+
import type { FiberContext } from '@/FiberContext/FiberContext.js'
|
|
5
|
+
import type { FiberId } from '@/FiberId/FiberId.js'
|
|
6
|
+
// eslint-disable-next-line import/no-cycle
|
|
7
|
+
import { join } from '@/FiberRefs/FiberRefs.js'
|
|
8
|
+
import type { FiberStatus } from '@/FiberStatus/index.js'
|
|
9
|
+
import { Fx, Of, flatMap, fork, fromLazy, getFiberContext } from '@/Fx/Fx.js'
|
|
10
|
+
import type { Trace } from '@/Trace/Trace.js'
|
|
11
|
+
|
|
12
|
+
export type Fiber<E, A> = Live<E, A> | Synthetic<E, A>
|
|
13
|
+
|
|
14
|
+
export type AnyFiber = Fiber<any, any> | Fiber<never, never> | Fiber<any, never> | Fiber<never, any>
|
|
15
|
+
|
|
16
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
17
|
+
export type ErrorsOf<T> = [T] extends [Fiber<infer E, infer _A>] ? E : never
|
|
18
|
+
|
|
19
|
+
export type OutputOf<T> = [T] extends [Fiber<infer _E, infer A>] ? A : never
|
|
20
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
21
|
+
|
|
22
|
+
export interface Live<E, A> {
|
|
23
|
+
readonly tag: 'Live'
|
|
24
|
+
readonly id: FiberId.Live
|
|
25
|
+
readonly context: FiberContext
|
|
26
|
+
readonly status: Of<FiberStatus>
|
|
27
|
+
readonly exit: Of<Exit<E, A>>
|
|
28
|
+
readonly trace: Of<Trace>
|
|
29
|
+
readonly interruptAs: (id: FiberId) => Of<Exit<E, A>>
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type AnyLiveFiber = Live<any, any> | Live<never, never> | Live<any, never> | Live<never, any>
|
|
33
|
+
|
|
34
|
+
export const Live = <E, A>(params: Omit<Live<E, A>, 'tag'>): Live<E, A> => ({
|
|
35
|
+
tag: 'Live',
|
|
36
|
+
...params,
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
export interface Synthetic<E, A> {
|
|
40
|
+
readonly tag: 'Synthetic'
|
|
41
|
+
readonly id: FiberId.Synthetic
|
|
42
|
+
readonly exit: Of<Exit<E, A>>
|
|
43
|
+
readonly inheritFiberRefs: Of<void>
|
|
44
|
+
readonly interruptAs: (id: FiberId) => Of<Exit<E, A>>
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export const Synthetic = <E, A>(params: Omit<Synthetic<E, A>, 'tag'>): Synthetic<E, A> => ({
|
|
48
|
+
tag: 'Synthetic',
|
|
49
|
+
...params,
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
export const match =
|
|
53
|
+
<E, A, B, C>(onLive: (live: Live<E, A>) => B, onSynthetic: (synthetic: Synthetic<E, A>) => C) =>
|
|
54
|
+
(fiber: Fiber<E, A>) =>
|
|
55
|
+
fiber.tag === 'Live' ? onLive(fiber) : onSynthetic(fiber)
|
|
56
|
+
|
|
57
|
+
export const inheritFiberRefs = <E, A>(fiber: Fiber<E, A>) =>
|
|
58
|
+
Fx(function* () {
|
|
59
|
+
if (fiber.tag === 'Synthetic') {
|
|
60
|
+
return yield* fiber.inheritFiberRefs
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const { fiberRefs } = yield* getFiberContext
|
|
64
|
+
|
|
65
|
+
yield* fromLazy(() => join(fiberRefs, fiber.context.fiberRefs))
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
export const interruptAs =
|
|
69
|
+
(id: FiberId) =>
|
|
70
|
+
<E, A>(fiber: Fiber<E, A>) =>
|
|
71
|
+
fiber.interruptAs(id)
|
|
72
|
+
|
|
73
|
+
export const interruptAsFork = (id: FiberId) => flow(interruptAs(id), fork)
|
|
74
|
+
|
|
75
|
+
export const interrupt = <E, A>(fiber: Fiber<E, A>) =>
|
|
76
|
+
pipe(
|
|
77
|
+
getFiberContext,
|
|
78
|
+
flatMap(({ id }) => interruptAs(id)(fiber)),
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
export const interruptFork = <E, A>(fiber: Fiber<E, A>) =>
|
|
82
|
+
pipe(
|
|
83
|
+
getFiberContext,
|
|
84
|
+
flatMap(({ id }) => interruptAsFork(id)(fiber)),
|
|
85
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Fiber.js'
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Just, Maybe, Nothing } from 'hkt-ts/Maybe'
|
|
2
|
+
|
|
3
|
+
import { Renderer, defaultRenderer } from '@/Cause/Renderer.js'
|
|
4
|
+
import * as FiberId from '@/FiberId/FiberId.js'
|
|
5
|
+
import { FiberRefs } from '@/FiberRefs/FiberRefs.js'
|
|
6
|
+
import { SequentialStrategy } from '@/Finalizer/Finalizer.js'
|
|
7
|
+
import { Console } from '@/Logger/Console.js'
|
|
8
|
+
import { Logger } from '@/Logger/Logger.js'
|
|
9
|
+
import { Platform } from '@/Platform/Platform.js'
|
|
10
|
+
import { Closeable } from '@/Scope/Closeable.js'
|
|
11
|
+
import { LocalScope } from '@/Scope/LocalScope.js'
|
|
12
|
+
import { None, Supervisor } from '@/Supervisor/Supervisor.js'
|
|
13
|
+
|
|
14
|
+
export interface FiberContext {
|
|
15
|
+
readonly id: FiberId.Live
|
|
16
|
+
readonly platform: Platform
|
|
17
|
+
readonly fiberRefs: FiberRefs
|
|
18
|
+
readonly scope: Closeable
|
|
19
|
+
readonly supervisor: Supervisor<any>
|
|
20
|
+
readonly logger: Logger<string, any>
|
|
21
|
+
readonly renderer: Renderer<any>
|
|
22
|
+
readonly parent: Maybe<FiberContext>
|
|
23
|
+
|
|
24
|
+
readonly fork: (overrides?: Partial<FiberContext>) => FiberContext
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function FiberContext(params: Partial<Omit<FiberContext, 'fork'>> = {}): FiberContext {
|
|
28
|
+
const {
|
|
29
|
+
platform = Platform(),
|
|
30
|
+
id = FiberId.Live(platform),
|
|
31
|
+
fiberRefs = FiberRefs(),
|
|
32
|
+
scope = new LocalScope(SequentialStrategy),
|
|
33
|
+
supervisor = None,
|
|
34
|
+
logger = Console,
|
|
35
|
+
renderer = defaultRenderer,
|
|
36
|
+
parent = Nothing,
|
|
37
|
+
} = params
|
|
38
|
+
|
|
39
|
+
const context: FiberContext = {
|
|
40
|
+
id,
|
|
41
|
+
platform,
|
|
42
|
+
fiberRefs,
|
|
43
|
+
scope,
|
|
44
|
+
supervisor,
|
|
45
|
+
logger,
|
|
46
|
+
renderer,
|
|
47
|
+
parent,
|
|
48
|
+
fork: (overrides?: Partial<FiberContext>) => fork(context, overrides),
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return context
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function fork(
|
|
55
|
+
context: FiberContext,
|
|
56
|
+
overrides?: Partial<Omit<FiberContext, 'fork'>>,
|
|
57
|
+
): FiberContext {
|
|
58
|
+
return FiberContext({
|
|
59
|
+
id: overrides?.id ?? FiberId.Live(context.platform),
|
|
60
|
+
platform: overrides?.platform ?? context.platform.fork(),
|
|
61
|
+
fiberRefs: overrides?.fiberRefs ?? context.fiberRefs.fork(),
|
|
62
|
+
scope: overrides?.scope ?? context.scope.fork(),
|
|
63
|
+
supervisor: overrides?.supervisor ?? None,
|
|
64
|
+
logger: overrides?.logger ?? context.logger,
|
|
65
|
+
parent: overrides?.parent ?? Just(context),
|
|
66
|
+
})
|
|
67
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FiberContext.js'
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { pipe } from 'hkt-ts'
|
|
2
|
+
import * as A from 'hkt-ts/Array'
|
|
3
|
+
import * as ASC from 'hkt-ts/Typeclass/Associative'
|
|
4
|
+
import * as D from 'hkt-ts/Typeclass/Debug'
|
|
5
|
+
import * as E from 'hkt-ts/Typeclass/Eq'
|
|
6
|
+
import * as I from 'hkt-ts/Typeclass/Identity'
|
|
7
|
+
import * as O from 'hkt-ts/Typeclass/Ord'
|
|
8
|
+
import * as N from 'hkt-ts/number'
|
|
9
|
+
import * as S from 'hkt-ts/string'
|
|
10
|
+
|
|
11
|
+
import { increment } from '@/Atomic/AtomicCounter.js'
|
|
12
|
+
import { Clock, timeToDate } from '@/Clock/Clock.js'
|
|
13
|
+
import { Platform } from '@/Platform/Platform.js'
|
|
14
|
+
import { Time } from '@/Time/index.js'
|
|
15
|
+
|
|
16
|
+
export type FiberId = FiberId.None | FiberId.Live | FiberId.Synthetic
|
|
17
|
+
|
|
18
|
+
export namespace FiberId {
|
|
19
|
+
export interface None {
|
|
20
|
+
readonly tag: 'None'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const None: None = { tag: 'None' }
|
|
24
|
+
|
|
25
|
+
export class Live {
|
|
26
|
+
static readonly tag = 'Live'
|
|
27
|
+
readonly tag = Live.tag
|
|
28
|
+
constructor(
|
|
29
|
+
readonly sequenceNumber: N.NonNegativeInteger, // Incrementing SequenceNumber guaranteeing uniqueness
|
|
30
|
+
readonly clock: Clock, // The Clock used to create FiberId
|
|
31
|
+
readonly startTime: Time, // The monotonic Time at which this Fiber started, relative to its Clock.
|
|
32
|
+
) {}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export class Synthetic {
|
|
36
|
+
static readonly tag = 'Synthetic'
|
|
37
|
+
readonly tag = Synthetic.tag
|
|
38
|
+
|
|
39
|
+
constructor(readonly fiberIds: ReadonlyArray<FiberId>) {}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const None = FiberId.None
|
|
44
|
+
export type None = FiberId.None
|
|
45
|
+
|
|
46
|
+
export type Live = FiberId.Live
|
|
47
|
+
export const Live = ({ sequenceNumber, timer }: Platform): FiberId.Live =>
|
|
48
|
+
new FiberId.Live(increment(sequenceNumber), timer, timer.getCurrentTime())
|
|
49
|
+
|
|
50
|
+
export type Synthetic = FiberId.Synthetic
|
|
51
|
+
export const Synthetic = (fiberIds: ReadonlyArray<FiberId>): FiberId.Synthetic =>
|
|
52
|
+
new FiberId.Synthetic(fiberIds)
|
|
53
|
+
|
|
54
|
+
export const match =
|
|
55
|
+
<A, B, C>(
|
|
56
|
+
onNone: () => A,
|
|
57
|
+
onLive: (id: FiberId.Live) => B,
|
|
58
|
+
onSynthetic: (id: FiberId.Synthetic) => C,
|
|
59
|
+
) =>
|
|
60
|
+
(id: FiberId): A | B | C => {
|
|
61
|
+
switch (id.tag) {
|
|
62
|
+
case 'None':
|
|
63
|
+
return onNone()
|
|
64
|
+
case 'Live':
|
|
65
|
+
return onLive(id)
|
|
66
|
+
case 'Synthetic':
|
|
67
|
+
return onSynthetic(id)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export const Eq: E.Eq<FiberId> = E.sum<FiberId>()('tag')({
|
|
72
|
+
None: E.struct({ tag: E.string }),
|
|
73
|
+
Live: E.struct({
|
|
74
|
+
tag: E.string,
|
|
75
|
+
sequenceNumber: N.NonNegativeIntegerEq,
|
|
76
|
+
startTime: Time.makeEq(N.Eq),
|
|
77
|
+
}),
|
|
78
|
+
Synthetic: E.struct({ tag: E.string, fiberIds: A.makeEq(E.lazy(() => Eq)) }),
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
export const Ord: O.Ord<FiberId> = O.sum<FiberId>()('tag')(
|
|
82
|
+
pipe(
|
|
83
|
+
N.Ord,
|
|
84
|
+
O.contramap((a) => (a === 'None' ? 0 : a === 'Live' ? 1 : 2)),
|
|
85
|
+
),
|
|
86
|
+
)({
|
|
87
|
+
None: O.struct<FiberId.None>({ tag: O.Static })(S.Ord),
|
|
88
|
+
Live: O.struct({
|
|
89
|
+
sequenceNumber: N.NonNegativeIntegerOrd,
|
|
90
|
+
startTime: Time.makeOrd(N.Ord),
|
|
91
|
+
tag: O.Static,
|
|
92
|
+
})(S.Ord),
|
|
93
|
+
Synthetic: O.struct<FiberId.Synthetic>({
|
|
94
|
+
fiberIds: A.makeOrd(O.lazy(() => Ord)),
|
|
95
|
+
tag: O.Static,
|
|
96
|
+
})(S.Ord),
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
export const Associative: ASC.Associative<FiberId> = {
|
|
100
|
+
concat: (f, s) => (f.tag === None.tag ? s : s.tag === None.tag ? f : Synthetic([f, s])),
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export const Identity: I.Identity<FiberId> = {
|
|
104
|
+
...Associative,
|
|
105
|
+
id: None,
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export const Debug: D.Debug<FiberId> = D.sum<FiberId>()('tag')({
|
|
109
|
+
None: {
|
|
110
|
+
debug: () => 'FiberId.None',
|
|
111
|
+
},
|
|
112
|
+
Live: {
|
|
113
|
+
debug: (id) => `Fiber #${id.sequenceNumber} (started at ${idToIsoString(id)})`,
|
|
114
|
+
},
|
|
115
|
+
Synthetic: {
|
|
116
|
+
debug: (id) => `Synthetic Fiber\n -${id.fiberIds.map(debug).join('\n -')}`,
|
|
117
|
+
},
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
export const debug = Debug.debug
|
|
121
|
+
|
|
122
|
+
const idToIsoString = (id: FiberId.Live) => timeToDate(id.startTime)(id.clock).toISOString()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FiberId.js'
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { identity, pipe } from 'hkt-ts'
|
|
2
|
+
import { Just, Maybe } from 'hkt-ts/Maybe'
|
|
3
|
+
import { Second } from 'hkt-ts/Typeclass/Concat'
|
|
4
|
+
import { DeepEquals, Eq } from 'hkt-ts/Typeclass/Eq'
|
|
5
|
+
import { NonNegativeInteger } from 'hkt-ts/number'
|
|
6
|
+
|
|
7
|
+
// eslint-disable-next-line import/no-cycle
|
|
8
|
+
import { Env } from '@/Env/Env.js'
|
|
9
|
+
import type { Live } from '@/Fiber/Fiber.js'
|
|
10
|
+
import { Fx, getFiberContext, map, now } from '@/Fx/Fx.js'
|
|
11
|
+
import { ImmutableMap } from '@/ImmutableMap/ImmutableMap.js'
|
|
12
|
+
import { LogAnnotation } from '@/Logger/LogAnnotation.js'
|
|
13
|
+
import { LogSpan } from '@/Logger/LogSpan.js'
|
|
14
|
+
import { Semaphore } from '@/Semaphore/Semaphore.js'
|
|
15
|
+
import { Service } from '@/Service/Service.js'
|
|
16
|
+
import { EmptyTrace, Trace } from '@/Trace/Trace.js'
|
|
17
|
+
|
|
18
|
+
export class FiberRef<R, E, A> {
|
|
19
|
+
constructor(
|
|
20
|
+
readonly initial: Fx<R, E, A>,
|
|
21
|
+
readonly fork: (a: A) => Maybe<A> = Just,
|
|
22
|
+
readonly join: (current: A, incoming: A) => A = Second.concat,
|
|
23
|
+
readonly Eq: Eq<A> = DeepEquals,
|
|
24
|
+
) {}
|
|
25
|
+
|
|
26
|
+
static make = make
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
30
|
+
export type ResourcesOf<T> = T extends FiberRef<infer _R, infer _E, infer _A> ? _R : never
|
|
31
|
+
export type ErrorsOf<T> = T extends FiberRef<infer _R, infer _E, infer _A> ? _E : never
|
|
32
|
+
export type OutputOf<T> = T extends FiberRef<infer _R, infer _E, infer _A> ? _A : never
|
|
33
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
34
|
+
|
|
35
|
+
export type AnyFiberRef =
|
|
36
|
+
| FiberRef<any, any, any>
|
|
37
|
+
| FiberRef<never, never, any>
|
|
38
|
+
| FiberRef<never, any, any>
|
|
39
|
+
| FiberRef<any, never, any>
|
|
40
|
+
|
|
41
|
+
export function make<R, E, A>(initial: Fx<R, E, A>, params: Params<A> = {}): FiberRef<R, E, A> {
|
|
42
|
+
return new FiberRef(initial, params.fork, params.join, params.Eq)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export type Params<A> = {
|
|
46
|
+
readonly fork?: (a: A) => Maybe<A>
|
|
47
|
+
readonly join?: (current: A, incoming: A) => A
|
|
48
|
+
readonly Eq?: Eq<A>
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export const CurrentEnv = make(
|
|
52
|
+
pipe(
|
|
53
|
+
getFiberContext,
|
|
54
|
+
map((c) => Env(c.fiberRefs)),
|
|
55
|
+
),
|
|
56
|
+
{
|
|
57
|
+
join: identity, // Always keep the parent Fiber's concurrency level
|
|
58
|
+
},
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
export const CurrentConcurrencyLevel = make(
|
|
62
|
+
now<Semaphore>(new Semaphore(NonNegativeInteger(Infinity))),
|
|
63
|
+
{
|
|
64
|
+
join: identity, // Always keep the parent Fiber's concurrency level
|
|
65
|
+
},
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
export const CurrentInterruptStatus = make(now<boolean>(true), {
|
|
69
|
+
join: identity, // Always keep the parent Fiber's interrupt status
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
export const CurrentTrace = make(now<Trace>(EmptyTrace), {
|
|
73
|
+
join: identity, // Always keep the parent Fiber's trace
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
export const Layers = FiberRef.make(
|
|
77
|
+
now(ImmutableMap<Service<any>, readonly [() => Live<never, any>, Maybe<Live<never, any>>]>()),
|
|
78
|
+
{
|
|
79
|
+
join: identity, // Always keep the parent Fiber's layers
|
|
80
|
+
},
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
export const Services = FiberRef.make(now(ImmutableMap<Service<any>, any>()), {
|
|
84
|
+
join: identity, // Always keep the parent Fiber's services
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
export const CurrentLogSpans = FiberRef.make(now(ImmutableMap<string, LogSpan>()), {
|
|
88
|
+
join: identity,
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
export const CurrentLogAnnotations = FiberRef.make(now(ImmutableMap<string, LogAnnotation>()), {
|
|
92
|
+
join: identity,
|
|
93
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { deleteFiberRef, getFiberRef, modifyFiberRef } from '@/Fx/Fx.js'
|
|
2
|
+
|
|
3
|
+
export const get = getFiberRef
|
|
4
|
+
export const modify = modifyFiberRef
|
|
5
|
+
export const remove = deleteFiberRef
|
|
6
|
+
|
|
7
|
+
export { remove as delete }
|
|
8
|
+
|
|
9
|
+
export const set = <A>(value: A) => modify(() => [value, value])
|
|
10
|
+
export const getAndSet = <A>(value: A) => modify((a) => [a, value])
|
|
11
|
+
|
|
12
|
+
export const update = <A>(f: (a: A) => A) =>
|
|
13
|
+
modify((a: A) => {
|
|
14
|
+
const a2 = f(a)
|
|
15
|
+
|
|
16
|
+
return [a2, a2]
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
export const getAndUpdate = <A>(f: (a: A) => A) => modify((a: A) => [a, f(a)])
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { flow, pipe } from 'hkt-ts'
|
|
2
|
+
import * as Maybe from 'hkt-ts/Maybe'
|
|
3
|
+
import { NonNegativeInteger } from 'hkt-ts/number'
|
|
4
|
+
|
|
5
|
+
import { Atomic } from '@/Atomic/Atomic.js'
|
|
6
|
+
// eslint-disable-next-line import/no-cycle
|
|
7
|
+
import * as FiberRef from '@/FiberRef/FiberRef.js'
|
|
8
|
+
import { ImmutableMap } from '@/ImmutableMap/ImmutableMap.js'
|
|
9
|
+
import { Semaphore } from '@/Semaphore/index.js'
|
|
10
|
+
import * as Stack from '@/Stack/index.js'
|
|
11
|
+
import { EmptyTrace, Trace } from '@/Trace/Trace.js'
|
|
12
|
+
|
|
13
|
+
export interface FiberRefs extends Iterable<readonly [FiberRef.AnyFiberRef, any]> {
|
|
14
|
+
readonly locals: Atomic<ImmutableMap<FiberRef.AnyFiberRef, Stack.Stack<any>>>
|
|
15
|
+
readonly fork: () => FiberRefs
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const defaultFiberLocals = (
|
|
19
|
+
concurrencyLevel: NonNegativeInteger = NonNegativeInteger(Infinity),
|
|
20
|
+
interruptStatus = true,
|
|
21
|
+
trace: Trace = EmptyTrace,
|
|
22
|
+
) =>
|
|
23
|
+
new Map<FiberRef.AnyFiberRef, Stack.Stack<any>>([
|
|
24
|
+
[FiberRef.CurrentConcurrencyLevel, new Stack.Stack(new Semaphore(concurrencyLevel))],
|
|
25
|
+
[FiberRef.CurrentInterruptStatus, new Stack.Stack(interruptStatus)],
|
|
26
|
+
[FiberRef.CurrentTrace, new Stack.Stack(trace)],
|
|
27
|
+
[FiberRef.Services, new Stack.Stack(ImmutableMap())],
|
|
28
|
+
[FiberRef.Layers, new Stack.Stack(ImmutableMap())],
|
|
29
|
+
[FiberRef.CurrentLogSpans, new Stack.Stack(ImmutableMap())],
|
|
30
|
+
[FiberRef.CurrentLogAnnotations, new Stack.Stack(ImmutableMap())],
|
|
31
|
+
])
|
|
32
|
+
|
|
33
|
+
export function FiberRefs(
|
|
34
|
+
locals: ImmutableMap<FiberRef.AnyFiberRef, Stack.Stack<any>> = ImmutableMap(defaultFiberLocals()),
|
|
35
|
+
): FiberRefs {
|
|
36
|
+
const atomic = Atomic(locals)
|
|
37
|
+
const fiberRefs: FiberRefs = {
|
|
38
|
+
locals: atomic,
|
|
39
|
+
fork: () => fork(fiberRefs),
|
|
40
|
+
*[Symbol.iterator]() {
|
|
41
|
+
for (const [key, stack] of atomic.get()) {
|
|
42
|
+
yield [key, stack.value] as const
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return fiberRefs
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function maybeGetFiberRefStack<R, E, A>(fiberRef: FiberRef.FiberRef<R, E, A>) {
|
|
51
|
+
return (fiberRefs: FiberRefs) =>
|
|
52
|
+
fiberRefs.locals.get().get(fiberRef) as Maybe.Maybe<Stack.Stack<A>>
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function maybeGetFiberRefValue<R, E, A>(fiberRef: FiberRef.FiberRef<R, E, A>) {
|
|
56
|
+
return flow(
|
|
57
|
+
maybeGetFiberRefStack(fiberRef),
|
|
58
|
+
Maybe.map((s) => s.value),
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function setFiberRef<R, E, A>(fiberRef: FiberRef.FiberRef<R, E, A>, value: A) {
|
|
63
|
+
return (fiberRefs: FiberRefs): A =>
|
|
64
|
+
fiberRefs.locals.modify((locals) => {
|
|
65
|
+
const curr = maybeGetFiberRefStack(fiberRef)(fiberRefs)
|
|
66
|
+
|
|
67
|
+
return [
|
|
68
|
+
value,
|
|
69
|
+
locals.set(
|
|
70
|
+
fiberRef,
|
|
71
|
+
pipe(
|
|
72
|
+
curr,
|
|
73
|
+
Maybe.match(
|
|
74
|
+
() => new Stack.Stack(value),
|
|
75
|
+
(c) => c.replace(() => value),
|
|
76
|
+
),
|
|
77
|
+
),
|
|
78
|
+
),
|
|
79
|
+
]
|
|
80
|
+
})
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function setFiberRefLocally<R, E, A>(fiberRef: FiberRef.FiberRef<R, E, A>, value: A) {
|
|
84
|
+
return (fiberRefs: FiberRefs): A =>
|
|
85
|
+
fiberRefs.locals.modify((locals) => {
|
|
86
|
+
const curr = maybeGetFiberRefStack(fiberRef)(fiberRefs)
|
|
87
|
+
|
|
88
|
+
return [
|
|
89
|
+
value,
|
|
90
|
+
locals.set(
|
|
91
|
+
fiberRef,
|
|
92
|
+
pipe(
|
|
93
|
+
curr,
|
|
94
|
+
Maybe.match(
|
|
95
|
+
() => new Stack.Stack(value),
|
|
96
|
+
(c) => c.push(value),
|
|
97
|
+
),
|
|
98
|
+
),
|
|
99
|
+
),
|
|
100
|
+
]
|
|
101
|
+
})
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function popLocalFiberRef<R, E, A>(fiberRef: FiberRef.FiberRef<R, E, A>) {
|
|
105
|
+
return (fiberRefs: FiberRefs): Maybe.Maybe<A> =>
|
|
106
|
+
fiberRefs.locals.modify((locals) => {
|
|
107
|
+
const curr = maybeGetFiberRefStack(fiberRef)(fiberRefs)
|
|
108
|
+
|
|
109
|
+
if (Maybe.isNothing(curr)) {
|
|
110
|
+
return [Maybe.Nothing, locals.remove(fiberRef)]
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const prev = curr.value.pop()
|
|
114
|
+
|
|
115
|
+
return [
|
|
116
|
+
pipe(
|
|
117
|
+
curr,
|
|
118
|
+
Maybe.map((c) => c.value),
|
|
119
|
+
),
|
|
120
|
+
prev ? locals.set(fiberRef, prev) : locals.remove(fiberRef),
|
|
121
|
+
]
|
|
122
|
+
})
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export function deleteFiberRef<R, E, A>(fiberRef: FiberRef.FiberRef<R, E, A>) {
|
|
126
|
+
return (fiberRefs: FiberRefs): Maybe.Maybe<Stack.Stack<A>> =>
|
|
127
|
+
fiberRefs.locals.modify((locals) => {
|
|
128
|
+
const curr = maybeGetFiberRefStack(fiberRef)(fiberRefs)
|
|
129
|
+
|
|
130
|
+
return [curr, locals.remove(fiberRef)]
|
|
131
|
+
})
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export function fork(fiberRefs: FiberRefs): FiberRefs {
|
|
135
|
+
const updated = new Map<FiberRef.AnyFiberRef, Stack.Stack<any>>()
|
|
136
|
+
|
|
137
|
+
for (const [key, stack] of fiberRefs.locals.get()) {
|
|
138
|
+
const forked = key.fork(stack.value)
|
|
139
|
+
|
|
140
|
+
if (Maybe.isJust(forked)) {
|
|
141
|
+
updated.set(
|
|
142
|
+
key,
|
|
143
|
+
stack.replace(() => forked.value),
|
|
144
|
+
)
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return FiberRefs(ImmutableMap(updated))
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export function join(first: FiberRefs, second: FiberRefs): void {
|
|
152
|
+
const updated = new Map<FiberRef.AnyFiberRef, Stack.Stack<any>>(first.locals.get())
|
|
153
|
+
const incoming = second.locals.get()
|
|
154
|
+
|
|
155
|
+
for (const [key, stack] of incoming) {
|
|
156
|
+
const current = updated.get(key)
|
|
157
|
+
|
|
158
|
+
updated.set(key, current ? current.replace((a) => key.join(a, stack.value)) : stack)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
first.locals.set(ImmutableMap(updated))
|
|
162
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FiberRefs.js'
|