@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,44 @@
|
|
|
1
|
+
import { pipe } from 'hkt-ts/function'
|
|
2
|
+
|
|
3
|
+
import * as Fx from '@/Fx/Fx.js'
|
|
4
|
+
import { Scope } from '@/Scope/Scope.js'
|
|
5
|
+
import { Service } from '@/Service/Service.js'
|
|
6
|
+
|
|
7
|
+
// TODO: Global Layers
|
|
8
|
+
// TODO: Refreshing
|
|
9
|
+
// TODO: Combinators for providing fallbacks
|
|
10
|
+
// TODO: Combinators for composing layers
|
|
11
|
+
|
|
12
|
+
export interface Layer<R, E, A> {
|
|
13
|
+
readonly service: Service<A>
|
|
14
|
+
readonly build: (scope: Scope) => Fx.Fx<R, E, A>
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type AnyLayer =
|
|
18
|
+
| Layer<any, any, any>
|
|
19
|
+
| Layer<never, never, any>
|
|
20
|
+
| Layer<never, any, any>
|
|
21
|
+
| Layer<any, never, any>
|
|
22
|
+
|
|
23
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
24
|
+
export type ResourcesOf<T> = T extends Layer<infer _R, infer _E, infer _A> ? _R : never
|
|
25
|
+
export type ErrorsOf<T> = T extends Layer<infer _R, infer _E, infer _A> ? _E : never
|
|
26
|
+
export type OutputOf<T> = T extends Layer<infer _R, infer _E, infer _A> ? _A : never
|
|
27
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
28
|
+
|
|
29
|
+
export function Layer<R, E, A>(
|
|
30
|
+
service: Service<A>,
|
|
31
|
+
build: Layer<R, E, A>['build'],
|
|
32
|
+
): Layer<R, E, A> {
|
|
33
|
+
return {
|
|
34
|
+
service,
|
|
35
|
+
build,
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function fromFx<S, R, E, A extends S>(
|
|
40
|
+
s: Service<S>,
|
|
41
|
+
fx: Fx.Fx<R | Scope, E, A>,
|
|
42
|
+
): Layer<R, E, S> {
|
|
43
|
+
return Layer(s, (scope) => pipe(fx, Fx.provideService(Scope, scope)))
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Layer.js'
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { runTest } from '@/Fx/Fx.test.js'
|
|
2
|
+
import { log, span } from '@/Fx/logging.js'
|
|
3
|
+
|
|
4
|
+
describe(new URL(import.meta.url).pathname, () => {
|
|
5
|
+
it('allows logging to the console', async () => {
|
|
6
|
+
const test = span('foo')(log('test'))
|
|
7
|
+
|
|
8
|
+
await runTest(test)
|
|
9
|
+
})
|
|
10
|
+
})
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { LogAnnotation } from './LogAnnotation.js'
|
|
2
|
+
import { LogLevel } from './LogLevel.js'
|
|
3
|
+
import { LogSpan } from './LogSpan.js'
|
|
4
|
+
import { Logger } from './Logger.js'
|
|
5
|
+
|
|
6
|
+
import { Clock, timeToUnixTime } from '@/Clock/index.js'
|
|
7
|
+
import { format, fromTime } from '@/Duration/Duration.js'
|
|
8
|
+
import { Fx, getFiberContext } from '@/Fx/Fx.js'
|
|
9
|
+
import { Time } from '@/Time/index.js'
|
|
10
|
+
|
|
11
|
+
export const Console: Logger<string, void> = {
|
|
12
|
+
log: (input, level, id, logSpans, logAnnotations) =>
|
|
13
|
+
Fx(function* () {
|
|
14
|
+
if (level === LogLevel.None) {
|
|
15
|
+
return
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const { platform } = yield* getFiberContext
|
|
19
|
+
const now = platform.timer.getCurrentTime()
|
|
20
|
+
|
|
21
|
+
const message = [
|
|
22
|
+
`timestamp=${getIsoString(now, platform.timer)}`,
|
|
23
|
+
`level=${formatLogLevel(level)}`,
|
|
24
|
+
`fiber=${id.sequenceNumber}`,
|
|
25
|
+
...logSpans.map(formatLogSpan(now)),
|
|
26
|
+
...logAnnotations.map(formatlogAnnotation),
|
|
27
|
+
`message=${input}`,
|
|
28
|
+
].join('; ')
|
|
29
|
+
|
|
30
|
+
logWithLevel(message, level)
|
|
31
|
+
}),
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function formatLogLevel(level: LogLevel) {
|
|
35
|
+
switch (level) {
|
|
36
|
+
case LogLevel.None:
|
|
37
|
+
return 'none'
|
|
38
|
+
case LogLevel.Fatal:
|
|
39
|
+
return 'fatal'
|
|
40
|
+
case LogLevel.Error:
|
|
41
|
+
return 'error'
|
|
42
|
+
case LogLevel.Warn:
|
|
43
|
+
return 'warn'
|
|
44
|
+
case LogLevel.Info:
|
|
45
|
+
return 'info'
|
|
46
|
+
case LogLevel.Log:
|
|
47
|
+
return 'log'
|
|
48
|
+
case LogLevel.Trace:
|
|
49
|
+
return 'trace'
|
|
50
|
+
case LogLevel.Debug:
|
|
51
|
+
return 'debug'
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function logWithLevel(message: string, level: LogLevel) {
|
|
56
|
+
switch (level) {
|
|
57
|
+
case LogLevel.Fatal:
|
|
58
|
+
case LogLevel.Error:
|
|
59
|
+
return console.error(message)
|
|
60
|
+
case LogLevel.Warn:
|
|
61
|
+
return console.warn(message)
|
|
62
|
+
case LogLevel.Info:
|
|
63
|
+
return console.info(message)
|
|
64
|
+
case LogLevel.Log:
|
|
65
|
+
return console.log(message)
|
|
66
|
+
case LogLevel.Trace:
|
|
67
|
+
return console.trace(message)
|
|
68
|
+
case LogLevel.Debug:
|
|
69
|
+
return console.debug(message)
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function getIsoString(time: Time, clock: Clock) {
|
|
74
|
+
return new Date(timeToUnixTime(time)(clock)).toISOString()
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function formatLogSpan(now: Time) {
|
|
78
|
+
return (span: LogSpan) => {
|
|
79
|
+
return `${span.label}=${format(fromTime(Time(now - span.start)))}`
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function formatlogAnnotation(annotation: LogAnnotation) {
|
|
84
|
+
return `${annotation.label}=${annotation.value}`
|
|
85
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { HKT2, Params, pipe } from 'hkt-ts'
|
|
2
|
+
import { Either } from 'hkt-ts/Either'
|
|
3
|
+
import { Just, Maybe, Nothing } from 'hkt-ts/Maybe'
|
|
4
|
+
import * as C from 'hkt-ts/Typeclass/Covariant'
|
|
5
|
+
import * as D from 'hkt-ts/Typeclass/Divariant'
|
|
6
|
+
import { Unary } from 'hkt-ts/Unary'
|
|
7
|
+
|
|
8
|
+
import { LogAnnotation } from './LogAnnotation.js'
|
|
9
|
+
import { LogLevel } from './LogLevel.js'
|
|
10
|
+
import { LogSpan } from './LogSpan.js'
|
|
11
|
+
|
|
12
|
+
import { FiberId } from '@/FiberId/FiberId.js'
|
|
13
|
+
import * as Fx from '@/Fx/Fx.js'
|
|
14
|
+
|
|
15
|
+
// TODO: Console as a Logger
|
|
16
|
+
// TODO: Build into Fx runtime
|
|
17
|
+
|
|
18
|
+
export interface Logger<A, B> {
|
|
19
|
+
readonly log: (
|
|
20
|
+
input: A,
|
|
21
|
+
level: LogLevel,
|
|
22
|
+
id: FiberId.Live,
|
|
23
|
+
logSpans: ReadonlyArray<LogSpan>,
|
|
24
|
+
logAnnotations: ReadonlyArray<LogAnnotation>,
|
|
25
|
+
) => Fx.Of<B>
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function Logger<A, B>(log: Logger<A, B>['log']): Logger<A, B> {
|
|
29
|
+
return { log }
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function both<A, C>(second: Logger<A, C>) {
|
|
33
|
+
return <B>(first: Logger<A, B>): Logger<A, readonly [B, C]> =>
|
|
34
|
+
Logger((...args) => Fx.both(second.log(...args))(first.log(...args)))
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function either<A, C>(second: Logger<A, C>) {
|
|
38
|
+
return <B>(first: Logger<A, B>): Logger<A, Either<B, C>> =>
|
|
39
|
+
Logger((...args) => Fx.either(second.log(...args))(first.log(...args)))
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface LoggerHKT extends HKT2 {
|
|
43
|
+
readonly type: Logger<this[Params.E], this[Params.A]>
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export const Divariant: D.Divariant2<LoggerHKT> = {
|
|
47
|
+
dimap:
|
|
48
|
+
<A, B, C, D>(f: Unary<A, B>, g: Unary<C, D>) =>
|
|
49
|
+
(logger: Logger<B, C>) =>
|
|
50
|
+
Logger((i: A, level, id, logSpans, logAnnotations) =>
|
|
51
|
+
Fx.map(g)(logger.log(f(i), level, id, logSpans, logAnnotations)),
|
|
52
|
+
),
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export const dimap = Divariant.dimap
|
|
56
|
+
|
|
57
|
+
export const contramap = D.contramap(Divariant)
|
|
58
|
+
export const map = D.map(Divariant)
|
|
59
|
+
|
|
60
|
+
export const Covariant: C.Covariant2<LoggerHKT> = {
|
|
61
|
+
map,
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export const bindTo = C.bindTo(Covariant)
|
|
65
|
+
export const flap = C.flap(Covariant)
|
|
66
|
+
export const mapTo = C.mapTo(Covariant)
|
|
67
|
+
export const tupled = C.tupled(Covariant)
|
|
68
|
+
|
|
69
|
+
export const filterLogLevel =
|
|
70
|
+
(predicate: (level: LogLevel) => boolean) =>
|
|
71
|
+
<A, B>(logger: Logger<A, B>): Logger<A, Maybe<B>> => ({
|
|
72
|
+
log: (...args): Fx.Of<Maybe<B>> =>
|
|
73
|
+
Fx.lazy(() => {
|
|
74
|
+
if (predicate(args[1])) {
|
|
75
|
+
return pipe(
|
|
76
|
+
logger.log(...args),
|
|
77
|
+
Fx.map((a) => Just(a) as Maybe<B>),
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return Fx.now<Maybe<B>>(Nothing)
|
|
82
|
+
}),
|
|
83
|
+
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Logger.js'
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { NonNegativeInteger } from 'hkt-ts/number'
|
|
2
|
+
|
|
3
|
+
import { AtomicCounter } from '@/Atomic/AtomicCounter.js'
|
|
4
|
+
import { SetTimeoutTimer } from '@/Timer/SetTimeoutTimer.js'
|
|
5
|
+
import * as Timer from '@/Timer/Timer.js'
|
|
6
|
+
|
|
7
|
+
export interface Platform {
|
|
8
|
+
readonly sequenceNumber: AtomicCounter
|
|
9
|
+
readonly maxOpCount: NonNegativeInteger
|
|
10
|
+
readonly maxTraceCount: NonNegativeInteger
|
|
11
|
+
readonly timer: Timer.Timer
|
|
12
|
+
readonly reportFailure: (message: string) => void
|
|
13
|
+
readonly fork: () => Platform
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function Platform(
|
|
17
|
+
sequenceNumber: AtomicCounter = AtomicCounter(),
|
|
18
|
+
maxOpCount: NonNegativeInteger = NonNegativeInteger(500),
|
|
19
|
+
maxTraceCount: NonNegativeInteger = NonNegativeInteger(50),
|
|
20
|
+
timer: Timer.Timer = SetTimeoutTimer(),
|
|
21
|
+
reportFailure: (message: string) => void = console.error,
|
|
22
|
+
): Platform {
|
|
23
|
+
const platform: Platform = {
|
|
24
|
+
sequenceNumber,
|
|
25
|
+
maxOpCount,
|
|
26
|
+
maxTraceCount,
|
|
27
|
+
timer,
|
|
28
|
+
reportFailure,
|
|
29
|
+
fork: () => fork(platform),
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return platform
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function fork(platform: Platform): Platform {
|
|
36
|
+
return Platform(
|
|
37
|
+
platform.sequenceNumber,
|
|
38
|
+
platform.maxOpCount,
|
|
39
|
+
platform.maxTraceCount,
|
|
40
|
+
Timer.fork(platform.timer),
|
|
41
|
+
)
|
|
42
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Platform } from './Platform.js'
|
|
2
|
+
|
|
3
|
+
import { TestTimer } from '@/Timer/TestTimer.js'
|
|
4
|
+
|
|
5
|
+
export interface TestPlatform extends Platform {
|
|
6
|
+
readonly timer: TestTimer
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function TestPlatform(timer: TestTimer = TestTimer()): TestPlatform {
|
|
10
|
+
return {
|
|
11
|
+
...Platform(undefined, undefined, undefined, timer),
|
|
12
|
+
timer,
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { deepStrictEqual } from 'assert'
|
|
2
|
+
|
|
3
|
+
import { pipe } from 'hkt-ts'
|
|
4
|
+
|
|
5
|
+
import { Ref } from './Ref.js'
|
|
6
|
+
import { atomic } from './atomic.js'
|
|
7
|
+
|
|
8
|
+
import { runTest } from '@/Fx/Fx.test.js'
|
|
9
|
+
import * as Fx from '@/Fx/index.js'
|
|
10
|
+
|
|
11
|
+
describe(new URL(import.meta.url).pathname, () => {
|
|
12
|
+
describe(Ref.name, () => {
|
|
13
|
+
class Foo extends Ref('Foo', Fx.now(1)) {}
|
|
14
|
+
class Bar extends Ref('Bar', Fx.now(1)) {}
|
|
15
|
+
|
|
16
|
+
const foobar = pipe(
|
|
17
|
+
Foo.modify((a) => Fx.now([a + 1, a + 1] as const)),
|
|
18
|
+
Fx.flatMap((foo) =>
|
|
19
|
+
pipe(
|
|
20
|
+
Bar.get(),
|
|
21
|
+
Fx.map((bar) => foo + bar),
|
|
22
|
+
),
|
|
23
|
+
),
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
describe(atomic.name, () => {
|
|
27
|
+
it('allows providing for a Ref', async () => {
|
|
28
|
+
const test = pipe(foobar, Fx.provideLayers(atomic(Foo), atomic(Bar)))
|
|
29
|
+
|
|
30
|
+
deepStrictEqual(await runTest(test), 3)
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
})
|
|
34
|
+
})
|
package/src/Ref/Ref.ts
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { pipe } from 'hkt-ts'
|
|
2
|
+
import { DeepEquals, Eq } from 'hkt-ts/Typeclass/Eq'
|
|
3
|
+
|
|
4
|
+
import { Env } from '@/Env/Env.js'
|
|
5
|
+
import * as Fx from '@/Fx/index.js'
|
|
6
|
+
import { Id, InstanceOf } from '@/Service/index.js'
|
|
7
|
+
|
|
8
|
+
export interface RefApi<R, E, A> {
|
|
9
|
+
readonly get: Fx.Fx<R, E, A>
|
|
10
|
+
readonly modify: <R2, E2, B>(
|
|
11
|
+
f: (a: A) => Fx.Fx<R2, E2, readonly [B, A]>,
|
|
12
|
+
) => Fx.Fx<R | R2, E | E2, B>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type AnyRefApi =
|
|
16
|
+
| RefApi<any, any, any>
|
|
17
|
+
| RefApi<never, never, any>
|
|
18
|
+
| RefApi<never, any, any>
|
|
19
|
+
| RefApi<any, never, any>
|
|
20
|
+
|
|
21
|
+
export type Ref<R, E, A> = ReturnType<typeof Ref<any, R, E, A>>
|
|
22
|
+
|
|
23
|
+
export type AnyRef =
|
|
24
|
+
| Ref<any, any, any>
|
|
25
|
+
| Ref<never, never, any>
|
|
26
|
+
| Ref<never, any, any>
|
|
27
|
+
| Ref<any, never, any>
|
|
28
|
+
|
|
29
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
30
|
+
export type ResourcesOf<T> = T extends Ref<infer _R, infer _E, infer _A> ? _R : never
|
|
31
|
+
export type ErrorsOf<T> = T extends Ref<infer _R, infer _E, infer _A> ? _E : never
|
|
32
|
+
export type OutputOf<T> = T extends Ref<infer _R, infer _E, infer _A> ? _A : never
|
|
33
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
34
|
+
|
|
35
|
+
export function Ref<Tag extends string, R, E, A>(
|
|
36
|
+
tag: Tag,
|
|
37
|
+
initial: Fx.Fx<R, E, A>,
|
|
38
|
+
Eq: Eq<A> = DeepEquals,
|
|
39
|
+
) {
|
|
40
|
+
return class Reference extends Id implements RefApi<R, E, A> {
|
|
41
|
+
static tag: Tag = tag
|
|
42
|
+
readonly tag: Tag = tag
|
|
43
|
+
|
|
44
|
+
static initial = initial
|
|
45
|
+
static Eq = Eq
|
|
46
|
+
|
|
47
|
+
constructor(readonly get: RefApi<R, E, A>['get'], readonly modify: RefApi<R, E, A>['modify']) {
|
|
48
|
+
super()
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static make<S extends AnyRef>(
|
|
52
|
+
this: S,
|
|
53
|
+
get: RefApi<R, E, A>['get'],
|
|
54
|
+
modify: RefApi<R, E, A>['modify'],
|
|
55
|
+
): InstanceOf<S> {
|
|
56
|
+
return new (this as Ref<R, E, A>)(get, modify) as InstanceOf<S>
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static get<S extends typeof Reference>(this: S): Fx.Fx<R | InstanceOf<S>, E, A> {
|
|
60
|
+
return pipe(
|
|
61
|
+
Fx.access((env: Env<InstanceOf<S>>) => env.get(this.id())),
|
|
62
|
+
Fx.flatMap((r) => r.get),
|
|
63
|
+
)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
static modify<S extends typeof Reference, B, R2, E2>(
|
|
67
|
+
this: S,
|
|
68
|
+
f: (a: A) => Fx.Fx<R2, E2, readonly [B, A]>,
|
|
69
|
+
): Fx.Fx<R | R2 | InstanceOf<S>, E | E2, B> {
|
|
70
|
+
return pipe(
|
|
71
|
+
Fx.access((env: Env<InstanceOf<S>>) => env.get(this.id())),
|
|
72
|
+
Fx.flatMap((r) => r.modify(f)),
|
|
73
|
+
)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { pipe } from 'hkt-ts'
|
|
2
|
+
|
|
3
|
+
import { AnyRef, ErrorsOf, OutputOf, ResourcesOf } from './Ref.js'
|
|
4
|
+
|
|
5
|
+
import { Atomic } from '@/Atomic/Atomic.js'
|
|
6
|
+
import { Fx, fromLazy, lazy, map } from '@/Fx/Fx.js'
|
|
7
|
+
import { Layer } from '@/Layer/Layer.js'
|
|
8
|
+
import { Lock, acquire } from '@/Semaphore/Semaphore.js'
|
|
9
|
+
import { InstanceOf } from '@/Service/index.js'
|
|
10
|
+
|
|
11
|
+
export function atomic<REF extends AnyRef>(
|
|
12
|
+
ref: REF,
|
|
13
|
+
): Layer<ResourcesOf<REF>, ErrorsOf<REF>, InstanceOf<REF>> {
|
|
14
|
+
const service = ref.id()
|
|
15
|
+
|
|
16
|
+
return Layer(service, () =>
|
|
17
|
+
Fx(function* () {
|
|
18
|
+
const atomic = Atomic(yield* ref.initial)
|
|
19
|
+
const get = fromLazy(atomic.get)
|
|
20
|
+
const locked = acquire(new Lock())
|
|
21
|
+
const modify = <R2, E2, B>(
|
|
22
|
+
f: (a: OutputOf<REF>) => Fx<R2, E2, readonly [B, OutputOf<REF>]>,
|
|
23
|
+
): Fx<R2, E2, B> =>
|
|
24
|
+
pipe(
|
|
25
|
+
lazy(() => f(atomic.get())),
|
|
26
|
+
map((computed) => atomic.modify(() => computed)),
|
|
27
|
+
locked,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
return new ref(get as any, modify) as any
|
|
31
|
+
}),
|
|
32
|
+
)
|
|
33
|
+
}
|
package/src/Ref/index.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Associative } from 'hkt-ts/Typeclass/Associative'
|
|
2
|
+
|
|
3
|
+
import { Delay } from '@/Time/index.js'
|
|
4
|
+
|
|
5
|
+
export type Decision = Continue | Done
|
|
6
|
+
|
|
7
|
+
export class Continue {
|
|
8
|
+
readonly tag = 'Continue'
|
|
9
|
+
|
|
10
|
+
constructor(readonly delay: Delay) {}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const Done = new (class Done {
|
|
14
|
+
readonly tag = 'Done'
|
|
15
|
+
})()
|
|
16
|
+
export type Done = typeof Done
|
|
17
|
+
|
|
18
|
+
export const DecisionUnionAssociative: Associative<Decision> = {
|
|
19
|
+
concat: (f, s) => {
|
|
20
|
+
if (f.tag === 'Done' && s.tag === 'Done') {
|
|
21
|
+
return Done
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (f.tag === 'Done') {
|
|
25
|
+
return s
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (s.tag === 'Done') {
|
|
29
|
+
return f
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return new Continue(Delay(Math.min(f.delay, s.delay)))
|
|
33
|
+
},
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export const DecisionIntersectionAssociative: Associative<Decision> = {
|
|
37
|
+
concat: (f, s) => {
|
|
38
|
+
if (f.tag === 'Done' || s.tag === 'Done') {
|
|
39
|
+
return Done
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return new Continue(Delay(Math.max(f.delay, s.delay)))
|
|
43
|
+
},
|
|
44
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { Just, match } from 'hkt-ts/Maybe'
|
|
2
|
+
import { makeAssociative } from 'hkt-ts/Tuple'
|
|
3
|
+
import * as Associative from 'hkt-ts/Typeclass/Associative'
|
|
4
|
+
import { Identity } from 'hkt-ts/Typeclass/Identity'
|
|
5
|
+
import { pipe } from 'hkt-ts/function'
|
|
6
|
+
import { NonNegativeInteger } from 'hkt-ts/number'
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
Continue,
|
|
10
|
+
Decision,
|
|
11
|
+
DecisionIntersectionAssociative,
|
|
12
|
+
DecisionUnionAssociative,
|
|
13
|
+
Done,
|
|
14
|
+
} from './Decision.js'
|
|
15
|
+
import {
|
|
16
|
+
ScheduleState,
|
|
17
|
+
ScheduleStateIntersectionAssociative,
|
|
18
|
+
ScheduleStateUnionAssociative,
|
|
19
|
+
} from './ScheduleState.js'
|
|
20
|
+
|
|
21
|
+
import { Delay, Time } from '@/Time/index.js'
|
|
22
|
+
|
|
23
|
+
const asap = Delay(0)
|
|
24
|
+
const max = Delay(Number.MAX_SAFE_INTEGER)
|
|
25
|
+
|
|
26
|
+
const stateDecisionUnionAssociative = makeAssociative<ScheduleState, Decision>(
|
|
27
|
+
ScheduleStateUnionAssociative,
|
|
28
|
+
DecisionUnionAssociative,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
const stateDecisionIntersectionAssociative = makeAssociative(
|
|
32
|
+
ScheduleStateIntersectionAssociative,
|
|
33
|
+
DecisionIntersectionAssociative,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
export interface Schedule {
|
|
37
|
+
readonly step: (now: Time, state: ScheduleState) => readonly [ScheduleState, Decision]
|
|
38
|
+
readonly and: (schedule: Schedule) => Schedule
|
|
39
|
+
readonly or: (schedule: Schedule) => Schedule
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function Schedule(step: Schedule['step']): Schedule {
|
|
43
|
+
const schedule: Schedule = {
|
|
44
|
+
step,
|
|
45
|
+
and: (other) => and(other)(schedule),
|
|
46
|
+
or: (other) => or(other)(schedule),
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return schedule
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const never: Schedule = Schedule((now, state) => [state.step(now), Done])
|
|
53
|
+
|
|
54
|
+
export const forever: Schedule = Schedule((now, state) => [
|
|
55
|
+
state.step(now, Just(asap)),
|
|
56
|
+
new Continue(asap),
|
|
57
|
+
])
|
|
58
|
+
|
|
59
|
+
export const recurring = (amount: NonNegativeInteger): Schedule =>
|
|
60
|
+
Schedule((now, state) => [state.step(now), state.iteration < amount ? new Continue(asap) : Done])
|
|
61
|
+
|
|
62
|
+
export const periodic = (delay: Delay): Schedule =>
|
|
63
|
+
Schedule((now, state) => [
|
|
64
|
+
state.step(now, Just(delay)),
|
|
65
|
+
new Continue(
|
|
66
|
+
pipe(
|
|
67
|
+
state.time,
|
|
68
|
+
match(
|
|
69
|
+
() => delay,
|
|
70
|
+
(prev) => accountForTimeDrift(prev, now, delay),
|
|
71
|
+
),
|
|
72
|
+
),
|
|
73
|
+
),
|
|
74
|
+
])
|
|
75
|
+
|
|
76
|
+
const accountForTimeDrift = (previous: Time, now: Time, delay: Delay): Delay => {
|
|
77
|
+
const expectedTime = previous + delay
|
|
78
|
+
const drift = expectedTime > now ? expectedTime - now : 0
|
|
79
|
+
|
|
80
|
+
return Delay(drift)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export const delayed = (delay: Delay): Schedule => periodic(delay).and(once)
|
|
84
|
+
|
|
85
|
+
export const spaced = (delay: Delay): Schedule =>
|
|
86
|
+
Schedule((now, state) => {
|
|
87
|
+
const spacedDelay = pipe(
|
|
88
|
+
state.previousDelay,
|
|
89
|
+
match(
|
|
90
|
+
() => delay,
|
|
91
|
+
(n) => Delay(n + delay),
|
|
92
|
+
),
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
return [state.step(now, Just(spacedDelay)), new Continue(spacedDelay)]
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
export const exponential = (delay: Delay): Schedule =>
|
|
99
|
+
Schedule((now, state) => {
|
|
100
|
+
const exponentialDelay = Delay(delay ** (state.iteration + 1))
|
|
101
|
+
|
|
102
|
+
return [state.step(now, Just(exponentialDelay)), new Continue(exponentialDelay)]
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
export const retries = (retries: NonNegativeInteger): Schedule =>
|
|
106
|
+
recurring(NonNegativeInteger(retries + 1))
|
|
107
|
+
|
|
108
|
+
export const once = recurring(NonNegativeInteger(1))
|
|
109
|
+
|
|
110
|
+
export const or =
|
|
111
|
+
(second: Schedule) =>
|
|
112
|
+
(first: Schedule): Schedule =>
|
|
113
|
+
UnionAssociative.concat(first, second)
|
|
114
|
+
|
|
115
|
+
export const union = (...schedules: ReadonlyArray<Schedule>): Schedule =>
|
|
116
|
+
schedules.length === 0 ? never : schedules.reduce((x, y) => or(y)(x))
|
|
117
|
+
|
|
118
|
+
export const and =
|
|
119
|
+
(second: Schedule) =>
|
|
120
|
+
(first: Schedule): Schedule =>
|
|
121
|
+
IntersectionAssociative.concat(first, second)
|
|
122
|
+
|
|
123
|
+
export const intersect = (...schedules: ReadonlyArray<Schedule>): Schedule =>
|
|
124
|
+
schedules.length === 0 ? once : schedules.reduce((x, y) => and(y)(x))
|
|
125
|
+
|
|
126
|
+
export const UnionAssociative: Associative.Associative<Schedule> = {
|
|
127
|
+
concat: (f, s) =>
|
|
128
|
+
Schedule((now, state) =>
|
|
129
|
+
stateDecisionUnionAssociative.concat(f.step(now, state), s.step(now, state)),
|
|
130
|
+
),
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export const UnionIdentity: Identity<Schedule> = {
|
|
134
|
+
...UnionAssociative,
|
|
135
|
+
id: Schedule((now, state) => [state.step(now, Just(max)), new Continue(max)]),
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export const IntersectionAssociative: Associative.Associative<Schedule> = {
|
|
139
|
+
concat: (f, s) =>
|
|
140
|
+
Schedule((now, state) =>
|
|
141
|
+
stateDecisionIntersectionAssociative.concat(f.step(now, state), s.step(now, state)),
|
|
142
|
+
),
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export const IntersectionIdentity: Identity<Schedule> = {
|
|
146
|
+
...IntersectionAssociative,
|
|
147
|
+
id: forever,
|
|
148
|
+
}
|