@typed/fx 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +14 -0
- package/.eslintcache +1 -0
- package/.eslintrc.cjs +60 -0
- package/.huskyrc +5 -0
- package/.lintstagedrc +5 -0
- package/.mocharc.json +6 -0
- package/.nvmrc +1 -0
- package/.pnpm-debug.log +20 -0
- package/.prettierrc.cjs +11 -0
- package/.tracing-plugin/plugin.cjs +100 -0
- package/.tracing-plugin/plugin.d.ts +10 -0
- package/.tracing-plugin/plugin.d.ts.map +1 -0
- package/.tracing-plugin/plugin.js.map +1 -0
- package/.tracing-plugin/vite.d.ts +10 -0
- package/.tracing-plugin/vite.d.ts.map +1 -0
- package/.tracing-plugin/vite.js +54 -0
- package/.tracing-plugin/vite.js.map +1 -0
- package/.vscode/settings.json +7 -0
- package/cjs/Atomic/Atomic.d.ts +56 -0
- package/cjs/Atomic/Atomic.d.ts.map +1 -0
- package/cjs/Atomic/Atomic.js +92 -0
- package/cjs/Atomic/Atomic.js.map +1 -0
- package/cjs/Atomic/AtomicCounter.d.ts +10 -0
- package/cjs/Atomic/AtomicCounter.d.ts.map +1 -0
- package/cjs/Atomic/AtomicCounter.js +14 -0
- package/cjs/Atomic/AtomicCounter.js.map +1 -0
- package/cjs/Atomic/index.d.ts +3 -0
- package/cjs/Atomic/index.d.ts.map +1 -0
- package/cjs/Atomic/index.js +19 -0
- package/cjs/Atomic/index.js.map +1 -0
- package/cjs/Cause/Cause.d.ts +169 -0
- package/cjs/Cause/Cause.d.ts.map +1 -0
- package/cjs/Cause/Cause.js +344 -0
- package/cjs/Cause/Cause.js.map +1 -0
- package/cjs/Cause/CauseError.d.ts +13 -0
- package/cjs/Cause/CauseError.d.ts.map +1 -0
- package/cjs/Cause/CauseError.js +73 -0
- package/cjs/Cause/CauseError.js.map +1 -0
- package/cjs/Cause/Renderer.d.ts +47 -0
- package/cjs/Cause/Renderer.d.ts.map +1 -0
- package/cjs/Cause/Renderer.js +235 -0
- package/cjs/Cause/Renderer.js.map +1 -0
- package/cjs/Cause/index.d.ts +2 -0
- package/cjs/Cause/index.d.ts.map +1 -0
- package/cjs/Cause/index.js +18 -0
- package/cjs/Cause/index.js.map +1 -0
- package/cjs/Cause/prettyStringify.d.ts +2 -0
- package/cjs/Cause/prettyStringify.d.ts.map +1 -0
- package/cjs/Cause/prettyStringify.js +11 -0
- package/cjs/Cause/prettyStringify.js.map +1 -0
- package/cjs/Clock/Clock.d.ts +26 -0
- package/cjs/Clock/Clock.d.ts.map +1 -0
- package/cjs/Clock/Clock.js +87 -0
- package/cjs/Clock/Clock.js.map +1 -0
- package/cjs/Clock/DateClock.d.ts +3 -0
- package/cjs/Clock/DateClock.d.ts.map +1 -0
- package/cjs/Clock/DateClock.js +11 -0
- package/cjs/Clock/DateClock.js.map +1 -0
- package/cjs/Clock/TestClock.d.ts +11 -0
- package/cjs/Clock/TestClock.d.ts.map +1 -0
- package/cjs/Clock/TestClock.js +19 -0
- package/cjs/Clock/TestClock.js.map +1 -0
- package/cjs/Clock/index.d.ts +4 -0
- package/cjs/Clock/index.d.ts.map +1 -0
- package/cjs/Clock/index.js +20 -0
- package/cjs/Clock/index.js.map +1 -0
- package/cjs/Disposable/Disposable.d.ts +25 -0
- package/cjs/Disposable/Disposable.d.ts.map +1 -0
- package/cjs/Disposable/Disposable.js +46 -0
- package/cjs/Disposable/Disposable.js.map +1 -0
- package/cjs/Disposable/index.d.ts +2 -0
- package/cjs/Disposable/index.d.ts.map +1 -0
- package/cjs/Disposable/index.js +18 -0
- package/cjs/Disposable/index.js.map +1 -0
- package/cjs/Duration/Duration.d.ts +27 -0
- package/cjs/Duration/Duration.d.ts.map +1 -0
- package/cjs/Duration/Duration.js +119 -0
- package/cjs/Duration/Duration.js.map +1 -0
- package/cjs/Duration/index.d.ts +2 -0
- package/cjs/Duration/index.d.ts.map +1 -0
- package/cjs/Duration/index.js +18 -0
- package/cjs/Duration/index.js.map +1 -0
- package/cjs/Env/Env.d.ts +8 -0
- package/cjs/Env/Env.d.ts.map +1 -0
- package/cjs/Env/Env.js +64 -0
- package/cjs/Env/Env.js.map +1 -0
- package/cjs/Env/index.d.ts +2 -0
- package/cjs/Env/index.d.ts.map +1 -0
- package/cjs/Env/index.js +18 -0
- package/cjs/Env/index.js.map +1 -0
- package/cjs/Exit/Exit.d.ts +21 -0
- package/cjs/Exit/Exit.d.ts.map +1 -0
- package/cjs/Exit/Exit.js +54 -0
- package/cjs/Exit/Exit.js.map +1 -0
- package/cjs/Exit/hkt.d.ts +17 -0
- package/cjs/Exit/hkt.d.ts.map +1 -0
- package/cjs/Exit/hkt.js +45 -0
- package/cjs/Exit/hkt.js.map +1 -0
- package/cjs/Exit/index.d.ts +3 -0
- package/cjs/Exit/index.d.ts.map +1 -0
- package/cjs/Exit/index.js +19 -0
- package/cjs/Exit/index.js.map +1 -0
- package/cjs/Fiber/Fiber.d.ts +36 -0
- package/cjs/Fiber/Fiber.d.ts.map +1 -0
- package/cjs/Fiber/Fiber.js +36 -0
- package/cjs/Fiber/Fiber.js.map +1 -0
- package/cjs/Fiber/index.d.ts +2 -0
- package/cjs/Fiber/index.d.ts.map +1 -0
- package/cjs/Fiber/index.js +18 -0
- package/cjs/Fiber/index.js.map +1 -0
- package/cjs/FiberContext/FiberContext.d.ts +22 -0
- package/cjs/FiberContext/FiberContext.d.ts.map +1 -0
- package/cjs/FiberContext/FiberContext.js +64 -0
- package/cjs/FiberContext/FiberContext.js.map +1 -0
- package/cjs/FiberContext/index.d.ts +2 -0
- package/cjs/FiberContext/index.d.ts.map +1 -0
- package/cjs/FiberContext/index.js +18 -0
- package/cjs/FiberContext/index.js.map +1 -0
- package/cjs/FiberId/FiberId.d.ts +46 -0
- package/cjs/FiberId/FiberId.d.ts.map +1 -0
- package/cjs/FiberId/FiberId.js +122 -0
- package/cjs/FiberId/FiberId.js.map +1 -0
- package/cjs/FiberId/index.d.ts +2 -0
- package/cjs/FiberId/index.d.ts.map +1 -0
- package/cjs/FiberId/index.js +18 -0
- package/cjs/FiberId/index.js.map +1 -0
- package/cjs/FiberRef/FiberRef.d.ts +38 -0
- package/cjs/FiberRef/FiberRef.d.ts.map +1 -0
- package/cjs/FiberRef/FiberRef.js +57 -0
- package/cjs/FiberRef/FiberRef.js.map +1 -0
- package/cjs/FiberRef/index.d.ts +3 -0
- package/cjs/FiberRef/index.d.ts.map +1 -0
- package/cjs/FiberRef/index.js +20 -0
- package/cjs/FiberRef/index.js.map +1 -0
- package/cjs/FiberRef/operations.d.ts +9 -0
- package/cjs/FiberRef/operations.d.ts.map +1 -0
- package/cjs/FiberRef/operations.js +20 -0
- package/cjs/FiberRef/operations.js.map +1 -0
- package/cjs/FiberRefs/FiberRefs.d.ts +19 -0
- package/cjs/FiberRefs/FiberRefs.d.ts.map +1 -0
- package/cjs/FiberRefs/FiberRefs.js +130 -0
- package/cjs/FiberRefs/FiberRefs.js.map +1 -0
- package/cjs/FiberRefs/index.d.ts +2 -0
- package/cjs/FiberRefs/index.d.ts.map +1 -0
- package/cjs/FiberRefs/index.js +18 -0
- package/cjs/FiberRefs/index.js.map +1 -0
- package/cjs/FiberRuntime/FiberRuntime.d.ts +154 -0
- package/cjs/FiberRuntime/FiberRuntime.d.ts.map +1 -0
- package/cjs/FiberRuntime/FiberRuntime.js +506 -0
- package/cjs/FiberRuntime/FiberRuntime.js.map +1 -0
- package/cjs/FiberRuntime/Frame.d.ts +14 -0
- package/cjs/FiberRuntime/Frame.d.ts.map +1 -0
- package/cjs/FiberRuntime/Frame.js +18 -0
- package/cjs/FiberRuntime/Frame.js.map +1 -0
- package/cjs/FiberRuntime/index.d.ts +2 -0
- package/cjs/FiberRuntime/index.d.ts.map +1 -0
- package/cjs/FiberRuntime/index.js +18 -0
- package/cjs/FiberRuntime/index.js.map +1 -0
- package/cjs/FiberStatus/index.d.ts +19 -0
- package/cjs/FiberStatus/index.d.ts.map +1 -0
- package/cjs/FiberStatus/index.js +24 -0
- package/cjs/FiberStatus/index.js.map +1 -0
- package/cjs/Finalizer/Finalizer.d.ts +39 -0
- package/cjs/Finalizer/Finalizer.d.ts.map +1 -0
- package/cjs/Finalizer/Finalizer.js +24 -0
- package/cjs/Finalizer/Finalizer.js.map +1 -0
- package/cjs/Finalizer/index.d.ts +2 -0
- package/cjs/Finalizer/index.d.ts.map +1 -0
- package/cjs/Finalizer/index.js +18 -0
- package/cjs/Finalizer/index.js.map +1 -0
- package/cjs/Future/Future.d.ts +23 -0
- package/cjs/Future/Future.d.ts.map +1 -0
- package/cjs/Future/Future.js +42 -0
- package/cjs/Future/Future.js.map +1 -0
- package/cjs/Future/MutableFutureQueue.d.ts +16 -0
- package/cjs/Future/MutableFutureQueue.d.ts.map +1 -0
- package/cjs/Future/MutableFutureQueue.js +40 -0
- package/cjs/Future/MutableFutureQueue.js.map +1 -0
- package/cjs/Future/complete.d.ts +4 -0
- package/cjs/Future/complete.d.ts.map +1 -0
- package/cjs/Future/complete.js +14 -0
- package/cjs/Future/complete.js.map +1 -0
- package/cjs/Future/index.d.ts +4 -0
- package/cjs/Future/index.d.ts.map +1 -0
- package/cjs/Future/index.js +20 -0
- package/cjs/Future/index.js.map +1 -0
- package/cjs/Future/wait.d.ts +4 -0
- package/cjs/Future/wait.d.ts.map +1 -0
- package/cjs/Future/wait.js +9 -0
- package/cjs/Future/wait.js.map +1 -0
- package/cjs/Fx/Fx.d.ts +136 -0
- package/cjs/Fx/Fx.d.ts.map +1 -0
- package/cjs/Fx/Fx.js +247 -0
- package/cjs/Fx/Fx.js.map +1 -0
- package/cjs/Fx/Instruction.d.ts +202 -0
- package/cjs/Fx/Instruction.d.ts.map +1 -0
- package/cjs/Fx/Instruction.js +387 -0
- package/cjs/Fx/Instruction.js.map +1 -0
- package/cjs/Fx/index.d.ts +5 -0
- package/cjs/Fx/index.d.ts.map +1 -0
- package/cjs/Fx/index.js +21 -0
- package/cjs/Fx/index.js.map +1 -0
- package/cjs/Fx/join.d.ts +4 -0
- package/cjs/Fx/join.d.ts.map +1 -0
- package/cjs/Fx/join.js +39 -0
- package/cjs/Fx/join.js.map +1 -0
- package/cjs/Fx/logging.d.ts +11 -0
- package/cjs/Fx/logging.d.ts.map +1 -0
- package/cjs/Fx/logging.js +45 -0
- package/cjs/Fx/logging.js.map +1 -0
- package/cjs/Fx/scoped.d.ts +20 -0
- package/cjs/Fx/scoped.d.ts.map +1 -0
- package/cjs/Fx/scoped.js +52 -0
- package/cjs/Fx/scoped.js.map +1 -0
- package/cjs/ImmutableMap/ImmutableMap.d.ts +15 -0
- package/cjs/ImmutableMap/ImmutableMap.d.ts.map +1 -0
- package/cjs/ImmutableMap/ImmutableMap.js +39 -0
- package/cjs/ImmutableMap/ImmutableMap.js.map +1 -0
- package/cjs/ImmutableMap/index.d.ts +2 -0
- package/cjs/ImmutableMap/index.d.ts.map +1 -0
- package/cjs/ImmutableMap/index.js +18 -0
- package/cjs/ImmutableMap/index.js.map +1 -0
- package/cjs/Layer/Layer.d.ts +14 -0
- package/cjs/Layer/Layer.d.ts.map +1 -0
- package/cjs/Layer/Layer.js +42 -0
- package/cjs/Layer/Layer.js.map +1 -0
- package/cjs/Layer/index.d.ts +2 -0
- package/cjs/Layer/index.d.ts.map +1 -0
- package/cjs/Layer/index.js +18 -0
- package/cjs/Layer/index.js.map +1 -0
- package/cjs/Logger/Console.d.ts +3 -0
- package/cjs/Logger/Console.d.ts.map +1 -0
- package/cjs/Logger/Console.js +75 -0
- package/cjs/Logger/Console.js.map +1 -0
- package/cjs/Logger/LogAnnotation.d.ts +6 -0
- package/cjs/Logger/LogAnnotation.d.ts.map +1 -0
- package/cjs/Logger/LogAnnotation.js +8 -0
- package/cjs/Logger/LogAnnotation.js.map +1 -0
- package/cjs/Logger/LogLevel.d.ts +11 -0
- package/cjs/Logger/LogLevel.d.ts.map +1 -0
- package/cjs/Logger/LogLevel.js +15 -0
- package/cjs/Logger/LogLevel.js.map +1 -0
- package/cjs/Logger/LogSpan.d.ts +7 -0
- package/cjs/Logger/LogSpan.d.ts.map +1 -0
- package/cjs/Logger/LogSpan.js +8 -0
- package/cjs/Logger/LogSpan.js.map +1 -0
- package/cjs/Logger/Logger.d.ts +31 -0
- package/cjs/Logger/Logger.d.ts.map +1 -0
- package/cjs/Logger/Logger.js +66 -0
- package/cjs/Logger/Logger.js.map +1 -0
- package/cjs/Logger/index.d.ts +2 -0
- package/cjs/Logger/index.d.ts.map +1 -0
- package/cjs/Logger/index.js +18 -0
- package/cjs/Logger/index.js.map +1 -0
- package/cjs/Platform/Platform.d.ts +14 -0
- package/cjs/Platform/Platform.d.ts.map +1 -0
- package/cjs/Platform/Platform.js +47 -0
- package/cjs/Platform/Platform.js.map +1 -0
- package/cjs/Platform/TestPlatform.d.ts +7 -0
- package/cjs/Platform/TestPlatform.d.ts.map +1 -0
- package/cjs/Platform/TestPlatform.js +13 -0
- package/cjs/Platform/TestPlatform.js.map +1 -0
- package/cjs/Platform/index.d.ts +3 -0
- package/cjs/Platform/index.d.ts.map +1 -0
- package/cjs/Platform/index.js +19 -0
- package/cjs/Platform/index.js.map +1 -0
- package/cjs/Ref/Ref.d.ts +40 -0
- package/cjs/Ref/Ref.d.ts.map +1 -0
- package/cjs/Ref/Ref.js +57 -0
- package/cjs/Ref/Ref.js.map +1 -0
- package/cjs/Ref/atomic.d.ts +5 -0
- package/cjs/Ref/atomic.d.ts.map +1 -0
- package/cjs/Ref/atomic.js +20 -0
- package/cjs/Ref/atomic.js.map +1 -0
- package/cjs/Ref/index.d.ts +3 -0
- package/cjs/Ref/index.d.ts.map +1 -0
- package/cjs/Ref/index.js +19 -0
- package/cjs/Ref/index.js.map +1 -0
- package/cjs/Schedule/Decision.d.ts +15 -0
- package/cjs/Schedule/Decision.d.ts.map +1 -0
- package/cjs/Schedule/Decision.js +38 -0
- package/cjs/Schedule/Decision.js.map +1 -0
- package/cjs/Schedule/Schedule.d.ts +30 -0
- package/cjs/Schedule/Schedule.d.ts.map +1 -0
- package/cjs/Schedule/Schedule.js +78 -0
- package/cjs/Schedule/Schedule.js.map +1 -0
- package/cjs/Schedule/ScheduleState.d.ts +45 -0
- package/cjs/Schedule/ScheduleState.d.ts.map +1 -0
- package/cjs/Schedule/ScheduleState.js +58 -0
- package/cjs/Schedule/ScheduleState.js.map +1 -0
- package/cjs/Schedule/index.d.ts +4 -0
- package/cjs/Schedule/index.d.ts.map +1 -0
- package/cjs/Schedule/index.js +20 -0
- package/cjs/Schedule/index.js.map +1 -0
- package/cjs/Scheduler/RootScheduler.d.ts +4 -0
- package/cjs/Scheduler/RootScheduler.d.ts.map +1 -0
- package/cjs/Scheduler/RootScheduler.js +57 -0
- package/cjs/Scheduler/RootScheduler.js.map +1 -0
- package/cjs/Scheduler/Scheduler.d.ts +14 -0
- package/cjs/Scheduler/Scheduler.d.ts.map +1 -0
- package/cjs/Scheduler/Scheduler.js +6 -0
- package/cjs/Scheduler/Scheduler.js.map +1 -0
- package/cjs/Scheduler/callbackScheduler.d.ts +5 -0
- package/cjs/Scheduler/callbackScheduler.d.ts.map +1 -0
- package/cjs/Scheduler/callbackScheduler.js +59 -0
- package/cjs/Scheduler/callbackScheduler.js.map +1 -0
- package/cjs/Scheduler/index.d.ts +1 -0
- package/cjs/Scheduler/index.d.ts.map +1 -0
- package/cjs/Scheduler/index.js +2 -0
- package/cjs/Scheduler/index.js.map +1 -0
- package/cjs/Scheduler/scheduled.d.ts +10 -0
- package/cjs/Scheduler/scheduled.d.ts.map +1 -0
- package/cjs/Scheduler/scheduled.js +25 -0
- package/cjs/Scheduler/scheduled.js.map +1 -0
- package/cjs/Scope/Closeable.d.ts +11 -0
- package/cjs/Scope/Closeable.d.ts.map +1 -0
- package/cjs/Scope/Closeable.js +25 -0
- package/cjs/Scope/Closeable.js.map +1 -0
- package/cjs/Scope/GlobalScope.d.ts +3 -0
- package/cjs/Scope/GlobalScope.d.ts.map +1 -0
- package/cjs/Scope/GlobalScope.js +15 -0
- package/cjs/Scope/GlobalScope.js.map +1 -0
- package/cjs/Scope/LocalScope.d.ts +24 -0
- package/cjs/Scope/LocalScope.d.ts.map +1 -0
- package/cjs/Scope/LocalScope.js +97 -0
- package/cjs/Scope/LocalScope.js.map +1 -0
- package/cjs/Scope/ReleaseMap.d.ts +19 -0
- package/cjs/Scope/ReleaseMap.d.ts.map +1 -0
- package/cjs/Scope/ReleaseMap.js +66 -0
- package/cjs/Scope/ReleaseMap.js.map +1 -0
- package/cjs/Scope/Scope.d.ts +11 -0
- package/cjs/Scope/Scope.d.ts.map +1 -0
- package/cjs/Scope/Scope.js +6 -0
- package/cjs/Scope/Scope.js.map +1 -0
- package/cjs/Scope/ScopeState.d.ts +19 -0
- package/cjs/Scope/ScopeState.d.ts.map +1 -0
- package/cjs/Scope/ScopeState.js +30 -0
- package/cjs/Scope/ScopeState.js.map +1 -0
- package/cjs/Scope/index.d.ts +7 -0
- package/cjs/Scope/index.d.ts.map +1 -0
- package/cjs/Scope/index.js +23 -0
- package/cjs/Scope/index.js.map +1 -0
- package/cjs/Semaphore/Semaphore.d.ts +38 -0
- package/cjs/Semaphore/Semaphore.d.ts.map +1 -0
- package/cjs/Semaphore/Semaphore.js +96 -0
- package/cjs/Semaphore/Semaphore.js.map +1 -0
- package/cjs/Semaphore/index.d.ts +2 -0
- package/cjs/Semaphore/index.d.ts.map +1 -0
- package/cjs/Semaphore/index.js +18 -0
- package/cjs/Semaphore/index.js.map +1 -0
- package/cjs/Service/Id.d.ts +59 -0
- package/cjs/Service/Id.d.ts.map +1 -0
- package/cjs/Service/Id.js +90 -0
- package/cjs/Service/Id.js.map +1 -0
- package/cjs/Service/Service.d.ts +20 -0
- package/cjs/Service/Service.d.ts.map +1 -0
- package/cjs/Service/Service.js +19 -0
- package/cjs/Service/Service.js.map +1 -0
- package/cjs/Service/index.d.ts +4 -0
- package/cjs/Service/index.d.ts.map +1 -0
- package/cjs/Service/index.js +20 -0
- package/cjs/Service/index.js.map +1 -0
- package/cjs/Service/tagged.d.ts +23 -0
- package/cjs/Service/tagged.d.ts.map +1 -0
- package/cjs/Service/tagged.js +13 -0
- package/cjs/Service/tagged.js.map +1 -0
- package/cjs/Sink/Sink.d.ts +22 -0
- package/cjs/Sink/Sink.d.ts.map +1 -0
- package/cjs/Sink/Sink.js +31 -0
- package/cjs/Sink/Sink.js.map +1 -0
- package/cjs/Sink/index.d.ts +1 -0
- package/cjs/Sink/index.d.ts.map +1 -0
- package/cjs/Sink/index.js +2 -0
- package/cjs/Sink/index.js.map +1 -0
- package/cjs/Stack/index.d.ts +20 -0
- package/cjs/Stack/index.d.ts.map +1 -0
- package/cjs/Stack/index.js +103 -0
- package/cjs/Stack/index.js.map +1 -0
- package/cjs/StackFrame/StackFrame.d.ts +29 -0
- package/cjs/StackFrame/StackFrame.d.ts.map +1 -0
- package/cjs/StackFrame/StackFrame.js +61 -0
- package/cjs/StackFrame/StackFrame.js.map +1 -0
- package/cjs/StackFrame/getStackFrames.d.ts +7 -0
- package/cjs/StackFrame/getStackFrames.d.ts.map +1 -0
- package/cjs/StackFrame/getStackFrames.js +56 -0
- package/cjs/StackFrame/getStackFrames.js.map +1 -0
- package/cjs/StackFrame/index.d.ts +3 -0
- package/cjs/StackFrame/index.d.ts.map +1 -0
- package/cjs/StackFrame/index.js +19 -0
- package/cjs/StackFrame/index.js.map +1 -0
- package/cjs/StackFrame/parseChromeStack.d.ts +3 -0
- package/cjs/StackFrame/parseChromeStack.d.ts.map +1 -0
- package/cjs/StackFrame/parseChromeStack.js +36 -0
- package/cjs/StackFrame/parseChromeStack.js.map +1 -0
- package/cjs/StackFrame/parseGeckoStackFrame.d.ts +3 -0
- package/cjs/StackFrame/parseGeckoStackFrame.d.ts.map +1 -0
- package/cjs/StackFrame/parseGeckoStackFrame.js +28 -0
- package/cjs/StackFrame/parseGeckoStackFrame.js.map +1 -0
- package/cjs/Stream/Stream.d.ts +18 -0
- package/cjs/Stream/Stream.d.ts.map +1 -0
- package/cjs/Stream/Stream.js +8 -0
- package/cjs/Stream/Stream.js.map +1 -0
- package/cjs/Stream/drain.d.ts +11 -0
- package/cjs/Stream/drain.d.ts.map +1 -0
- package/cjs/Stream/drain.js +51 -0
- package/cjs/Stream/drain.js.map +1 -0
- package/cjs/Stream/fromFx.d.ts +4 -0
- package/cjs/Stream/fromFx.d.ts.map +1 -0
- package/cjs/Stream/fromFx.js +34 -0
- package/cjs/Stream/fromFx.js.map +1 -0
- package/cjs/Stream/index.d.ts +4 -0
- package/cjs/Stream/index.d.ts.map +1 -0
- package/cjs/Stream/index.js +20 -0
- package/cjs/Stream/index.js.map +1 -0
- package/cjs/Supervisor/Supervisor.d.ts +32 -0
- package/cjs/Supervisor/Supervisor.d.ts.map +1 -0
- package/cjs/Supervisor/Supervisor.js +46 -0
- package/cjs/Supervisor/Supervisor.js.map +1 -0
- package/cjs/Supervisor/index.d.ts +2 -0
- package/cjs/Supervisor/index.d.ts.map +1 -0
- package/cjs/Supervisor/index.js +18 -0
- package/cjs/Supervisor/index.js.map +1 -0
- package/cjs/Tagged/index.d.ts +79 -0
- package/cjs/Tagged/index.d.ts.map +1 -0
- package/cjs/Tagged/index.js +71 -0
- package/cjs/Tagged/index.js.map +1 -0
- package/cjs/Time/index.d.ts +95 -0
- package/cjs/Time/index.d.ts.map +1 -0
- package/cjs/Time/index.js +59 -0
- package/cjs/Time/index.js.map +1 -0
- package/cjs/Timeline/index.d.ts +27 -0
- package/cjs/Timeline/index.d.ts.map +1 -0
- package/cjs/Timeline/index.js +102 -0
- package/cjs/Timeline/index.js.map +1 -0
- package/cjs/Timer/SetTimeoutTimer.d.ts +4 -0
- package/cjs/Timer/SetTimeoutTimer.d.ts.map +1 -0
- package/cjs/Timer/SetTimeoutTimer.js +18 -0
- package/cjs/Timer/SetTimeoutTimer.js.map +1 -0
- package/cjs/Timer/TestTimer.d.ts +9 -0
- package/cjs/Timer/TestTimer.d.ts.map +1 -0
- package/cjs/Timer/TestTimer.js +52 -0
- package/cjs/Timer/TestTimer.js.map +1 -0
- package/cjs/Timer/Timer.d.ts +11 -0
- package/cjs/Timer/Timer.d.ts.map +1 -0
- package/cjs/Timer/Timer.js +44 -0
- package/cjs/Timer/Timer.js.map +1 -0
- package/cjs/Timer/index.d.ts +4 -0
- package/cjs/Timer/index.d.ts.map +1 -0
- package/cjs/Timer/index.js +20 -0
- package/cjs/Timer/index.js.map +1 -0
- package/cjs/Trace/Trace.d.ts +38 -0
- package/cjs/Trace/Trace.d.ts.map +1 -0
- package/cjs/Trace/Trace.js +183 -0
- package/cjs/Trace/Trace.js.map +1 -0
- package/cjs/Trace/index.d.ts +2 -0
- package/cjs/Trace/index.d.ts.map +1 -0
- package/cjs/Trace/index.js +18 -0
- package/cjs/Trace/index.js.map +1 -0
- package/cjs/Tracing/plugin.d.ts +10 -0
- package/cjs/Tracing/plugin.d.ts.map +1 -0
- package/cjs/Tracing/plugin.js +100 -0
- package/cjs/Tracing/plugin.js.map +1 -0
- package/cjs/Tracing/vite.d.ts +10 -0
- package/cjs/Tracing/vite.d.ts.map +1 -0
- package/cjs/Tracing/vite.js +54 -0
- package/cjs/Tracing/vite.js.map +1 -0
- package/cjs/index.d.ts +35 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +64 -0
- package/cjs/index.js.map +1 -0
- package/cjs/internal.d.ts +18 -0
- package/cjs/internal.d.ts.map +1 -0
- package/cjs/internal.js +3 -0
- package/cjs/internal.js.map +1 -0
- package/cjs/test.d.ts +1 -0
- package/cjs/test.d.ts.map +1 -0
- package/cjs/test.js +2 -0
- package/cjs/test.js.map +1 -0
- package/coverage/tmp/coverage-74826-1660784295157-0.json +1 -0
- package/coverage/tmp/coverage-74830-1660784295115-0.json +1 -0
- package/coverage/tmp/coverage-74836-1660784295074-0.json +1 -0
- package/esm/Atomic/Atomic.d.ts +56 -0
- package/esm/Atomic/Atomic.d.ts.map +1 -0
- package/esm/Atomic/Atomic.js +79 -0
- package/esm/Atomic/Atomic.js.map +1 -0
- package/esm/Atomic/AtomicCounter.d.ts +10 -0
- package/esm/Atomic/AtomicCounter.d.ts.map +1 -0
- package/esm/Atomic/AtomicCounter.js +10 -0
- package/esm/Atomic/AtomicCounter.js.map +1 -0
- package/esm/Atomic/index.d.ts +3 -0
- package/esm/Atomic/index.d.ts.map +1 -0
- package/esm/Atomic/index.js +3 -0
- package/esm/Atomic/index.js.map +1 -0
- package/esm/Cause/Cause.d.ts +169 -0
- package/esm/Cause/Cause.d.ts.map +1 -0
- package/esm/Cause/Cause.js +296 -0
- package/esm/Cause/Cause.js.map +1 -0
- package/esm/Cause/CauseError.d.ts +13 -0
- package/esm/Cause/CauseError.d.ts.map +1 -0
- package/esm/Cause/CauseError.js +44 -0
- package/esm/Cause/CauseError.js.map +1 -0
- package/esm/Cause/Renderer.d.ts +47 -0
- package/esm/Cause/Renderer.d.ts.map +1 -0
- package/esm/Cause/Renderer.js +191 -0
- package/esm/Cause/Renderer.js.map +1 -0
- package/esm/Cause/index.d.ts +2 -0
- package/esm/Cause/index.d.ts.map +1 -0
- package/esm/Cause/index.js +2 -0
- package/esm/Cause/index.js.map +1 -0
- package/esm/Cause/prettyStringify.d.ts +2 -0
- package/esm/Cause/prettyStringify.d.ts.map +1 -0
- package/esm/Cause/prettyStringify.js +7 -0
- package/esm/Cause/prettyStringify.js.map +1 -0
- package/esm/Clock/Clock.d.ts +26 -0
- package/esm/Clock/Clock.d.ts.map +1 -0
- package/esm/Clock/Clock.js +50 -0
- package/esm/Clock/Clock.js.map +1 -0
- package/esm/Clock/DateClock.d.ts +3 -0
- package/esm/Clock/DateClock.d.ts.map +1 -0
- package/esm/Clock/DateClock.js +7 -0
- package/esm/Clock/DateClock.js.map +1 -0
- package/esm/Clock/TestClock.d.ts +11 -0
- package/esm/Clock/TestClock.d.ts.map +1 -0
- package/esm/Clock/TestClock.js +15 -0
- package/esm/Clock/TestClock.js.map +1 -0
- package/esm/Clock/index.d.ts +4 -0
- package/esm/Clock/index.d.ts.map +1 -0
- package/esm/Clock/index.js +4 -0
- package/esm/Clock/index.js.map +1 -0
- package/esm/Disposable/Disposable.d.ts +25 -0
- package/esm/Disposable/Disposable.d.ts.map +1 -0
- package/esm/Disposable/Disposable.js +39 -0
- package/esm/Disposable/Disposable.js.map +1 -0
- package/esm/Disposable/index.d.ts +2 -0
- package/esm/Disposable/index.d.ts.map +1 -0
- package/esm/Disposable/index.js +2 -0
- package/esm/Disposable/index.js.map +1 -0
- package/esm/Duration/Duration.d.ts +27 -0
- package/esm/Duration/Duration.d.ts.map +1 -0
- package/esm/Duration/Duration.js +106 -0
- package/esm/Duration/Duration.js.map +1 -0
- package/esm/Duration/index.d.ts +2 -0
- package/esm/Duration/index.d.ts.map +1 -0
- package/esm/Duration/index.js +2 -0
- package/esm/Duration/index.js.map +1 -0
- package/esm/Env/Env.d.ts +8 -0
- package/esm/Env/Env.d.ts.map +1 -0
- package/esm/Env/Env.js +37 -0
- package/esm/Env/Env.js.map +1 -0
- package/esm/Env/index.d.ts +2 -0
- package/esm/Env/index.d.ts.map +1 -0
- package/esm/Env/index.js +2 -0
- package/esm/Env/index.js.map +1 -0
- package/esm/Exit/Exit.d.ts +21 -0
- package/esm/Exit/Exit.d.ts.map +1 -0
- package/esm/Exit/Exit.js +16 -0
- package/esm/Exit/Exit.js.map +1 -0
- package/esm/Exit/hkt.d.ts +17 -0
- package/esm/Exit/hkt.d.ts.map +1 -0
- package/esm/Exit/hkt.js +19 -0
- package/esm/Exit/hkt.js.map +1 -0
- package/esm/Exit/index.d.ts +3 -0
- package/esm/Exit/index.d.ts.map +1 -0
- package/esm/Exit/index.js +3 -0
- package/esm/Exit/index.js.map +1 -0
- package/esm/Fiber/Fiber.d.ts +36 -0
- package/esm/Fiber/Fiber.d.ts.map +1 -0
- package/esm/Fiber/Fiber.js +25 -0
- package/esm/Fiber/Fiber.js.map +1 -0
- package/esm/Fiber/index.d.ts +2 -0
- package/esm/Fiber/index.d.ts.map +1 -0
- package/esm/Fiber/index.js +2 -0
- package/esm/Fiber/index.js.map +1 -0
- package/esm/FiberContext/FiberContext.d.ts +22 -0
- package/esm/FiberContext/FiberContext.d.ts.map +1 -0
- package/esm/FiberContext/FiberContext.js +36 -0
- package/esm/FiberContext/FiberContext.js.map +1 -0
- package/esm/FiberContext/index.d.ts +2 -0
- package/esm/FiberContext/index.d.ts.map +1 -0
- package/esm/FiberContext/index.js +2 -0
- package/esm/FiberContext/index.js.map +1 -0
- package/esm/FiberId/FiberId.d.ts +46 -0
- package/esm/FiberId/FiberId.d.ts.map +1 -0
- package/esm/FiberId/FiberId.js +93 -0
- package/esm/FiberId/FiberId.js.map +1 -0
- package/esm/FiberId/index.d.ts +2 -0
- package/esm/FiberId/index.d.ts.map +1 -0
- package/esm/FiberId/index.js +2 -0
- package/esm/FiberId/index.js.map +1 -0
- package/esm/FiberRef/FiberRef.d.ts +38 -0
- package/esm/FiberRef/FiberRef.d.ts.map +1 -0
- package/esm/FiberRef/FiberRef.js +52 -0
- package/esm/FiberRef/FiberRef.js.map +1 -0
- package/esm/FiberRef/index.d.ts +3 -0
- package/esm/FiberRef/index.d.ts.map +1 -0
- package/esm/FiberRef/index.js +4 -0
- package/esm/FiberRef/index.js.map +1 -0
- package/esm/FiberRef/operations.d.ts +9 -0
- package/esm/FiberRef/operations.d.ts.map +1 -0
- package/esm/FiberRef/operations.js +13 -0
- package/esm/FiberRef/operations.js.map +1 -0
- package/esm/FiberRefs/FiberRefs.d.ts +19 -0
- package/esm/FiberRefs/FiberRefs.d.ts.map +1 -0
- package/esm/FiberRefs/FiberRefs.js +95 -0
- package/esm/FiberRefs/FiberRefs.js.map +1 -0
- package/esm/FiberRefs/index.d.ts +2 -0
- package/esm/FiberRefs/index.d.ts.map +1 -0
- package/esm/FiberRefs/index.js +2 -0
- package/esm/FiberRefs/index.js.map +1 -0
- package/esm/FiberRuntime/FiberRuntime.d.ts +154 -0
- package/esm/FiberRuntime/FiberRuntime.d.ts.map +1 -0
- package/esm/FiberRuntime/FiberRuntime.js +479 -0
- package/esm/FiberRuntime/FiberRuntime.js.map +1 -0
- package/esm/FiberRuntime/Frame.d.ts +14 -0
- package/esm/FiberRuntime/Frame.d.ts.map +1 -0
- package/esm/FiberRuntime/Frame.js +13 -0
- package/esm/FiberRuntime/Frame.js.map +1 -0
- package/esm/FiberRuntime/index.d.ts +2 -0
- package/esm/FiberRuntime/index.d.ts.map +1 -0
- package/esm/FiberRuntime/index.js +2 -0
- package/esm/FiberRuntime/index.js.map +1 -0
- package/esm/FiberStatus/index.d.ts +19 -0
- package/esm/FiberStatus/index.d.ts.map +1 -0
- package/esm/FiberStatus/index.js +18 -0
- package/esm/FiberStatus/index.js.map +1 -0
- package/esm/Finalizer/Finalizer.d.ts +39 -0
- package/esm/Finalizer/Finalizer.d.ts.map +1 -0
- package/esm/Finalizer/Finalizer.js +19 -0
- package/esm/Finalizer/Finalizer.js.map +1 -0
- package/esm/Finalizer/index.d.ts +2 -0
- package/esm/Finalizer/index.d.ts.map +1 -0
- package/esm/Finalizer/index.js +2 -0
- package/esm/Finalizer/index.js.map +1 -0
- package/esm/Future/Future.d.ts +23 -0
- package/esm/Future/Future.d.ts.map +1 -0
- package/esm/Future/Future.js +36 -0
- package/esm/Future/Future.js.map +1 -0
- package/esm/Future/MutableFutureQueue.d.ts +16 -0
- package/esm/Future/MutableFutureQueue.d.ts.map +1 -0
- package/esm/Future/MutableFutureQueue.js +36 -0
- package/esm/Future/MutableFutureQueue.js.map +1 -0
- package/esm/Future/complete.d.ts +4 -0
- package/esm/Future/complete.d.ts.map +1 -0
- package/esm/Future/complete.js +10 -0
- package/esm/Future/complete.js.map +1 -0
- package/esm/Future/index.d.ts +4 -0
- package/esm/Future/index.d.ts.map +1 -0
- package/esm/Future/index.js +4 -0
- package/esm/Future/index.js.map +1 -0
- package/esm/Future/wait.d.ts +4 -0
- package/esm/Future/wait.d.ts.map +1 -0
- package/esm/Future/wait.js +5 -0
- package/esm/Future/wait.js.map +1 -0
- package/esm/Fx/Fx.d.ts +136 -0
- package/esm/Fx/Fx.d.ts.map +1 -0
- package/esm/Fx/Fx.js +173 -0
- package/esm/Fx/Fx.js.map +1 -0
- package/esm/Fx/Instruction.d.ts +202 -0
- package/esm/Fx/Instruction.d.ts.map +1 -0
- package/esm/Fx/Instruction.js +358 -0
- package/esm/Fx/Instruction.js.map +1 -0
- package/esm/Fx/index.d.ts +5 -0
- package/esm/Fx/index.d.ts.map +1 -0
- package/esm/Fx/index.js +5 -0
- package/esm/Fx/index.js.map +1 -0
- package/esm/Fx/join.d.ts +4 -0
- package/esm/Fx/join.d.ts.map +1 -0
- package/esm/Fx/join.js +12 -0
- package/esm/Fx/join.js.map +1 -0
- package/esm/Fx/logging.d.ts +11 -0
- package/esm/Fx/logging.d.ts.map +1 -0
- package/esm/Fx/logging.js +17 -0
- package/esm/Fx/logging.js.map +1 -0
- package/esm/Fx/scoped.d.ts +20 -0
- package/esm/Fx/scoped.d.ts.map +1 -0
- package/esm/Fx/scoped.js +45 -0
- package/esm/Fx/scoped.js.map +1 -0
- package/esm/ImmutableMap/ImmutableMap.d.ts +15 -0
- package/esm/ImmutableMap/ImmutableMap.d.ts.map +1 -0
- package/esm/ImmutableMap/ImmutableMap.js +35 -0
- package/esm/ImmutableMap/ImmutableMap.js.map +1 -0
- package/esm/ImmutableMap/index.d.ts +2 -0
- package/esm/ImmutableMap/index.d.ts.map +1 -0
- package/esm/ImmutableMap/index.js +2 -0
- package/esm/ImmutableMap/index.js.map +1 -0
- package/esm/Layer/Layer.d.ts +14 -0
- package/esm/Layer/Layer.d.ts.map +1 -0
- package/esm/Layer/Layer.js +14 -0
- package/esm/Layer/Layer.js.map +1 -0
- package/esm/Layer/index.d.ts +2 -0
- package/esm/Layer/index.d.ts.map +1 -0
- package/esm/Layer/index.js +2 -0
- package/esm/Layer/index.js.map +1 -0
- package/esm/Logger/Console.d.ts +3 -0
- package/esm/Logger/Console.d.ts.map +1 -0
- package/esm/Logger/Console.js +72 -0
- package/esm/Logger/Console.js.map +1 -0
- package/esm/Logger/LogAnnotation.d.ts +6 -0
- package/esm/Logger/LogAnnotation.d.ts.map +1 -0
- package/esm/Logger/LogAnnotation.js +4 -0
- package/esm/Logger/LogAnnotation.js.map +1 -0
- package/esm/Logger/LogLevel.d.ts +11 -0
- package/esm/Logger/LogLevel.d.ts.map +1 -0
- package/esm/Logger/LogLevel.js +12 -0
- package/esm/Logger/LogLevel.js.map +1 -0
- package/esm/Logger/LogSpan.d.ts +7 -0
- package/esm/Logger/LogSpan.d.ts.map +1 -0
- package/esm/Logger/LogSpan.js +4 -0
- package/esm/Logger/LogSpan.js.map +1 -0
- package/esm/Logger/Logger.d.ts +31 -0
- package/esm/Logger/Logger.d.ts.map +1 -0
- package/esm/Logger/Logger.js +36 -0
- package/esm/Logger/Logger.js.map +1 -0
- package/esm/Logger/index.d.ts +2 -0
- package/esm/Logger/index.d.ts.map +1 -0
- package/esm/Logger/index.js +2 -0
- package/esm/Logger/index.js.map +1 -0
- package/esm/Platform/Platform.d.ts +14 -0
- package/esm/Platform/Platform.d.ts.map +1 -0
- package/esm/Platform/Platform.js +19 -0
- package/esm/Platform/Platform.js.map +1 -0
- package/esm/Platform/TestPlatform.d.ts +7 -0
- package/esm/Platform/TestPlatform.d.ts.map +1 -0
- package/esm/Platform/TestPlatform.js +9 -0
- package/esm/Platform/TestPlatform.js.map +1 -0
- package/esm/Platform/index.d.ts +3 -0
- package/esm/Platform/index.d.ts.map +1 -0
- package/esm/Platform/index.js +3 -0
- package/esm/Platform/index.js.map +1 -0
- package/esm/Ref/Ref.d.ts +40 -0
- package/esm/Ref/Ref.d.ts.map +1 -0
- package/esm/Ref/Ref.js +30 -0
- package/esm/Ref/Ref.js.map +1 -0
- package/esm/Ref/atomic.d.ts +5 -0
- package/esm/Ref/atomic.d.ts.map +1 -0
- package/esm/Ref/atomic.js +16 -0
- package/esm/Ref/atomic.js.map +1 -0
- package/esm/Ref/index.d.ts +3 -0
- package/esm/Ref/index.d.ts.map +1 -0
- package/esm/Ref/index.js +3 -0
- package/esm/Ref/index.js.map +1 -0
- package/esm/Schedule/Decision.d.ts +15 -0
- package/esm/Schedule/Decision.d.ts.map +1 -0
- package/esm/Schedule/Decision.js +34 -0
- package/esm/Schedule/Decision.js.map +1 -0
- package/esm/Schedule/Schedule.d.ts +30 -0
- package/esm/Schedule/Schedule.d.ts.map +1 -0
- package/esm/Schedule/Schedule.js +64 -0
- package/esm/Schedule/Schedule.js.map +1 -0
- package/esm/Schedule/ScheduleState.d.ts +45 -0
- package/esm/Schedule/ScheduleState.d.ts.map +1 -0
- package/esm/Schedule/ScheduleState.js +54 -0
- package/esm/Schedule/ScheduleState.js.map +1 -0
- package/esm/Schedule/index.d.ts +4 -0
- package/esm/Schedule/index.d.ts.map +1 -0
- package/esm/Schedule/index.js +4 -0
- package/esm/Schedule/index.js.map +1 -0
- package/esm/Scheduler/RootScheduler.d.ts +4 -0
- package/esm/Scheduler/RootScheduler.d.ts.map +1 -0
- package/esm/Scheduler/RootScheduler.js +53 -0
- package/esm/Scheduler/RootScheduler.js.map +1 -0
- package/esm/Scheduler/Scheduler.d.ts +14 -0
- package/esm/Scheduler/Scheduler.d.ts.map +1 -0
- package/esm/Scheduler/Scheduler.js +3 -0
- package/esm/Scheduler/Scheduler.js.map +1 -0
- package/esm/Scheduler/callbackScheduler.d.ts +5 -0
- package/esm/Scheduler/callbackScheduler.d.ts.map +1 -0
- package/esm/Scheduler/callbackScheduler.js +32 -0
- package/esm/Scheduler/callbackScheduler.js.map +1 -0
- package/esm/Scheduler/index.d.ts +1 -0
- package/esm/Scheduler/index.d.ts.map +1 -0
- package/esm/Scheduler/index.js +2 -0
- package/esm/Scheduler/index.js.map +1 -0
- package/esm/Scheduler/scheduled.d.ts +10 -0
- package/esm/Scheduler/scheduled.d.ts.map +1 -0
- package/esm/Scheduler/scheduled.js +21 -0
- package/esm/Scheduler/scheduled.js.map +1 -0
- package/esm/Scope/Closeable.d.ts +11 -0
- package/esm/Scope/Closeable.d.ts.map +1 -0
- package/esm/Scope/Closeable.js +20 -0
- package/esm/Scope/Closeable.js.map +1 -0
- package/esm/Scope/GlobalScope.d.ts +3 -0
- package/esm/Scope/GlobalScope.d.ts.map +1 -0
- package/esm/Scope/GlobalScope.js +12 -0
- package/esm/Scope/GlobalScope.js.map +1 -0
- package/esm/Scope/LocalScope.d.ts +24 -0
- package/esm/Scope/LocalScope.d.ts.map +1 -0
- package/esm/Scope/LocalScope.js +70 -0
- package/esm/Scope/LocalScope.js.map +1 -0
- package/esm/Scope/ReleaseMap.d.ts +19 -0
- package/esm/Scope/ReleaseMap.d.ts.map +1 -0
- package/esm/Scope/ReleaseMap.js +62 -0
- package/esm/Scope/ReleaseMap.js.map +1 -0
- package/esm/Scope/Scope.d.ts +11 -0
- package/esm/Scope/Scope.d.ts.map +1 -0
- package/esm/Scope/Scope.js +3 -0
- package/esm/Scope/Scope.js.map +1 -0
- package/esm/Scope/ScopeState.d.ts +19 -0
- package/esm/Scope/ScopeState.d.ts.map +1 -0
- package/esm/Scope/ScopeState.js +24 -0
- package/esm/Scope/ScopeState.js.map +1 -0
- package/esm/Scope/index.d.ts +7 -0
- package/esm/Scope/index.d.ts.map +1 -0
- package/esm/Scope/index.js +7 -0
- package/esm/Scope/index.js.map +1 -0
- package/esm/Semaphore/Semaphore.d.ts +38 -0
- package/esm/Semaphore/Semaphore.d.ts.map +1 -0
- package/esm/Semaphore/Semaphore.js +87 -0
- package/esm/Semaphore/Semaphore.js.map +1 -0
- package/esm/Semaphore/index.d.ts +2 -0
- package/esm/Semaphore/index.d.ts.map +1 -0
- package/esm/Semaphore/index.js +2 -0
- package/esm/Semaphore/index.js.map +1 -0
- package/esm/Service/Id.d.ts +59 -0
- package/esm/Service/Id.d.ts.map +1 -0
- package/esm/Service/Id.js +62 -0
- package/esm/Service/Id.js.map +1 -0
- package/esm/Service/Service.d.ts +20 -0
- package/esm/Service/Service.d.ts.map +1 -0
- package/esm/Service/Service.js +14 -0
- package/esm/Service/Service.js.map +1 -0
- package/esm/Service/index.d.ts +4 -0
- package/esm/Service/index.d.ts.map +1 -0
- package/esm/Service/index.js +4 -0
- package/esm/Service/index.js.map +1 -0
- package/esm/Service/tagged.d.ts +23 -0
- package/esm/Service/tagged.d.ts.map +1 -0
- package/esm/Service/tagged.js +9 -0
- package/esm/Service/tagged.js.map +1 -0
- package/esm/Sink/Sink.d.ts +22 -0
- package/esm/Sink/Sink.d.ts.map +1 -0
- package/esm/Sink/Sink.js +26 -0
- package/esm/Sink/Sink.js.map +1 -0
- package/esm/Sink/index.d.ts +1 -0
- package/esm/Sink/index.d.ts.map +1 -0
- package/esm/Sink/index.js +2 -0
- package/esm/Sink/index.js.map +1 -0
- package/esm/Stack/index.d.ts +20 -0
- package/esm/Stack/index.d.ts.map +1 -0
- package/esm/Stack/index.js +70 -0
- package/esm/Stack/index.js.map +1 -0
- package/esm/StackFrame/StackFrame.d.ts +29 -0
- package/esm/StackFrame/StackFrame.d.ts.map +1 -0
- package/esm/StackFrame/StackFrame.js +35 -0
- package/esm/StackFrame/StackFrame.js.map +1 -0
- package/esm/StackFrame/getStackFrames.d.ts +7 -0
- package/esm/StackFrame/getStackFrames.d.ts.map +1 -0
- package/esm/StackFrame/getStackFrames.js +51 -0
- package/esm/StackFrame/getStackFrames.js.map +1 -0
- package/esm/StackFrame/index.d.ts +3 -0
- package/esm/StackFrame/index.d.ts.map +1 -0
- package/esm/StackFrame/index.js +3 -0
- package/esm/StackFrame/index.js.map +1 -0
- package/esm/StackFrame/parseChromeStack.d.ts +3 -0
- package/esm/StackFrame/parseChromeStack.d.ts.map +1 -0
- package/esm/StackFrame/parseChromeStack.js +32 -0
- package/esm/StackFrame/parseChromeStack.js.map +1 -0
- package/esm/StackFrame/parseGeckoStackFrame.d.ts +3 -0
- package/esm/StackFrame/parseGeckoStackFrame.d.ts.map +1 -0
- package/esm/StackFrame/parseGeckoStackFrame.js +24 -0
- package/esm/StackFrame/parseGeckoStackFrame.js.map +1 -0
- package/esm/Stream/Stream.d.ts +18 -0
- package/esm/Stream/Stream.d.ts.map +1 -0
- package/esm/Stream/Stream.js +4 -0
- package/esm/Stream/Stream.js.map +1 -0
- package/esm/Stream/drain.d.ts +11 -0
- package/esm/Stream/drain.d.ts.map +1 -0
- package/esm/Stream/drain.js +21 -0
- package/esm/Stream/drain.js.map +1 -0
- package/esm/Stream/fromFx.d.ts +4 -0
- package/esm/Stream/fromFx.d.ts.map +1 -0
- package/esm/Stream/fromFx.js +7 -0
- package/esm/Stream/fromFx.js.map +1 -0
- package/esm/Stream/index.d.ts +4 -0
- package/esm/Stream/index.d.ts.map +1 -0
- package/esm/Stream/index.js +4 -0
- package/esm/Stream/index.js.map +1 -0
- package/esm/Supervisor/Supervisor.d.ts +32 -0
- package/esm/Supervisor/Supervisor.d.ts.map +1 -0
- package/esm/Supervisor/Supervisor.js +40 -0
- package/esm/Supervisor/Supervisor.js.map +1 -0
- package/esm/Supervisor/index.d.ts +2 -0
- package/esm/Supervisor/index.d.ts.map +1 -0
- package/esm/Supervisor/index.js +2 -0
- package/esm/Supervisor/index.js.map +1 -0
- package/esm/Tagged/index.d.ts +79 -0
- package/esm/Tagged/index.d.ts.map +1 -0
- package/esm/Tagged/index.js +43 -0
- package/esm/Tagged/index.js.map +1 -0
- package/esm/Time/index.d.ts +95 -0
- package/esm/Time/index.d.ts.map +1 -0
- package/esm/Time/index.js +33 -0
- package/esm/Time/index.js.map +1 -0
- package/esm/Timeline/index.d.ts +27 -0
- package/esm/Timeline/index.d.ts.map +1 -0
- package/esm/Timeline/index.js +98 -0
- package/esm/Timeline/index.js.map +1 -0
- package/esm/Timer/SetTimeoutTimer.d.ts +4 -0
- package/esm/Timer/SetTimeoutTimer.d.ts.map +1 -0
- package/esm/Timer/SetTimeoutTimer.js +14 -0
- package/esm/Timer/SetTimeoutTimer.js.map +1 -0
- package/esm/Timer/TestTimer.d.ts +9 -0
- package/esm/Timer/TestTimer.d.ts.map +1 -0
- package/esm/Timer/TestTimer.js +25 -0
- package/esm/Timer/TestTimer.js.map +1 -0
- package/esm/Timer/Timer.d.ts +11 -0
- package/esm/Timer/Timer.d.ts.map +1 -0
- package/esm/Timer/Timer.js +16 -0
- package/esm/Timer/Timer.js.map +1 -0
- package/esm/Timer/index.d.ts +4 -0
- package/esm/Timer/index.d.ts.map +1 -0
- package/esm/Timer/index.js +4 -0
- package/esm/Timer/index.js.map +1 -0
- package/esm/Trace/Trace.d.ts +38 -0
- package/esm/Trace/Trace.d.ts.map +1 -0
- package/esm/Trace/Trace.js +152 -0
- package/esm/Trace/Trace.js.map +1 -0
- package/esm/Trace/index.d.ts +2 -0
- package/esm/Trace/index.d.ts.map +1 -0
- package/esm/Trace/index.js +2 -0
- package/esm/Trace/index.js.map +1 -0
- package/esm/Tracing/plugin.d.ts +10 -0
- package/esm/Tracing/plugin.d.ts.map +1 -0
- package/esm/Tracing/plugin.js +93 -0
- package/esm/Tracing/plugin.js.map +1 -0
- package/esm/Tracing/vite.d.ts +10 -0
- package/esm/Tracing/vite.d.ts.map +1 -0
- package/esm/Tracing/vite.js +50 -0
- package/esm/Tracing/vite.js.map +1 -0
- package/esm/index.d.ts +35 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +68 -0
- package/esm/index.js.map +1 -0
- package/esm/internal.d.ts +18 -0
- package/esm/internal.d.ts.map +1 -0
- package/esm/internal.js +2 -0
- package/esm/internal.js.map +1 -0
- package/esm/test.d.ts +1 -0
- package/esm/test.d.ts.map +1 -0
- package/esm/test.js +2 -0
- package/esm/test.js.map +1 -0
- package/package.json +1238 -0
- package/readme.md +35 -0
- package/src/Atomic/Atomic.ts +122 -0
- package/src/Atomic/AtomicCounter.ts +23 -0
- package/src/Atomic/index.ts +2 -0
- package/src/Cause/Cause.ts +425 -0
- package/src/Cause/CauseError.ts +55 -0
- package/src/Cause/Renderer.ts +289 -0
- package/src/Cause/index.ts +1 -0
- package/src/Cause/prettyStringify.ts +8 -0
- package/src/Clock/Clock.ts +82 -0
- package/src/Clock/DateClock.ts +9 -0
- package/src/Clock/TestClock.ts +25 -0
- package/src/Clock/index.ts +3 -0
- package/src/Disposable/Disposable.ts +63 -0
- package/src/Disposable/index.ts +1 -0
- package/src/Duration/Duration.ts +125 -0
- package/src/Duration/index.ts +1 -0
- package/src/Env/Env.ts +62 -0
- package/src/Env/index.ts +1 -0
- package/src/Exit/Exit.ts +50 -0
- package/src/Exit/hkt.ts +29 -0
- package/src/Exit/index.ts +2 -0
- package/src/Fiber/Fiber.ts +85 -0
- package/src/Fiber/index.ts +1 -0
- package/src/FiberContext/FiberContext.ts +67 -0
- package/src/FiberContext/index.ts +1 -0
- package/src/FiberId/FiberId.ts +122 -0
- package/src/FiberId/index.ts +1 -0
- package/src/FiberRef/FiberRef.ts +93 -0
- package/src/FiberRef/index.ts +3 -0
- package/src/FiberRef/operations.ts +19 -0
- package/src/FiberRefs/FiberRefs.ts +162 -0
- package/src/FiberRefs/index.ts +1 -0
- package/src/FiberRuntime/FiberRuntime.ts +742 -0
- package/src/FiberRuntime/Frame.ts +28 -0
- package/src/FiberRuntime/index.ts +1 -0
- package/src/FiberStatus/index.ts +37 -0
- package/src/Finalizer/Finalizer.ts +48 -0
- package/src/Finalizer/index.ts +1 -0
- package/src/Future/Future.ts +72 -0
- package/src/Future/MutableFutureQueue.ts +58 -0
- package/src/Future/complete.ts +16 -0
- package/src/Future/index.ts +3 -0
- package/src/Future/wait.ts +8 -0
- package/src/Fx/Fx.test.ts +110 -0
- package/src/Fx/Fx.ts +629 -0
- package/src/Fx/Instruction.ts +468 -0
- package/src/Fx/index.ts +4 -0
- package/src/Fx/join.ts +17 -0
- package/src/Fx/logging.ts +69 -0
- package/src/Fx/scoped.ts +77 -0
- package/src/ImmutableMap/ImmutableMap.ts +55 -0
- package/src/ImmutableMap/index.ts +1 -0
- package/src/Layer/Layer.ts +44 -0
- package/src/Layer/index.ts +1 -0
- package/src/Logger/Console.test.ts +10 -0
- package/src/Logger/Console.ts +85 -0
- package/src/Logger/LogAnnotation.ts +8 -0
- package/src/Logger/LogLevel.ts +10 -0
- package/src/Logger/LogSpan.ts +10 -0
- package/src/Logger/Logger.ts +83 -0
- package/src/Logger/index.ts +1 -0
- package/src/Platform/Platform.ts +42 -0
- package/src/Platform/TestPlatform.ts +14 -0
- package/src/Platform/index.ts +2 -0
- package/src/Ref/Ref.test.ts +34 -0
- package/src/Ref/Ref.ts +76 -0
- package/src/Ref/atomic.ts +33 -0
- package/src/Ref/index.ts +2 -0
- package/src/Schedule/Decision.ts +44 -0
- package/src/Schedule/Schedule.ts +148 -0
- package/src/Schedule/ScheduleState.ts +80 -0
- package/src/Schedule/index.ts +3 -0
- package/src/Scheduler/RootScheduler.ts +84 -0
- package/src/Scheduler/Scheduler.ts +21 -0
- package/src/Scheduler/callbackScheduler.ts +43 -0
- package/src/Scheduler/index.ts +0 -0
- package/src/Scheduler/scheduled.ts +32 -0
- package/src/Scope/Closeable.test.ts +98 -0
- package/src/Scope/Closeable.ts +35 -0
- package/src/Scope/GlobalScope.ts +15 -0
- package/src/Scope/LocalScope.ts +93 -0
- package/src/Scope/ReleaseMap.ts +95 -0
- package/src/Scope/Scope.ts +13 -0
- package/src/Scope/ScopeState.ts +45 -0
- package/src/Scope/index.ts +6 -0
- package/src/Semaphore/Semaphore.ts +110 -0
- package/src/Semaphore/index.ts +1 -0
- package/src/Service/Id.ts +87 -0
- package/src/Service/Service.ts +31 -0
- package/src/Service/index.ts +3 -0
- package/src/Service/tagged.ts +10 -0
- package/src/Sink/Sink.ts +65 -0
- package/src/Sink/index.ts +0 -0
- package/src/Stack/index.ts +88 -0
- package/src/StackFrame/StackFrame.ts +68 -0
- package/src/StackFrame/getStackFrames.test.ts +30 -0
- package/src/StackFrame/getStackFrames.ts +70 -0
- package/src/StackFrame/index.ts +2 -0
- package/src/StackFrame/parseChromeStack.ts +43 -0
- package/src/StackFrame/parseGeckoStackFrame.ts +31 -0
- package/src/Stream/Stream.ts +21 -0
- package/src/Stream/drain.ts +73 -0
- package/src/Stream/fromFx.test.ts +39 -0
- package/src/Stream/fromFx.ts +27 -0
- package/src/Stream/index.ts +3 -0
- package/src/Supervisor/Supervisor.ts +49 -0
- package/src/Supervisor/index.ts +1 -0
- package/src/Tagged/index.ts +127 -0
- package/src/Time/index.ts +62 -0
- package/src/Timeline/index.ts +157 -0
- package/src/Timer/SetTimeoutTimer.ts +19 -0
- package/src/Timer/TestTimer.ts +39 -0
- package/src/Timer/Timer.ts +24 -0
- package/src/Timer/index.ts +3 -0
- package/src/Trace/Trace.ts +210 -0
- package/src/Trace/index.ts +1 -0
- package/src/Tracing/plugin.ts +155 -0
- package/src/Tracing/vite.ts +72 -0
- package/src/index.ts +34 -0
- package/src/internal.ts +33 -0
- package/src/test.ts +0 -0
- package/tools/common.ts +43 -0
- package/tools/generatePackageExports.ts +100 -0
- package/tsconfig.base.json +32 -0
- package/tsconfig.build.cjs.json +26 -0
- package/tsconfig.build.esm.json +30 -0
- package/tsconfig.build.tracing.json +16 -0
- package/tsconfig.json +8 -0
- package/tsconfig.test.json +17 -0
- package/vite.config.ts +28 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { constant } from 'hkt-ts/function'
|
|
2
|
+
import { NonNegativeInteger } from 'hkt-ts/number'
|
|
3
|
+
|
|
4
|
+
import { MutableFutureQueue } from '@/Future/MutableFutureQueue.js'
|
|
5
|
+
import { wait } from '@/Future/wait.js'
|
|
6
|
+
import { Fx, Of, fromLazy, unit } from '@/Fx/Fx.js'
|
|
7
|
+
import { fiberScoped, managed, scoped } from '@/Fx/scoped.js'
|
|
8
|
+
|
|
9
|
+
export class Semaphore {
|
|
10
|
+
protected waiting = MutableFutureQueue<never, never, void>()
|
|
11
|
+
protected running = 0
|
|
12
|
+
|
|
13
|
+
constructor(readonly maxPermits: NonNegativeInteger) {}
|
|
14
|
+
|
|
15
|
+
// Retrieve the number of permits still available
|
|
16
|
+
get available(): NonNegativeInteger {
|
|
17
|
+
return NonNegativeInteger(Math.max(0, this.maxPermits - this.running))
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
get acquired(): NonNegativeInteger {
|
|
21
|
+
return NonNegativeInteger(this.running)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
readonly prepare = fromLazy(() => {
|
|
25
|
+
if (this.available > 0) {
|
|
26
|
+
return new Acquisition(
|
|
27
|
+
fromLazy(() => {
|
|
28
|
+
this.running++
|
|
29
|
+
}),
|
|
30
|
+
this.release,
|
|
31
|
+
)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const [future] = this.waiting.waitFor(1)
|
|
35
|
+
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
37
|
+
const that = this
|
|
38
|
+
const acquisition = new Acquisition(
|
|
39
|
+
Fx(function* () {
|
|
40
|
+
yield* wait(future)
|
|
41
|
+
|
|
42
|
+
that.running++
|
|
43
|
+
}),
|
|
44
|
+
this.release,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
return acquisition
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
protected release = fromLazy(() => {
|
|
51
|
+
this.running = Math.max(0, this.running - 1)
|
|
52
|
+
|
|
53
|
+
if (this.waiting.size() > 0) {
|
|
54
|
+
this.waiting.next(unit)
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export class Acquisition {
|
|
60
|
+
constructor(readonly acquire: Of<void>, readonly release: Of<void>) {}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Specialization of Semaphore which only allows 1 permit.
|
|
65
|
+
*/
|
|
66
|
+
export class Lock extends Semaphore {
|
|
67
|
+
constructor() {
|
|
68
|
+
super(NonNegativeInteger(1))
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Acquire a permit from a given semaphore, blocking until it is available.
|
|
74
|
+
* Must be used with Fx.scoped() to release the permit at the desired time.
|
|
75
|
+
*/
|
|
76
|
+
export function acquirePermit(semaphore: Semaphore) {
|
|
77
|
+
return Fx(function* () {
|
|
78
|
+
const { acquire, release } = yield* semaphore.prepare
|
|
79
|
+
|
|
80
|
+
return yield* managed(acquire, constant(release))
|
|
81
|
+
})
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Acquire a permit from a given semaphore, run an Fx, and then release the permit.
|
|
86
|
+
*/
|
|
87
|
+
export function acquire(semaphore: Semaphore) {
|
|
88
|
+
return <R, E, A>(fx: Fx<R, E, A>) =>
|
|
89
|
+
scoped(
|
|
90
|
+
Fx(function* () {
|
|
91
|
+
yield* acquirePermit(semaphore)
|
|
92
|
+
|
|
93
|
+
return yield* fx
|
|
94
|
+
}),
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Acquire a permit from a given semaphore, run an Fx, and then release the permit.
|
|
100
|
+
*/
|
|
101
|
+
export function acquireFiber(semaphore: Semaphore) {
|
|
102
|
+
return <R, E, A>(fx: Fx<R, E, A>) =>
|
|
103
|
+
fiberScoped(
|
|
104
|
+
Fx(function* () {
|
|
105
|
+
yield* acquirePermit(semaphore)
|
|
106
|
+
|
|
107
|
+
return yield* fx
|
|
108
|
+
}),
|
|
109
|
+
)
|
|
110
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Semaphore.js'
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Service } from './Service.js'
|
|
2
|
+
|
|
3
|
+
import { Fx, RIO, ask } from '@/Fx/Fx.js'
|
|
4
|
+
import * as Layer from '@/Layer/Layer.js'
|
|
5
|
+
import { Scope } from '@/Scope/Scope.js'
|
|
6
|
+
|
|
7
|
+
const idCache = new WeakMap<object, Service<any>>()
|
|
8
|
+
|
|
9
|
+
export type InstanceOf<T> = T extends new (...args: any) => infer R ? R : T
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Extendable class for constructing a Service
|
|
13
|
+
*/
|
|
14
|
+
export class Id {
|
|
15
|
+
readonly name: string = this.constructor.name
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The ID of the Service.
|
|
19
|
+
*
|
|
20
|
+
* Unfortunately, in order to get type-inference the way we'd like this must
|
|
21
|
+
* currently be a method to access the "this" type in sub-classes.
|
|
22
|
+
*/
|
|
23
|
+
static id<S extends { readonly name: string }>(this: S): Service<InstanceOf<S>> {
|
|
24
|
+
return getCachedId(this)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Replicate the same ID to the instance.
|
|
28
|
+
readonly id: Service<this> = (this.constructor as any).id()
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Retrieve this service at Runtime, requiring it from the given Environment.
|
|
32
|
+
*/
|
|
33
|
+
static ask<
|
|
34
|
+
S extends {
|
|
35
|
+
readonly id: () => Service<any>
|
|
36
|
+
new (...args: any): any
|
|
37
|
+
},
|
|
38
|
+
>(this: S): RIO<InstanceOf<S>, InstanceOf<S>> {
|
|
39
|
+
return ask(this.id())
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Construct a Layer that provides this service.
|
|
44
|
+
*/
|
|
45
|
+
static layer<
|
|
46
|
+
S extends {
|
|
47
|
+
readonly id: () => Service<any>
|
|
48
|
+
new (...args: any): any
|
|
49
|
+
},
|
|
50
|
+
R,
|
|
51
|
+
E,
|
|
52
|
+
>(this: S, provider: Fx<R | Scope, E, InstanceOf<S>>): Layer.Layer<R, E, InstanceOf<S>> {
|
|
53
|
+
return Layer.fromFx(this.id(), provider)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Helper for constructing IDs that are tied to a particular object, which much have
|
|
59
|
+
* a name to create the Service Key. Particularly useful for creating Class declarations for Services.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* import * as S from '@typed/fx/Service'
|
|
63
|
+
* import * as Fx from '@typed/fx/Fx'
|
|
64
|
+
*
|
|
65
|
+
* class Foo {
|
|
66
|
+
* static id = S.getCachedId(this)
|
|
67
|
+
*
|
|
68
|
+
* constructor(readonly foo: string) {}
|
|
69
|
+
* }
|
|
70
|
+
*
|
|
71
|
+
* const program = Fx.Fx(function*(){
|
|
72
|
+
* const { foo }: Foo = yield* Fx.ask(Foo.id)
|
|
73
|
+
*a
|
|
74
|
+
* return foo // string
|
|
75
|
+
* })
|
|
76
|
+
*/
|
|
77
|
+
export function getCachedId<S extends { readonly name: string }>(key: S): Service<InstanceOf<S>> {
|
|
78
|
+
if (idCache.has(key)) {
|
|
79
|
+
return idCache.get(key) as Service<InstanceOf<S>>
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const s = Service<InstanceOf<S>>(key.name)
|
|
83
|
+
|
|
84
|
+
idCache.set(key, s)
|
|
85
|
+
|
|
86
|
+
return s
|
|
87
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Tagged } from '@/Tagged/index.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The Definition/ID of a Service
|
|
5
|
+
*/
|
|
6
|
+
export type Service<S> = Tagged<
|
|
7
|
+
{
|
|
8
|
+
readonly Service: S
|
|
9
|
+
},
|
|
10
|
+
symbol
|
|
11
|
+
>
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Construct a Service, the provided name is used for debugging purposes and is required.
|
|
15
|
+
*/
|
|
16
|
+
export const Service = <S>(name: string): Service<S> => Tagged<Service<S>>()(Symbol(name))
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Extract the output of a Service
|
|
20
|
+
*/
|
|
21
|
+
export type OutputOf<T> = [T] extends [Service<infer S>] ? S : never
|
|
22
|
+
|
|
23
|
+
const symbolRegex = /^Symbol/i
|
|
24
|
+
const serviceText = 'Service'
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Format a Service's into a string.
|
|
28
|
+
*/
|
|
29
|
+
export function formatService<A>(service: Service<A>) {
|
|
30
|
+
return service.toString().replace(symbolRegex, serviceText)
|
|
31
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Id } from './Id.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Sometimes it is necessary to tag a Service to ensure it is considered different from another at the type-level.
|
|
5
|
+
*/
|
|
6
|
+
export const tagged = <Tag extends string>(tag: Tag) =>
|
|
7
|
+
class TaggedService extends Id {
|
|
8
|
+
static tag: Tag = tag
|
|
9
|
+
readonly tag: Tag = tag
|
|
10
|
+
}
|
package/src/Sink/Sink.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { flow, pipe } from 'hkt-ts'
|
|
2
|
+
import { Left, Right } from 'hkt-ts/Either'
|
|
3
|
+
|
|
4
|
+
import { Cause } from '@/Cause/Cause.js'
|
|
5
|
+
import { Fx, IO, getEnv, provide, unit } from '@/Fx/Fx.js'
|
|
6
|
+
import { Closeable } from '@/Scope/Closeable.js'
|
|
7
|
+
|
|
8
|
+
export interface Sink<E, A> {
|
|
9
|
+
readonly event: (a: A) => IO<E, any>
|
|
10
|
+
readonly error: (cause: Cause<E>) => IO<E, any>
|
|
11
|
+
readonly end: IO<E, any>
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export class Drain<E, A> implements Sink<E, A> {
|
|
15
|
+
constructor(readonly scope: Closeable) {}
|
|
16
|
+
|
|
17
|
+
readonly event: Sink<E, A>['event'] = () => unit as IO<E, any>
|
|
18
|
+
readonly error: Sink<E, A>['error'] = (cause) => this.scope.close(Left(cause)) as IO<E, any>
|
|
19
|
+
readonly end: Sink<E, A>['end'] = this.scope.close(Right(undefined)) as IO<E, any>
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface SinkFx<
|
|
23
|
+
E,
|
|
24
|
+
A,
|
|
25
|
+
R2 = never,
|
|
26
|
+
E2 = never,
|
|
27
|
+
R3 = never,
|
|
28
|
+
E3 = never,
|
|
29
|
+
R4 = never,
|
|
30
|
+
E4 = never,
|
|
31
|
+
> {
|
|
32
|
+
readonly event?: (a: A) => Fx<R2, E2, any>
|
|
33
|
+
readonly error?: (cause: Cause<E>) => Fx<R3, E3, any>
|
|
34
|
+
readonly end?: Fx<R4, E4, any>
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function makeDrain<
|
|
38
|
+
E,
|
|
39
|
+
A,
|
|
40
|
+
R2 = never,
|
|
41
|
+
E2 = never,
|
|
42
|
+
R3 = never,
|
|
43
|
+
E3 = never,
|
|
44
|
+
R4 = never,
|
|
45
|
+
E4 = never,
|
|
46
|
+
>(
|
|
47
|
+
scope: Closeable,
|
|
48
|
+
fx: SinkFx<E, A, R2, E2, R3, E3, R4, E4>,
|
|
49
|
+
): Fx<R2 | R3 | R4, never, Sink<E | E2 | E3 | E4, A>> {
|
|
50
|
+
return Fx(function* () {
|
|
51
|
+
const env = yield* getEnv<R2 | R3 | R4>()
|
|
52
|
+
const drain = new Drain<E, A>(scope)
|
|
53
|
+
|
|
54
|
+
type O = Sink<E | E2 | E3 | E4, A>
|
|
55
|
+
|
|
56
|
+
// TODO: Should drain always be called for error + end?
|
|
57
|
+
const sink: O = {
|
|
58
|
+
event: (fx.event ? flow(fx.event, provide(env)) : drain.event) as O['event'],
|
|
59
|
+
error: (fx.error ? flow(fx.error, provide(env)) : drain.error) as O['error'],
|
|
60
|
+
end: (fx.end ? pipe(fx.end, provide(env)) : drain.end) as O['end'],
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return sink
|
|
64
|
+
})
|
|
65
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { pipe } from 'hkt-ts'
|
|
2
|
+
import { NonEmptyArray, map } from 'hkt-ts/NonEmptyArray'
|
|
3
|
+
import * as Assoc from 'hkt-ts/Typeclass/Associative'
|
|
4
|
+
import * as E from 'hkt-ts/Typeclass/Eq'
|
|
5
|
+
import { Identity } from 'hkt-ts/Typeclass/Identity'
|
|
6
|
+
|
|
7
|
+
export class Stack<A> {
|
|
8
|
+
constructor(readonly value: A, readonly previous: Stack<A> | null = null) {}
|
|
9
|
+
|
|
10
|
+
readonly push = (value: A): Stack<A> => new Stack(value, this)
|
|
11
|
+
readonly pop = (): Stack<A> | null => this.previous
|
|
12
|
+
readonly replace = (f: (value: A) => A): Stack<A> => new Stack(f(this.value), this.previous);
|
|
13
|
+
|
|
14
|
+
*[Symbol.iterator]() {
|
|
15
|
+
yield this.value
|
|
16
|
+
|
|
17
|
+
let current = this.previous
|
|
18
|
+
while (current) {
|
|
19
|
+
yield current.value
|
|
20
|
+
current = current.previous
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const makeEq = <A>(A: E.Eq<A>): E.Eq<Stack<A>> => {
|
|
26
|
+
const eq: E.Eq<Stack<A>> = E.struct({
|
|
27
|
+
value: A,
|
|
28
|
+
previous: E.nullable(E.lazy(() => eq)),
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
return eq
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function toNonEmptyArray<A>(stack: Stack<A>): NonEmptyArray<A> {
|
|
35
|
+
return Array.from(stack) as any
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function fromNonEmptyArray<A>(a: NonEmptyArray<A>): Stack<A> {
|
|
39
|
+
return a
|
|
40
|
+
.slice(0, a.length - 1)
|
|
41
|
+
.reduceRight((prev, a) => new Stack(a, prev), new Stack(a[a.length - 1]))
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const join =
|
|
45
|
+
<A>(AssocA: Assoc.Associative<A>) =>
|
|
46
|
+
(second: Stack<A>) =>
|
|
47
|
+
(first: Stack<A>): Stack<A> => {
|
|
48
|
+
const f = toNonEmptyArray(first)
|
|
49
|
+
const fl = f.length
|
|
50
|
+
const s = toNonEmptyArray(second)
|
|
51
|
+
const sl = s.length
|
|
52
|
+
|
|
53
|
+
if (fl === 0) {
|
|
54
|
+
return second
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (sl === 0) {
|
|
58
|
+
return first
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Fast-path for stacks that are equal in size
|
|
62
|
+
if (fl === sl) {
|
|
63
|
+
return pipe(
|
|
64
|
+
f,
|
|
65
|
+
map((a, i) => AssocA.concat(a, s[i])),
|
|
66
|
+
fromNonEmptyArray,
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const hi = fl > sl ? f : s
|
|
71
|
+
const lo = fl < sl ? s : f
|
|
72
|
+
const diff = hi.length - lo.length
|
|
73
|
+
const join = fl > sl ? AssocA.concat : Assoc.reverse(AssocA).concat
|
|
74
|
+
const toPrepend = lo.slice(0, diff)
|
|
75
|
+
const toConcat = hi.slice(diff)
|
|
76
|
+
|
|
77
|
+
return fromNonEmptyArray([...toPrepend, ...toConcat.map((a, i) => join(a, lo[i]))] as any)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export const makeAssociative = <A>(AssocA: Assoc.Associative<A>): Assoc.Associative<Stack<A>> => ({
|
|
81
|
+
concat: (f, s) => join(AssocA)(f)(s),
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
// takes an Identity<A> and returns an Identity<Stack<A>>
|
|
85
|
+
export const makeIdentity = <A>(I: Identity<A>): Identity<Stack<A>> => ({
|
|
86
|
+
...makeAssociative(I),
|
|
87
|
+
id: new Stack(I.id),
|
|
88
|
+
})
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import * as D from 'hkt-ts/Typeclass/Debug'
|
|
2
|
+
import * as E from 'hkt-ts/Typeclass/Eq'
|
|
3
|
+
import * as O from 'hkt-ts/Typeclass/Ord'
|
|
4
|
+
import * as N from 'hkt-ts/number'
|
|
5
|
+
import * as S from 'hkt-ts/string'
|
|
6
|
+
|
|
7
|
+
export type StackFrame = InstrumentedStackFrame | RuntimeStackFrame | CustomStackFrame
|
|
8
|
+
|
|
9
|
+
export interface InstrumentedStackFrame {
|
|
10
|
+
readonly tag: 'Instrumented'
|
|
11
|
+
readonly file: string
|
|
12
|
+
readonly method: string
|
|
13
|
+
readonly line: number
|
|
14
|
+
readonly column: number
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface RuntimeStackFrame {
|
|
18
|
+
readonly tag: 'Runtime'
|
|
19
|
+
readonly file: string
|
|
20
|
+
readonly method: string
|
|
21
|
+
readonly line: number
|
|
22
|
+
readonly column: number
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface CustomStackFrame {
|
|
26
|
+
readonly tag: 'Custom'
|
|
27
|
+
readonly trace: string
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const Eq: E.Eq<StackFrame> = E.sum<StackFrame>()('tag')({
|
|
31
|
+
Instrumented: E.struct({
|
|
32
|
+
tag: E.AlwaysEqual,
|
|
33
|
+
file: S.Eq,
|
|
34
|
+
method: S.Eq,
|
|
35
|
+
line: N.Eq,
|
|
36
|
+
column: N.Eq,
|
|
37
|
+
}),
|
|
38
|
+
Runtime: E.struct({
|
|
39
|
+
tag: E.AlwaysEqual,
|
|
40
|
+
file: S.Eq,
|
|
41
|
+
method: S.Eq,
|
|
42
|
+
line: N.Eq,
|
|
43
|
+
column: N.Eq,
|
|
44
|
+
}),
|
|
45
|
+
Custom: E.struct({
|
|
46
|
+
tag: E.AlwaysEqual,
|
|
47
|
+
trace: S.Eq,
|
|
48
|
+
}),
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
export const Ord: O.Ord<StackFrame> = O.Static
|
|
52
|
+
|
|
53
|
+
export const Debug: D.Debug<StackFrame> = {
|
|
54
|
+
debug: (frame) =>
|
|
55
|
+
frame.tag === 'Custom'
|
|
56
|
+
? frame.trace
|
|
57
|
+
: `at ${frame.method} (${frame.file}${frame.line > -1 ? `:${frame.line}` : ``}${
|
|
58
|
+
frame.column > -1 ? `:${frame.column}` : ``
|
|
59
|
+
})`,
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export const debug = Debug.debug
|
|
63
|
+
|
|
64
|
+
export type StackFrames = ReadonlyArray<StackFrame>
|
|
65
|
+
|
|
66
|
+
export const StackFramesDebug: D.Debug<StackFrames> = {
|
|
67
|
+
debug: (frames) => frames.map(debug).join('\n'),
|
|
68
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { deepEqual, ok } from 'assert'
|
|
2
|
+
import { dirname } from 'path'
|
|
3
|
+
|
|
4
|
+
import { isJust } from 'hkt-ts/Maybe'
|
|
5
|
+
|
|
6
|
+
import { getCurrentStackFrame, getStackFrames } from './getStackFrames.js'
|
|
7
|
+
|
|
8
|
+
const filename = new URL(import.meta.url).pathname
|
|
9
|
+
const root = dirname(dirname(dirname(filename))) + '/'
|
|
10
|
+
|
|
11
|
+
describe(filename, function () {
|
|
12
|
+
describe(getStackFrames.name, function () {
|
|
13
|
+
it('returns stack frames from an error', function test() {
|
|
14
|
+
const frame = getCurrentStackFrame() // Provide this for some consistency in the return
|
|
15
|
+
|
|
16
|
+
ok(isJust(frame))
|
|
17
|
+
|
|
18
|
+
deepEqual(
|
|
19
|
+
{ ...frame.value, file: frame.value.file.replace(`${root}`, '') },
|
|
20
|
+
{
|
|
21
|
+
tag: 'Runtime',
|
|
22
|
+
file: 'src/StackFrame/getStackFrames.ts',
|
|
23
|
+
method: 'getCurrentStackFrame',
|
|
24
|
+
line: 47,
|
|
25
|
+
column: 11,
|
|
26
|
+
},
|
|
27
|
+
)
|
|
28
|
+
})
|
|
29
|
+
})
|
|
30
|
+
})
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Just, Maybe, Nothing } from 'hkt-ts/Maybe'
|
|
2
|
+
|
|
3
|
+
import type { RuntimeStackFrame } from './StackFrame.js'
|
|
4
|
+
import { parseChrome } from './parseChromeStack.js'
|
|
5
|
+
import { parseGecko } from './parseGeckoStackFrame.js'
|
|
6
|
+
|
|
7
|
+
export function getStackFrames<E extends { stack?: string } = Error>(
|
|
8
|
+
error: E = {} as E,
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
10
|
+
targetObject?: Function,
|
|
11
|
+
): ReadonlyArray<RuntimeStackFrame> {
|
|
12
|
+
if (!error.stack && Error.captureStackTrace) {
|
|
13
|
+
Error.captureStackTrace(error, targetObject)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const stack = error.stack
|
|
17
|
+
|
|
18
|
+
if (!stack) {
|
|
19
|
+
return []
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const stackFrames = stack
|
|
23
|
+
.split('\n')
|
|
24
|
+
.map((x) => x.trim())
|
|
25
|
+
.filter((x) => x.length !== 0)
|
|
26
|
+
.flatMap((s) => {
|
|
27
|
+
const frame = parseChrome(s) || parseGecko(s)
|
|
28
|
+
|
|
29
|
+
return frame ? [frame] : []
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
// Append all of the parents traces
|
|
33
|
+
if (error instanceof Error && error.cause) {
|
|
34
|
+
return [...stackFrames, ...getStackFrames(error.cause)]
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return stackFrames
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function getCurrentStackFrame(
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
42
|
+
targetObject?: Function,
|
|
43
|
+
): Maybe<RuntimeStackFrame> {
|
|
44
|
+
const error = new Error()
|
|
45
|
+
|
|
46
|
+
if (Error.captureStackTrace) {
|
|
47
|
+
Error.captureStackTrace(error, targetObject)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const stack = error.stack
|
|
51
|
+
|
|
52
|
+
if (!stack) {
|
|
53
|
+
return Nothing
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const frames = stack
|
|
57
|
+
.split('\n')
|
|
58
|
+
.map((x) => x.trim())
|
|
59
|
+
.filter((x) => x.length !== 0)
|
|
60
|
+
|
|
61
|
+
for (const line of frames) {
|
|
62
|
+
const frame = parseChrome(line) || parseGecko(line)
|
|
63
|
+
|
|
64
|
+
if (frame) {
|
|
65
|
+
return Just(frame)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return Nothing
|
|
70
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { RuntimeStackFrame } from './StackFrame.js'
|
|
2
|
+
|
|
3
|
+
const chromeRe =
|
|
4
|
+
/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i
|
|
5
|
+
const chromeEvalRe = /\((\S*)(?::(\d+))(?::(\d+))\)/
|
|
6
|
+
|
|
7
|
+
export function parseChrome(line: string): RuntimeStackFrame | null {
|
|
8
|
+
const parts = chromeRe.exec(line)
|
|
9
|
+
|
|
10
|
+
if (!parts) {
|
|
11
|
+
return null
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const isNative = parts[2] && parts[2].indexOf('native') === 0 // start of line
|
|
15
|
+
const isEval = parts[2] && parts[2].indexOf('eval') === 0 // start of line
|
|
16
|
+
|
|
17
|
+
const submatch = chromeEvalRe.exec(parts[2])
|
|
18
|
+
|
|
19
|
+
if (isEval && submatch != null) {
|
|
20
|
+
// throw out eval line/column and use top-most line/column number
|
|
21
|
+
parts[2] = submatch[1] // url
|
|
22
|
+
parts[3] = submatch[2] // line
|
|
23
|
+
parts[4] = submatch[3] // column
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
tag: 'Runtime',
|
|
28
|
+
file: !isNative ? parseRealFilename(parts[2]) : '',
|
|
29
|
+
method: parts[1] || '',
|
|
30
|
+
line: parts[3] ? +parts[3] : -1,
|
|
31
|
+
column: parts[4] ? +parts[4] : -1,
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function parseRealFilename(s: string): string {
|
|
36
|
+
if (s.startsWith('file:/')) {
|
|
37
|
+
const x = s.split(/file:/g)
|
|
38
|
+
|
|
39
|
+
return x[x.length - 1]
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return s
|
|
43
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { RuntimeStackFrame } from './StackFrame.js'
|
|
2
|
+
|
|
3
|
+
const geckoRe =
|
|
4
|
+
/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i
|
|
5
|
+
const geckoEvalRe = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i
|
|
6
|
+
|
|
7
|
+
export function parseGecko(line: string): RuntimeStackFrame | null {
|
|
8
|
+
const parts = geckoRe.exec(line)
|
|
9
|
+
|
|
10
|
+
if (!parts) {
|
|
11
|
+
return null
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const isEval = parts[3] && parts[3].indexOf(' > eval') > -1
|
|
15
|
+
|
|
16
|
+
const submatch = geckoEvalRe.exec(parts[3])
|
|
17
|
+
if (isEval && submatch != null) {
|
|
18
|
+
// throw out eval line/column and use top-most line number
|
|
19
|
+
parts[3] = submatch[1]
|
|
20
|
+
parts[4] = submatch[2]
|
|
21
|
+
parts[5] = '-1' // no column when eval
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
tag: 'Runtime',
|
|
26
|
+
file: parts[3],
|
|
27
|
+
method: parts[1] || '',
|
|
28
|
+
line: parts[4] ? +parts[4] : -1,
|
|
29
|
+
column: parts[5] ? +parts[5] : 0,
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Live } from '@/Fiber/Fiber.js'
|
|
2
|
+
import { FiberContext } from '@/FiberContext/FiberContext.js'
|
|
3
|
+
import * as Fx from '@/Fx/Fx.js'
|
|
4
|
+
import { Scheduler } from '@/Scheduler/Scheduler.js'
|
|
5
|
+
import { Sink } from '@/Sink/Sink.js'
|
|
6
|
+
|
|
7
|
+
export interface Stream<R, E, A> {
|
|
8
|
+
readonly fork: <E2>(
|
|
9
|
+
sink: Sink<E | E2, A>,
|
|
10
|
+
scheduler: Scheduler,
|
|
11
|
+
context: FiberContext,
|
|
12
|
+
) => Fx.RIO<R, Live<E | E2, any>>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface RIO<R, A> extends Stream<R, never, A> {}
|
|
16
|
+
export interface IO<E, A> extends Stream<never, E, A> {}
|
|
17
|
+
export interface Of<A> extends Stream<never, never, A> {}
|
|
18
|
+
|
|
19
|
+
export function Stream<R, E, A>(fork: Stream<R, E, A>['fork']) {
|
|
20
|
+
return { fork }
|
|
21
|
+
}
|