@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/readme.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# @typed/fx
|
|
2
|
+
|
|
3
|
+
Fx is a generator-based abstraction for describing applications that run within Fibers.
|
|
4
|
+
The Fiber runtime interprets these generators into running applications that process side-effects.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- Concurrency - never encounter a race condition, control the level of concurrency at any level.
|
|
10
|
+
- Resources Safety - release unused resources at just the right time, even in the event of failures.
|
|
11
|
+
- Resilient - type-safe errors that will never be swallowed.
|
|
12
|
+
- Interruptable - Cancel Fx you're no longer interested in, or mark regions as uninterruptible to avoid errors.
|
|
13
|
+
- Dependency injection - Use the type-checker to ensure your programs are properly constructed.
|
|
14
|
+
- Streams - Push-based streams, modeled after [@most/core](https://github.com/mostjs/core), with full Fx integration.
|
|
15
|
+
- Tracing - Use our TypeScript/Vite plugin to use the TypeScript compiler to augment your stack traces with more useful information.
|
|
16
|
+
- Logging - Built-in Loggers w/ configurable backends
|
|
17
|
+
- Metrics - Track metrics occurring throughout your application.
|
|
18
|
+
- State Management - Manage and synchronize state effortlessly across all your running processes.
|
|
19
|
+
|
|
20
|
+
## Target
|
|
21
|
+
|
|
22
|
+
This library is primarily designed for front-end applications (including server-side rendering), that is to say,
|
|
23
|
+
bundle size, parse time, memory constraints, etc. are of great concern. There will always be a balancing act between
|
|
24
|
+
these metrics, ergonomics, and feature-set. We'll attempt to tread these lines as best we can, but Fx is highly feature-rich
|
|
25
|
+
as it is, and can be used to build many many more abstractions that are not yet available as 3rd party plugins.
|
|
26
|
+
|
|
27
|
+
The full library, and its dependencies, are about 50kb minified + gzipped.
|
|
28
|
+
However, it is provided as ES modules and is highly tree-shakeable. Take only what you need.
|
|
29
|
+
|
|
30
|
+
## Come Back Soon
|
|
31
|
+
|
|
32
|
+
There's not a lot else to see here yet, this library is under very active development and will continue to be updated with more docs and
|
|
33
|
+
information on how to use it. Check back soon!
|
|
34
|
+
|
|
35
|
+
If you're interested in chatting about the project come on over and join us on [Discord](https://discord.com/invite/kpPHEvkaAv)!
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { identity, pipe } from 'hkt-ts'
|
|
2
|
+
import { Endomorphism } from 'hkt-ts/Endomorphism'
|
|
3
|
+
import { Just, Maybe, Nothing } from 'hkt-ts/Maybe'
|
|
4
|
+
import { Associative, First } from 'hkt-ts/Typeclass/Associative'
|
|
5
|
+
import { Eq } from 'hkt-ts/Typeclass/Eq'
|
|
6
|
+
import { Identity } from 'hkt-ts/Typeclass/Identity'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Atomic represents an a mutable reference to immutable data
|
|
10
|
+
* that can be modified and joined back together.
|
|
11
|
+
*/
|
|
12
|
+
export interface Atomic<A> extends Identity<A> {
|
|
13
|
+
readonly get: () => A
|
|
14
|
+
readonly modify: <B>(f: (a: A) => readonly [B, A]) => B
|
|
15
|
+
readonly set: (a: A) => A
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Construct an Atomic with an initial value, and optionally an Associative instance.
|
|
20
|
+
*/
|
|
21
|
+
export function Atomic<A>(initial: A, A: Associative<A> = First): Atomic<A> {
|
|
22
|
+
let current = initial
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
id: initial,
|
|
26
|
+
concat: A.concat,
|
|
27
|
+
get: () => current,
|
|
28
|
+
modify: (f) => {
|
|
29
|
+
const [b, a] = f(current)
|
|
30
|
+
current = a
|
|
31
|
+
return b
|
|
32
|
+
},
|
|
33
|
+
set: (a) => (current = a),
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Get the current value of an Atomic
|
|
39
|
+
*/
|
|
40
|
+
export function get<A>(atomic: Atomic<A>): A {
|
|
41
|
+
return atomic.get()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Atomically view and update the state of an Atomic.
|
|
46
|
+
*/
|
|
47
|
+
export function modify<A, B>(f: (a: A) => readonly [B, A]) {
|
|
48
|
+
return (atomic: Atomic<A>): B => atomic.modify(f)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Set the value of Atomic but return the previous state.
|
|
53
|
+
*/
|
|
54
|
+
export const getAndSet =
|
|
55
|
+
<A, B extends A>(updated: B) =>
|
|
56
|
+
(atomic: Atomic<A>): A =>
|
|
57
|
+
atomic.modify((a) => [a, updated])
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Set the state of an Atomic and return that value.
|
|
61
|
+
*/
|
|
62
|
+
export const set =
|
|
63
|
+
<A, B extends A>(updated: B) =>
|
|
64
|
+
(atomic: Atomic<A>): A =>
|
|
65
|
+
atomic.modify(() => [updated, updated])
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Apply an Endomorphism to update the current state of an Atomic.
|
|
69
|
+
*/
|
|
70
|
+
export const update =
|
|
71
|
+
<A>(f: Endomorphism<A>) =>
|
|
72
|
+
(atomic: Atomic<A>): A =>
|
|
73
|
+
atomic.modify((a) => {
|
|
74
|
+
const updated = f(a)
|
|
75
|
+
|
|
76
|
+
return [updated, updated]
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Apply an Endomorphism to update the current state of an Atomic, but
|
|
81
|
+
* return the previous state.
|
|
82
|
+
*/
|
|
83
|
+
export const getAndUpdate =
|
|
84
|
+
<A>(f: Endomorphism<A>) =>
|
|
85
|
+
(atomic: Atomic<A>): A =>
|
|
86
|
+
atomic.modify((a) => {
|
|
87
|
+
const updated = f(a)
|
|
88
|
+
|
|
89
|
+
return [a, updated]
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Join together the values contained within 2 Atomics.
|
|
94
|
+
*/
|
|
95
|
+
export function join<A>(second: Atomic<A>) {
|
|
96
|
+
return (first: Atomic<A>): A =>
|
|
97
|
+
pipe(
|
|
98
|
+
first,
|
|
99
|
+
update((a) => first.concat(a, second.get())),
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function fork<A>(f: Endomorphism<A> = identity) {
|
|
104
|
+
return (first: Atomic<A>): Atomic<A> => Atomic<A>(f(first.get()), first)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Using an Eq instance, compare the expected current value with
|
|
109
|
+
* the actual value contained within an Atomic and update the Atomic
|
|
110
|
+
* with the updated value. If the expected current value does not match
|
|
111
|
+
* the existing value, a `Maybe.Nothing` is returned.
|
|
112
|
+
*/
|
|
113
|
+
export function compareAndSwap<A>(E: Eq<A>) {
|
|
114
|
+
return (current: A, updated: A) =>
|
|
115
|
+
(atomic: Atomic<A>): Maybe<A> => {
|
|
116
|
+
if (E.equals(atomic.get(), current)) {
|
|
117
|
+
return Just(atomic.set(updated))
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return Nothing
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NonNegativeInteger, NonNegativeIntegerAssociativeSum } from 'hkt-ts/number'
|
|
2
|
+
|
|
3
|
+
import { Atomic, getAndUpdate, update } from './Atomic.js'
|
|
4
|
+
|
|
5
|
+
export interface AtomicCounter extends Atomic<NonNegativeInteger> {}
|
|
6
|
+
|
|
7
|
+
export function AtomicCounter(initial: NonNegativeInteger = NonNegativeInteger(0)): AtomicCounter {
|
|
8
|
+
return Atomic(initial, NonNegativeIntegerAssociativeSum)
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const increment: (counter: AtomicCounter) => NonNegativeInteger = update(
|
|
12
|
+
(n: NonNegativeInteger) => NonNegativeInteger(n + 1),
|
|
13
|
+
)
|
|
14
|
+
export const decrement: (counter: AtomicCounter) => NonNegativeInteger = update(
|
|
15
|
+
(n: NonNegativeInteger) => NonNegativeInteger(Math.max(0, n - 1)),
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
export const getAndIncrement: (counter: AtomicCounter) => NonNegativeInteger = getAndUpdate(
|
|
19
|
+
(n: NonNegativeInteger) => NonNegativeInteger(n + 1),
|
|
20
|
+
)
|
|
21
|
+
export const getAndDecrement: (counter: AtomicCounter) => NonNegativeInteger = getAndUpdate(
|
|
22
|
+
(n: NonNegativeInteger) => NonNegativeInteger(Math.max(0, n - 1)),
|
|
23
|
+
)
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
import { HKT, Kind, Maybe, Params, identity, pipe } from 'hkt-ts'
|
|
2
|
+
import { Associative } from 'hkt-ts/Typeclass'
|
|
3
|
+
import * as AB from 'hkt-ts/Typeclass/AssociativeBoth'
|
|
4
|
+
import * as AF from 'hkt-ts/Typeclass/AssociativeFlatten'
|
|
5
|
+
import { Bottom1 } from 'hkt-ts/Typeclass/Bottom'
|
|
6
|
+
import { Compact1 } from 'hkt-ts/Typeclass/Compact'
|
|
7
|
+
import * as C from 'hkt-ts/Typeclass/Covariant'
|
|
8
|
+
import * as D from 'hkt-ts/Typeclass/Debug'
|
|
9
|
+
import * as EQ from 'hkt-ts/Typeclass/Eq'
|
|
10
|
+
import * as FIM from 'hkt-ts/Typeclass/FilterMap'
|
|
11
|
+
import * as FM from 'hkt-ts/Typeclass/FoldMap'
|
|
12
|
+
import * as FE from 'hkt-ts/Typeclass/ForEach'
|
|
13
|
+
import { Identity } from 'hkt-ts/Typeclass/Identity'
|
|
14
|
+
import * as IB from 'hkt-ts/Typeclass/IdentityBoth'
|
|
15
|
+
import { IdentityFlatten1 } from 'hkt-ts/Typeclass/IdentityFlatten'
|
|
16
|
+
import * as ORD from 'hkt-ts/Typeclass/Ord'
|
|
17
|
+
import * as T from 'hkt-ts/Typeclass/Top'
|
|
18
|
+
import * as N from 'hkt-ts/number'
|
|
19
|
+
|
|
20
|
+
import { Renderer, defaultRenderer, prettyPrint } from './Renderer.js'
|
|
21
|
+
|
|
22
|
+
import * as FiberId from '@/FiberId/index.js'
|
|
23
|
+
import * as Trace from '@/Trace/Trace.js'
|
|
24
|
+
|
|
25
|
+
export type Cause<E> =
|
|
26
|
+
| Empty
|
|
27
|
+
| Interrupted
|
|
28
|
+
| Unexpected
|
|
29
|
+
| Expected<E>
|
|
30
|
+
| Sequential<E, E>
|
|
31
|
+
| Parallel<E, E>
|
|
32
|
+
| Traced<E>
|
|
33
|
+
|
|
34
|
+
export type AnyCause = Cause<any> | Cause<never>
|
|
35
|
+
|
|
36
|
+
export interface Empty {
|
|
37
|
+
readonly tag: 'Empty'
|
|
38
|
+
}
|
|
39
|
+
export const Empty: Empty = { tag: 'Empty' }
|
|
40
|
+
|
|
41
|
+
export class Interrupted {
|
|
42
|
+
readonly tag = 'Interrupted'
|
|
43
|
+
constructor(readonly fiberId: FiberId.FiberId) {}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export const interrupted = (fiberId: FiberId.FiberId): Cause<never> => new Interrupted(fiberId)
|
|
47
|
+
|
|
48
|
+
export class Unexpected {
|
|
49
|
+
readonly tag = 'Unexpected'
|
|
50
|
+
constructor(readonly error: unknown) {}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export const unexpected = (error: unknown): Cause<never> => new Unexpected(error)
|
|
54
|
+
|
|
55
|
+
export class Expected<E> {
|
|
56
|
+
readonly tag = 'Expected'
|
|
57
|
+
constructor(readonly error: E) {}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export const expected = <E>(error: E) => new Expected(error)
|
|
61
|
+
|
|
62
|
+
export class Sequential<E1, E2> {
|
|
63
|
+
readonly tag = 'Sequential'
|
|
64
|
+
constructor(readonly left: Cause<E1>, readonly right: Cause<E2>) {}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export const sequential = <E1, E2>(left: Cause<E1>, right: Cause<E2>): Cause<E1 | E2> =>
|
|
68
|
+
new Sequential(left, right)
|
|
69
|
+
|
|
70
|
+
export class Parallel<E1, E2> {
|
|
71
|
+
readonly tag = 'Parallel'
|
|
72
|
+
constructor(readonly left: Cause<E1>, readonly right: Cause<E2>) {}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const parallel = <E1, E2>(left: Cause<E1>, right: Cause<E2>): Cause<E1 | E2> =>
|
|
76
|
+
new Parallel(left, right)
|
|
77
|
+
|
|
78
|
+
export class Traced<E> {
|
|
79
|
+
readonly tag = 'Traced'
|
|
80
|
+
constructor(readonly cause: Cause<E>, readonly trace: Trace.Trace) {}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export const traced =
|
|
84
|
+
(trace: Trace.Trace) =>
|
|
85
|
+
<E>(cause: Cause<E>): Cause<E> =>
|
|
86
|
+
new Traced(cause, trace)
|
|
87
|
+
|
|
88
|
+
export const makeParallelAssociative = <E>(): Associative.Associative<Cause<E>> => ({
|
|
89
|
+
concat: (left, right) =>
|
|
90
|
+
left.tag === Empty.tag ? right : right.tag === Empty.tag ? left : new Parallel(left, right),
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
export const makeParallelIdentity = <E>(): Identity<Cause<E>> => ({
|
|
94
|
+
...makeParallelAssociative<E>(),
|
|
95
|
+
id: Empty,
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
export const makeSequentialAssociative = <E>(): Associative.Associative<Cause<E>> => ({
|
|
99
|
+
concat: (left, right) =>
|
|
100
|
+
left.tag === Empty.tag ? right : right.tag === Empty.tag ? left : new Sequential(left, right),
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
export const makeSequentialIdentity = <E>(): Identity<Cause<E>> => ({
|
|
104
|
+
...makeSequentialAssociative<E>(),
|
|
105
|
+
id: Empty,
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
export const makeEq = <E>(Eq: EQ.Eq<E>): EQ.Eq<Cause<E>> => {
|
|
109
|
+
const eq = EQ.sum<Cause<E>>()('tag')({
|
|
110
|
+
Empty: EQ.AlwaysEqual,
|
|
111
|
+
Interrupted: EQ.struct({
|
|
112
|
+
tag: EQ.AlwaysEqual,
|
|
113
|
+
fiberId: FiberId.Eq,
|
|
114
|
+
}),
|
|
115
|
+
Unexpected: EQ.struct({
|
|
116
|
+
tag: EQ.AlwaysEqual,
|
|
117
|
+
error: EQ.DeepEquals,
|
|
118
|
+
}),
|
|
119
|
+
Expected: EQ.struct({
|
|
120
|
+
tag: EQ.AlwaysEqual,
|
|
121
|
+
error: Eq,
|
|
122
|
+
}),
|
|
123
|
+
Sequential: EQ.struct({
|
|
124
|
+
tag: EQ.AlwaysEqual,
|
|
125
|
+
left: EQ.lazy(() => eq),
|
|
126
|
+
right: EQ.lazy(() => eq),
|
|
127
|
+
}),
|
|
128
|
+
Parallel: EQ.struct({
|
|
129
|
+
tag: EQ.AlwaysEqual,
|
|
130
|
+
left: EQ.lazy(() => eq),
|
|
131
|
+
right: EQ.lazy(() => eq),
|
|
132
|
+
}),
|
|
133
|
+
Traced: EQ.struct({
|
|
134
|
+
tag: EQ.AlwaysEqual,
|
|
135
|
+
cause: EQ.lazy(() => eq),
|
|
136
|
+
trace: Trace.Eq,
|
|
137
|
+
}),
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
return eq
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const tagOrd = pipe(
|
|
144
|
+
N.Ord,
|
|
145
|
+
ORD.contramap((x: Cause<any>['tag']) => {
|
|
146
|
+
switch (x) {
|
|
147
|
+
case 'Empty':
|
|
148
|
+
return 0
|
|
149
|
+
case 'Unexpected':
|
|
150
|
+
return 1
|
|
151
|
+
case 'Expected':
|
|
152
|
+
return 2
|
|
153
|
+
case 'Interrupted':
|
|
154
|
+
return 3
|
|
155
|
+
case 'Parallel':
|
|
156
|
+
return 4
|
|
157
|
+
case 'Sequential':
|
|
158
|
+
return 5
|
|
159
|
+
case 'Traced':
|
|
160
|
+
return 6
|
|
161
|
+
}
|
|
162
|
+
}),
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
export const makeOrd = <E>(Eq: ORD.Ord<E>): ORD.Ord<Cause<E>> => {
|
|
166
|
+
const ord = ORD.sum<Cause<E>>()('tag')(tagOrd)({
|
|
167
|
+
Empty: ORD.Static,
|
|
168
|
+
Interrupted: ORD.struct({
|
|
169
|
+
fiberId: FiberId.Ord,
|
|
170
|
+
tag: ORD.Static,
|
|
171
|
+
})(ORD.Static),
|
|
172
|
+
Unexpected: ORD.struct({
|
|
173
|
+
error: ORD.Static,
|
|
174
|
+
tag: ORD.Static,
|
|
175
|
+
})(ORD.Static),
|
|
176
|
+
Expected: ORD.struct({
|
|
177
|
+
error: Eq,
|
|
178
|
+
tag: ORD.Static,
|
|
179
|
+
})(ORD.Static),
|
|
180
|
+
Sequential: ORD.struct({
|
|
181
|
+
left: ORD.lazy(() => ord),
|
|
182
|
+
right: ORD.lazy(() => ord),
|
|
183
|
+
tag: ORD.Static,
|
|
184
|
+
})(ORD.Static),
|
|
185
|
+
Parallel: ORD.struct({
|
|
186
|
+
left: ORD.lazy(() => ord),
|
|
187
|
+
right: ORD.lazy(() => ord),
|
|
188
|
+
tag: ORD.Static,
|
|
189
|
+
})(ORD.Static),
|
|
190
|
+
Traced: ORD.struct({
|
|
191
|
+
cause: ORD.lazy(() => ord),
|
|
192
|
+
trace: Trace.Ord,
|
|
193
|
+
tag: ORD.Static,
|
|
194
|
+
})(ORD.Static),
|
|
195
|
+
})
|
|
196
|
+
|
|
197
|
+
return ord
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export function shouldRethrow(error: Cause<any>): boolean {
|
|
201
|
+
return error.tag === 'Unexpected' || (error.tag === 'Traced' && shouldRethrow(error.cause))
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export const match =
|
|
205
|
+
<A, B, C, E, D, F, G, H>(
|
|
206
|
+
onEmpty: () => A,
|
|
207
|
+
onInterrupted: (fiberId: FiberId.FiberId) => B,
|
|
208
|
+
onUnexpected: (error: unknown) => C,
|
|
209
|
+
onExpected: (e: E) => D,
|
|
210
|
+
onSequential: (left: Cause<E>, right: Cause<E>) => F,
|
|
211
|
+
onParallel: (left: Cause<E>, right: Cause<E>) => G,
|
|
212
|
+
onTraced: (cause: Cause<E>, trace: Trace.Trace) => H,
|
|
213
|
+
) =>
|
|
214
|
+
(cause: Cause<E>): A | B | C | D | F | G | H => {
|
|
215
|
+
switch (cause.tag) {
|
|
216
|
+
case 'Empty':
|
|
217
|
+
return onEmpty()
|
|
218
|
+
case 'Interrupted':
|
|
219
|
+
return onInterrupted(cause.fiberId)
|
|
220
|
+
case 'Unexpected':
|
|
221
|
+
return onUnexpected(cause.error)
|
|
222
|
+
case 'Expected':
|
|
223
|
+
return onExpected(cause.error)
|
|
224
|
+
case 'Sequential':
|
|
225
|
+
return onSequential(cause.left, cause.right)
|
|
226
|
+
case 'Parallel':
|
|
227
|
+
return onParallel(cause.left, cause.right)
|
|
228
|
+
case 'Traced':
|
|
229
|
+
return onTraced(cause.cause, cause.trace)
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export interface CauseHKT extends HKT {
|
|
234
|
+
readonly type: Cause<this[Params.A]>
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export const Covariant: C.Covariant1<CauseHKT> = {
|
|
238
|
+
map: function map<A, B>(f: (a: A) => B): (cause: Cause<A>) => Cause<B> {
|
|
239
|
+
return match(
|
|
240
|
+
() => Empty,
|
|
241
|
+
(id) => new Interrupted(id),
|
|
242
|
+
(error) => new Unexpected(error),
|
|
243
|
+
(e) => new Expected(f(e)),
|
|
244
|
+
(left, right) => new Sequential(map(f)(left), map(f)(right)),
|
|
245
|
+
(left, right) => new Parallel(map(f)(left), map(f)(right)),
|
|
246
|
+
(cause, trace) => new Traced(map(f)(cause), trace),
|
|
247
|
+
)
|
|
248
|
+
},
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
export const map = Covariant.map
|
|
252
|
+
export const bindTo = C.bindTo(Covariant)
|
|
253
|
+
export const flap = C.flap(Covariant)
|
|
254
|
+
export const mapTo = C.mapTo(Covariant)
|
|
255
|
+
export const tupled = C.tupled(Covariant)
|
|
256
|
+
|
|
257
|
+
export const Top: T.Top1<CauseHKT> = {
|
|
258
|
+
get top() {
|
|
259
|
+
return expected([])
|
|
260
|
+
},
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export const top = Top.top
|
|
264
|
+
export const fromValue = T.makeFromValue<CauseHKT>({ ...Top, ...Covariant })
|
|
265
|
+
export const fromLazy = T.makeFromLazy<CauseHKT>({ ...Top, ...Covariant })
|
|
266
|
+
|
|
267
|
+
export const Bottom: Bottom1<CauseHKT> = {
|
|
268
|
+
bottom: Empty,
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
export const bottom = Bottom.bottom
|
|
272
|
+
|
|
273
|
+
export const Flatten: AF.AssociativeFlatten1<CauseHKT> = {
|
|
274
|
+
flatten: match(
|
|
275
|
+
() => Empty,
|
|
276
|
+
(id) => new Interrupted(id),
|
|
277
|
+
(error) => new Unexpected(error),
|
|
278
|
+
identity,
|
|
279
|
+
(left, right) => new Sequential(flatten(left), flatten(right)),
|
|
280
|
+
(left, right) => new Parallel(flatten(left), flatten(right)),
|
|
281
|
+
(cause, trace) => new Traced(flatten(cause), trace),
|
|
282
|
+
),
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export const flatten = Flatten.flatten
|
|
286
|
+
export const flatMap = AF.flatMap<CauseHKT>({ ...Flatten, ...Covariant })
|
|
287
|
+
export const bind = AF.bind<CauseHKT>({ ...Flatten, ...Covariant })
|
|
288
|
+
|
|
289
|
+
export const IdentityFlatten: IdentityFlatten1<CauseHKT> = {
|
|
290
|
+
...Flatten,
|
|
291
|
+
...Top,
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
export const AssociativeBoth: AB.AssociativeBoth1<CauseHKT> = AF.makeAssociativeBoth<CauseHKT>({
|
|
295
|
+
...Flatten,
|
|
296
|
+
...Covariant,
|
|
297
|
+
})
|
|
298
|
+
|
|
299
|
+
export const zipLeft = AB.zipLeft<CauseHKT>({ ...AssociativeBoth, ...Covariant })
|
|
300
|
+
export const zipRight = AB.zipRight<CauseHKT>({ ...AssociativeBoth, ...Covariant })
|
|
301
|
+
|
|
302
|
+
export const IdentityBoth: IB.IdentityBoth1<CauseHKT> = {
|
|
303
|
+
...AssociativeBoth,
|
|
304
|
+
...Top,
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
export const tuple = IB.tuple<CauseHKT>({ ...IdentityBoth, ...Covariant })
|
|
308
|
+
export const struct = IB.struct<CauseHKT>({ ...IdentityBoth, ...Covariant })
|
|
309
|
+
|
|
310
|
+
export const ForEach: FE.ForEach1<CauseHKT> = {
|
|
311
|
+
map,
|
|
312
|
+
forEach: <T2 extends HKT>(IBC: IB.IdentityBoth<T2> & C.Covariant<T2>) => {
|
|
313
|
+
const tuple_ = IB.tuple(IBC)
|
|
314
|
+
const fromValue_ = T.makeFromValue(IBC)
|
|
315
|
+
|
|
316
|
+
const forEach_ =
|
|
317
|
+
<A, B>(f: (a: A) => Kind<T2, B>) =>
|
|
318
|
+
(cause: Cause<A>): Kind<T2, Cause<B>> => {
|
|
319
|
+
if (cause.tag === 'Expected') {
|
|
320
|
+
return IBC.map(expected)(f(cause.error))
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
if (cause.tag === 'Sequential') {
|
|
324
|
+
return pipe(
|
|
325
|
+
tuple_(forEach_(f)(cause.left), forEach_(f)(cause.right)),
|
|
326
|
+
IBC.map(([a, b]) => sequential(a, b)),
|
|
327
|
+
)
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
if (cause.tag === 'Parallel') {
|
|
331
|
+
return pipe(
|
|
332
|
+
tuple_(forEach_(f)(cause.left), forEach_(f)(cause.right)),
|
|
333
|
+
IBC.map(([a, b]) => parallel(a, b)),
|
|
334
|
+
)
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
if (cause.tag === 'Traced') {
|
|
338
|
+
return pipe(
|
|
339
|
+
forEach_(f)(cause.cause),
|
|
340
|
+
IBC.map((c) => new Traced(c, cause.trace)),
|
|
341
|
+
)
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
return fromValue_(cause)
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
return forEach_
|
|
348
|
+
},
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
export const forEach = FE.forEach
|
|
352
|
+
export const mapAccum = FE.mapAccum(ForEach)
|
|
353
|
+
export const sequence = FE.sequence(ForEach)
|
|
354
|
+
|
|
355
|
+
export const FoldMap: FM.FoldMap1<CauseHKT> = {
|
|
356
|
+
foldMap:
|
|
357
|
+
<B>(I: Identity<B>) =>
|
|
358
|
+
<A>(f: (a: A) => B) =>
|
|
359
|
+
function fold(cause: Cause<A>): B {
|
|
360
|
+
return pipe(
|
|
361
|
+
cause,
|
|
362
|
+
match(
|
|
363
|
+
() => I.id,
|
|
364
|
+
() => I.id,
|
|
365
|
+
() => I.id,
|
|
366
|
+
f,
|
|
367
|
+
(left, right) => I.concat(fold(left), fold(right)),
|
|
368
|
+
(left, right) => I.concat(fold(left), fold(right)),
|
|
369
|
+
fold,
|
|
370
|
+
),
|
|
371
|
+
)
|
|
372
|
+
},
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
export const foldMap = FoldMap.foldMap
|
|
376
|
+
export const foldLeft = FM.foldLeft(FoldMap)
|
|
377
|
+
export const contains = FM.contains(FoldMap)
|
|
378
|
+
export const count = FM.count(FoldMap)
|
|
379
|
+
export const every = FM.every(FoldMap)
|
|
380
|
+
export const some = FM.some(FoldMap)
|
|
381
|
+
export const exists = FM.exists(FoldMap)
|
|
382
|
+
export const find = FM.find(FoldMap)
|
|
383
|
+
export const groupBy = FM.groupBy(FoldMap)
|
|
384
|
+
export const intercalate = FM.intercalate(FoldMap)
|
|
385
|
+
export const reduce = FM.reduce(FoldMap)
|
|
386
|
+
export const reduceAssociative = FM.reduceAssociative(FoldMap)
|
|
387
|
+
export const reduceCommutative = FM.reduceCommutative(FoldMap)
|
|
388
|
+
export const reduceIdentity = FM.reduceIdentity(FoldMap)
|
|
389
|
+
export const reduceRight = FM.reduceRight<CauseHKT>({ ...FoldMap, ...ForEach })
|
|
390
|
+
export const reverse = FM.reverse<CauseHKT>({ ...FoldMap, ...ForEach })
|
|
391
|
+
export const size = FM.size(FoldMap)
|
|
392
|
+
export const toArray = FM.toArray(FoldMap)
|
|
393
|
+
|
|
394
|
+
export const FilterMap: FIM.FilterMap1<CauseHKT> = {
|
|
395
|
+
filterMap: (f) =>
|
|
396
|
+
match(
|
|
397
|
+
() => Empty,
|
|
398
|
+
(id) => new Interrupted(id),
|
|
399
|
+
(e) => new Unexpected(e),
|
|
400
|
+
(a) =>
|
|
401
|
+
pipe(
|
|
402
|
+
a,
|
|
403
|
+
f,
|
|
404
|
+
Maybe.match(() => Empty, expected),
|
|
405
|
+
),
|
|
406
|
+
(left, right) => new Sequential(FilterMap.filterMap(f)(left), FilterMap.filterMap(f)(right)),
|
|
407
|
+
(left, right) => new Parallel(FilterMap.filterMap(f)(left), FilterMap.filterMap(f)(right)),
|
|
408
|
+
(cause, trace) => new Traced(FilterMap.filterMap(f)(cause), trace),
|
|
409
|
+
),
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
export const filterMap = FilterMap.filterMap
|
|
413
|
+
export const compact = FIM.compact(FilterMap)
|
|
414
|
+
export const filter = FIM.filter(FilterMap)
|
|
415
|
+
|
|
416
|
+
export const Compact: Compact1<CauseHKT> = {
|
|
417
|
+
compact,
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
export const compacted = FE.compacted<CauseHKT>({ ...ForEach, ...Compact })
|
|
421
|
+
|
|
422
|
+
export const makeDebug = <E>(renderer: Renderer<E> = defaultRenderer): D.Debug<Cause<E>> =>
|
|
423
|
+
D.Debug((cause) => prettyPrint(cause, renderer))
|
|
424
|
+
|
|
425
|
+
export const Debug = makeDebug()
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Cause } from './Cause.js'
|
|
2
|
+
import { Renderer, defaultRenderer, prettyPrint } from './Renderer.js'
|
|
3
|
+
|
|
4
|
+
import * as Trace from '@/Trace/Trace.js'
|
|
5
|
+
|
|
6
|
+
export class CauseError<E> extends Error {
|
|
7
|
+
constructor(readonly causedBy: Cause<E>, renderer: Renderer<E> = defaultRenderer) {
|
|
8
|
+
// Separate any taces from the message to use the Error.stack with the Traces
|
|
9
|
+
const [cause, trace] = causeAndTrace(causedBy)
|
|
10
|
+
|
|
11
|
+
// Print the message
|
|
12
|
+
super(prettyPrint(cause, renderer))
|
|
13
|
+
|
|
14
|
+
this.name = 'CauseError'
|
|
15
|
+
|
|
16
|
+
// If there is a Trace, add it to the Error
|
|
17
|
+
if (trace.tag !== 'EmptyTrace') {
|
|
18
|
+
this.stack = renderer.renderTrace(trace).replace(/\n/g, '\n ')
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Ammend the Error that caused everything
|
|
22
|
+
if (cause.tag === 'Unexpected' && cause.error instanceof Error) {
|
|
23
|
+
this.cause = cause.error
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
this.toString = () => prettyPrint(causedBy, renderer)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Splits any top-level Trace nodes from the rest of the Cause
|
|
32
|
+
*/
|
|
33
|
+
export function causeAndTrace<E>(cause: Cause<E>): readonly [Cause<E>, Trace.Trace] {
|
|
34
|
+
let trace: Trace.Trace = Trace.EmptyTrace
|
|
35
|
+
let causeToPrint = cause
|
|
36
|
+
|
|
37
|
+
while (causeToPrint.tag === 'Traced') {
|
|
38
|
+
trace = Trace.Associative.concat(trace, causeToPrint.trace)
|
|
39
|
+
causeToPrint = causeToPrint.cause
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return [causeToPrint, trace] as const
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function getCauseError<E>(cause: Cause<E>): Error {
|
|
46
|
+
if (cause.tag === 'Traced') {
|
|
47
|
+
return getCauseError(cause.cause)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if ((cause.tag === 'Unexpected' || cause.tag === 'Expected') && cause.error instanceof Error) {
|
|
51
|
+
return cause.error
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return new CauseError(cause)
|
|
55
|
+
}
|