@clayroach/effect 3.19.14-source-capture.8 → 3.19.14-source-trace.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/SourceLocation/package.json +6 -0
- package/dist/cjs/Effect.js +2 -28
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/FiberRef.js +12 -1
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/Layer.js +2 -24
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/RuntimeFlags.js +1 -29
- package/dist/cjs/RuntimeFlags.js.map +1 -1
- package/dist/cjs/SourceLocation.js +60 -0
- package/dist/cjs/SourceLocation.js.map +1 -0
- package/dist/cjs/Tracer.js +1 -15
- package/dist/cjs/Tracer.js.map +1 -1
- package/dist/cjs/Utils.js +1 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/clock.js +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/core.js +17 -50
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +18 -30
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +16 -65
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/layer/circular.js +1 -5
- package/dist/cjs/internal/layer/circular.js.map +1 -1
- package/dist/cjs/internal/layer.js +1 -3
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logger.js +25 -2
- package/dist/cjs/internal/logger.js.map +1 -1
- package/dist/cjs/internal/runtimeFlags.js +2 -11
- package/dist/cjs/internal/runtimeFlags.js.map +1 -1
- package/dist/cjs/internal/tracer.js +1 -114
- package/dist/cjs/internal/tracer.js.map +1 -1
- package/dist/dts/Config.d.ts +2 -2
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +8 -29
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +12 -0
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +0 -22
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/RuntimeFlags.d.ts +0 -28
- package/dist/dts/RuntimeFlags.d.ts.map +1 -1
- package/dist/dts/SourceLocation.d.ts +88 -0
- package/dist/dts/SourceLocation.d.ts.map +1 -0
- package/dist/dts/Tracer.d.ts +0 -15
- package/dist/dts/Tracer.d.ts.map +1 -1
- package/dist/dts/index.d.ts +6 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/layer.d.ts.map +1 -1
- package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
- package/dist/esm/Effect.js +0 -26
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/FiberRef.js +11 -0
- package/dist/esm/FiberRef.js.map +1 -1
- package/dist/esm/Layer.js +0 -22
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/RuntimeFlags.js +0 -28
- package/dist/esm/RuntimeFlags.js.map +1 -1
- package/dist/esm/SourceLocation.js +51 -0
- package/dist/esm/SourceLocation.js.map +1 -0
- package/dist/esm/Tracer.js +0 -14
- package/dist/esm/Tracer.js.map +1 -1
- package/dist/esm/Utils.js +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/clock.js +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/core.js +12 -45
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +18 -30
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +13 -60
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/layer/circular.js +0 -4
- package/dist/esm/internal/layer/circular.js.map +1 -1
- package/dist/esm/internal/layer.js +0 -2
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/logger.js +25 -2
- package/dist/esm/internal/logger.js.map +1 -1
- package/dist/esm/internal/runtimeFlags.js +1 -9
- package/dist/esm/internal/runtimeFlags.js.map +1 -1
- package/dist/esm/internal/tracer.js +0 -111
- package/dist/esm/internal/tracer.js.map +1 -1
- package/package.json +12 -1
- package/src/Arbitrary.ts +1101 -0
- package/src/Array.ts +3589 -0
- package/src/BigDecimal.ts +1349 -0
- package/src/BigInt.ts +643 -0
- package/src/Boolean.ts +287 -0
- package/src/Brand.ts +360 -0
- package/src/Cache.ts +281 -0
- package/src/Cause.ts +1555 -0
- package/src/Channel.ts +2355 -0
- package/src/ChildExecutorDecision.ts +146 -0
- package/src/Chunk.ts +1495 -0
- package/src/Clock.ts +111 -0
- package/src/Config.ts +542 -0
- package/src/ConfigError.ts +270 -0
- package/src/ConfigProvider.ts +333 -0
- package/src/ConfigProviderPathPatch.ts +100 -0
- package/src/Console.ts +226 -0
- package/src/Context.ts +585 -0
- package/src/Cron.ts +706 -0
- package/src/Data.ts +596 -0
- package/src/DateTime.ts +1686 -0
- package/src/DefaultServices.ts +34 -0
- package/src/Deferred.ts +301 -0
- package/src/Differ.ts +450 -0
- package/src/Duration.ts +1000 -0
- package/src/Effect.ts +14817 -0
- package/src/Effectable.ts +107 -0
- package/src/Either.ts +1040 -0
- package/src/Encoding.ts +195 -0
- package/src/Equal.ts +98 -0
- package/src/Equivalence.ts +235 -0
- package/src/ExecutionPlan.ts +308 -0
- package/src/ExecutionStrategy.ts +119 -0
- package/src/Exit.ts +467 -0
- package/src/FastCheck.ts +9 -0
- package/src/Fiber.ts +744 -0
- package/src/FiberHandle.ts +540 -0
- package/src/FiberId.ts +195 -0
- package/src/FiberMap.ts +656 -0
- package/src/FiberRef.ts +444 -0
- package/src/FiberRefs.ts +204 -0
- package/src/FiberRefsPatch.ts +105 -0
- package/src/FiberSet.ts +491 -0
- package/src/FiberStatus.ts +108 -0
- package/src/Function.ts +1222 -0
- package/src/GlobalValue.ts +53 -0
- package/src/Graph.ts +3732 -0
- package/src/GroupBy.ts +103 -0
- package/src/HKT.ts +45 -0
- package/src/Hash.ts +195 -0
- package/src/HashMap.ts +519 -0
- package/src/HashRing.ts +317 -0
- package/src/HashSet.ts +2346 -0
- package/src/Inspectable.ts +287 -0
- package/src/Iterable.ts +1119 -0
- package/src/JSONSchema.ts +1044 -0
- package/src/KeyedPool.ts +167 -0
- package/src/Layer.ts +1228 -0
- package/src/LayerMap.ts +436 -0
- package/src/List.ts +977 -0
- package/src/LogLevel.ts +285 -0
- package/src/LogSpan.ts +25 -0
- package/src/Logger.ts +702 -0
- package/src/Mailbox.ts +268 -0
- package/src/ManagedRuntime.ts +180 -0
- package/src/Match.ts +1477 -0
- package/src/MergeDecision.ts +95 -0
- package/src/MergeState.ts +172 -0
- package/src/MergeStrategy.ts +107 -0
- package/src/Metric.ts +780 -0
- package/src/MetricBoundaries.ts +69 -0
- package/src/MetricHook.ts +151 -0
- package/src/MetricKey.ts +224 -0
- package/src/MetricKeyType.ts +262 -0
- package/src/MetricLabel.ts +47 -0
- package/src/MetricPair.ts +71 -0
- package/src/MetricPolling.ts +148 -0
- package/src/MetricRegistry.ts +48 -0
- package/src/MetricState.ts +257 -0
- package/src/Micro.ts +4405 -0
- package/src/ModuleVersion.ts +18 -0
- package/src/MutableHashMap.ts +411 -0
- package/src/MutableHashSet.ts +706 -0
- package/src/MutableList.ts +297 -0
- package/src/MutableQueue.ts +227 -0
- package/src/MutableRef.ts +202 -0
- package/src/NonEmptyIterable.ts +32 -0
- package/src/Number.ts +1071 -0
- package/src/Option.ts +2170 -0
- package/src/Order.ts +373 -0
- package/src/Ordering.ts +111 -0
- package/src/ParseResult.ts +2031 -0
- package/src/PartitionedSemaphore.ts +200 -0
- package/src/Pipeable.ts +566 -0
- package/src/Pool.ts +204 -0
- package/src/Predicate.ts +1405 -0
- package/src/Pretty.ts +205 -0
- package/src/PrimaryKey.ts +23 -0
- package/src/PubSub.ts +182 -0
- package/src/Queue.ts +644 -0
- package/src/Random.ts +204 -0
- package/src/RateLimiter.ts +138 -0
- package/src/RcMap.ts +141 -0
- package/src/RcRef.ts +122 -0
- package/src/Readable.ts +93 -0
- package/src/Record.ts +1274 -0
- package/src/RedBlackTree.ts +421 -0
- package/src/Redacted.ts +144 -0
- package/src/Ref.ts +180 -0
- package/src/RegExp.ts +38 -0
- package/src/Reloadable.ts +127 -0
- package/src/Request.ts +347 -0
- package/src/RequestBlock.ts +118 -0
- package/src/RequestResolver.ts +366 -0
- package/src/Resource.ts +119 -0
- package/src/Runtime.ts +383 -0
- package/src/RuntimeFlags.ts +336 -0
- package/src/RuntimeFlagsPatch.ts +183 -0
- package/src/STM.ts +2045 -0
- package/src/Schedule.ts +2219 -0
- package/src/ScheduleDecision.ts +62 -0
- package/src/ScheduleInterval.ts +151 -0
- package/src/ScheduleIntervals.ts +122 -0
- package/src/Scheduler.ts +353 -0
- package/src/Schema.ts +10914 -0
- package/src/SchemaAST.ts +3043 -0
- package/src/Scope.ts +204 -0
- package/src/ScopedCache.ts +151 -0
- package/src/ScopedRef.ts +117 -0
- package/src/Secret.ts +88 -0
- package/src/SingleProducerAsyncInput.ts +67 -0
- package/src/Sink.ts +1461 -0
- package/src/SortedMap.ts +287 -0
- package/src/SortedSet.ts +390 -0
- package/src/SourceLocation.ts +108 -0
- package/src/Stream.ts +6468 -0
- package/src/StreamEmit.ts +136 -0
- package/src/StreamHaltStrategy.ts +123 -0
- package/src/Streamable.ts +45 -0
- package/src/String.ts +778 -0
- package/src/Struct.ts +243 -0
- package/src/Subscribable.ts +100 -0
- package/src/SubscriptionRef.ts +298 -0
- package/src/Supervisor.ts +240 -0
- package/src/Symbol.ts +29 -0
- package/src/SynchronizedRef.ts +270 -0
- package/src/TArray.ts +495 -0
- package/src/TDeferred.ts +100 -0
- package/src/TMap.ts +515 -0
- package/src/TPriorityQueue.ts +223 -0
- package/src/TPubSub.ts +200 -0
- package/src/TQueue.ts +432 -0
- package/src/TRandom.ts +129 -0
- package/src/TReentrantLock.ts +224 -0
- package/src/TRef.ts +178 -0
- package/src/TSemaphore.ts +129 -0
- package/src/TSet.ts +365 -0
- package/src/TSubscriptionRef.ts +192 -0
- package/src/Take.ts +258 -0
- package/src/TestAnnotation.ts +158 -0
- package/src/TestAnnotationMap.ts +119 -0
- package/src/TestAnnotations.ts +117 -0
- package/src/TestClock.ts +556 -0
- package/src/TestConfig.ts +47 -0
- package/src/TestContext.ts +36 -0
- package/src/TestLive.ts +53 -0
- package/src/TestServices.ts +390 -0
- package/src/TestSized.ts +55 -0
- package/src/Tracer.ts +182 -0
- package/src/Trie.ts +840 -0
- package/src/Tuple.ts +305 -0
- package/src/Types.ts +353 -0
- package/src/Unify.ts +113 -0
- package/src/UpstreamPullRequest.ts +117 -0
- package/src/UpstreamPullStrategy.ts +121 -0
- package/src/Utils.ts +809 -0
- package/src/index.ts +1568 -0
- package/src/internal/array.ts +8 -0
- package/src/internal/blockedRequests.ts +520 -0
- package/src/internal/cache.ts +733 -0
- package/src/internal/cause.ts +1050 -0
- package/src/internal/channel/channelExecutor.ts +1200 -0
- package/src/internal/channel/channelState.ts +134 -0
- package/src/internal/channel/childExecutorDecision.ts +96 -0
- package/src/internal/channel/continuation.ts +200 -0
- package/src/internal/channel/mergeDecision.ts +113 -0
- package/src/internal/channel/mergeState.ts +120 -0
- package/src/internal/channel/mergeStrategy.ts +72 -0
- package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
- package/src/internal/channel/subexecutor.ts +229 -0
- package/src/internal/channel/upstreamPullRequest.ts +84 -0
- package/src/internal/channel/upstreamPullStrategy.ts +87 -0
- package/src/internal/channel.ts +2603 -0
- package/src/internal/clock.ts +95 -0
- package/src/internal/completedRequestMap.ts +9 -0
- package/src/internal/concurrency.ts +54 -0
- package/src/internal/config.ts +716 -0
- package/src/internal/configError.ts +304 -0
- package/src/internal/configProvider/pathPatch.ts +97 -0
- package/src/internal/configProvider.ts +799 -0
- package/src/internal/console.ts +153 -0
- package/src/internal/context.ts +337 -0
- package/src/internal/core-effect.ts +2293 -0
- package/src/internal/core-stream.ts +998 -0
- package/src/internal/core.ts +3189 -0
- package/src/internal/data.ts +36 -0
- package/src/internal/dataSource.ts +327 -0
- package/src/internal/dateTime.ts +1277 -0
- package/src/internal/defaultServices/console.ts +100 -0
- package/src/internal/defaultServices.ts +163 -0
- package/src/internal/deferred.ts +46 -0
- package/src/internal/differ/chunkPatch.ts +211 -0
- package/src/internal/differ/contextPatch.ts +232 -0
- package/src/internal/differ/hashMapPatch.ts +220 -0
- package/src/internal/differ/hashSetPatch.ts +176 -0
- package/src/internal/differ/orPatch.ts +311 -0
- package/src/internal/differ/readonlyArrayPatch.ts +210 -0
- package/src/internal/differ.ts +200 -0
- package/src/internal/doNotation.ts +80 -0
- package/src/internal/effect/circular.ts +895 -0
- package/src/internal/effectable.ts +131 -0
- package/src/internal/either.ts +110 -0
- package/src/internal/encoding/base64.ts +286 -0
- package/src/internal/encoding/base64Url.ts +29 -0
- package/src/internal/encoding/common.ts +51 -0
- package/src/internal/encoding/hex.ts +315 -0
- package/src/internal/errors.ts +7 -0
- package/src/internal/executionPlan.ts +114 -0
- package/src/internal/executionStrategy.ts +74 -0
- package/src/internal/fiber.ts +388 -0
- package/src/internal/fiberId.ts +267 -0
- package/src/internal/fiberMessage.ts +82 -0
- package/src/internal/fiberRefs/patch.ts +144 -0
- package/src/internal/fiberRefs.ts +297 -0
- package/src/internal/fiberRuntime.ts +3842 -0
- package/src/internal/fiberScope.ts +71 -0
- package/src/internal/fiberStatus.ts +119 -0
- package/src/internal/groupBy.ts +530 -0
- package/src/internal/hashMap/array.ts +49 -0
- package/src/internal/hashMap/bitwise.ts +32 -0
- package/src/internal/hashMap/config.ts +14 -0
- package/src/internal/hashMap/keySet.ts +8 -0
- package/src/internal/hashMap/node.ts +391 -0
- package/src/internal/hashMap.ts +586 -0
- package/src/internal/hashSet.ts +323 -0
- package/src/internal/keyedPool.ts +244 -0
- package/src/internal/layer/circular.ts +214 -0
- package/src/internal/layer.ts +1483 -0
- package/src/internal/logSpan.ts +20 -0
- package/src/internal/logger-circular.ts +24 -0
- package/src/internal/logger.ts +522 -0
- package/src/internal/mailbox.ts +561 -0
- package/src/internal/managedRuntime/circular.ts +6 -0
- package/src/internal/managedRuntime.ts +134 -0
- package/src/internal/matcher.ts +652 -0
- package/src/internal/metric/boundaries.ts +75 -0
- package/src/internal/metric/hook.ts +483 -0
- package/src/internal/metric/key.ts +167 -0
- package/src/internal/metric/keyType.ts +238 -0
- package/src/internal/metric/label.ts +41 -0
- package/src/internal/metric/pair.ts +48 -0
- package/src/internal/metric/polling.ts +149 -0
- package/src/internal/metric/registry.ts +187 -0
- package/src/internal/metric/state.ts +290 -0
- package/src/internal/metric.ts +577 -0
- package/src/internal/opCodes/cause.ts +35 -0
- package/src/internal/opCodes/channel.ts +83 -0
- package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
- package/src/internal/opCodes/channelMergeDecision.ts +11 -0
- package/src/internal/opCodes/channelMergeState.ts +17 -0
- package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
- package/src/internal/opCodes/channelState.ts +23 -0
- package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
- package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
- package/src/internal/opCodes/config.ts +65 -0
- package/src/internal/opCodes/configError.ts +35 -0
- package/src/internal/opCodes/continuation.ts +11 -0
- package/src/internal/opCodes/deferred.ts +11 -0
- package/src/internal/opCodes/effect.ts +89 -0
- package/src/internal/opCodes/layer.ts +59 -0
- package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
- package/src/internal/option.ts +80 -0
- package/src/internal/pool.ts +432 -0
- package/src/internal/pubsub.ts +1762 -0
- package/src/internal/query.ts +204 -0
- package/src/internal/queue.ts +766 -0
- package/src/internal/random.ts +161 -0
- package/src/internal/rateLimiter.ts +93 -0
- package/src/internal/rcMap.ts +285 -0
- package/src/internal/rcRef.ts +192 -0
- package/src/internal/redBlackTree/iterator.ts +200 -0
- package/src/internal/redBlackTree/node.ts +68 -0
- package/src/internal/redBlackTree.ts +1245 -0
- package/src/internal/redacted.ts +73 -0
- package/src/internal/ref.ts +171 -0
- package/src/internal/reloadable.ts +140 -0
- package/src/internal/request.ts +177 -0
- package/src/internal/resource.ts +76 -0
- package/src/internal/ringBuffer.ts +68 -0
- package/src/internal/runtime.ts +558 -0
- package/src/internal/runtimeFlags.ts +178 -0
- package/src/internal/runtimeFlagsPatch.ts +103 -0
- package/src/internal/schedule/decision.ts +47 -0
- package/src/internal/schedule/interval.ts +101 -0
- package/src/internal/schedule/intervals.ts +180 -0
- package/src/internal/schedule.ts +2199 -0
- package/src/internal/schema/errors.ts +191 -0
- package/src/internal/schema/schemaId.ts +106 -0
- package/src/internal/schema/util.ts +50 -0
- package/src/internal/scopedCache.ts +644 -0
- package/src/internal/scopedRef.ts +118 -0
- package/src/internal/secret.ts +89 -0
- package/src/internal/singleShotGen.ts +35 -0
- package/src/internal/sink.ts +2120 -0
- package/src/internal/stack.ts +10 -0
- package/src/internal/stm/core.ts +817 -0
- package/src/internal/stm/entry.ts +59 -0
- package/src/internal/stm/journal.ts +123 -0
- package/src/internal/stm/opCodes/stm.ts +71 -0
- package/src/internal/stm/opCodes/stmState.ts +17 -0
- package/src/internal/stm/opCodes/strategy.ts +17 -0
- package/src/internal/stm/opCodes/tExit.ts +29 -0
- package/src/internal/stm/opCodes/tryCommit.ts +11 -0
- package/src/internal/stm/stm.ts +1453 -0
- package/src/internal/stm/stmState.ts +136 -0
- package/src/internal/stm/tArray.ts +550 -0
- package/src/internal/stm/tDeferred.ts +81 -0
- package/src/internal/stm/tExit.ts +190 -0
- package/src/internal/stm/tMap.ts +824 -0
- package/src/internal/stm/tPriorityQueue.ts +267 -0
- package/src/internal/stm/tPubSub.ts +551 -0
- package/src/internal/stm/tQueue.ts +393 -0
- package/src/internal/stm/tRandom.ts +140 -0
- package/src/internal/stm/tReentrantLock.ts +352 -0
- package/src/internal/stm/tRef.ts +195 -0
- package/src/internal/stm/tSemaphore.ts +113 -0
- package/src/internal/stm/tSet.ts +259 -0
- package/src/internal/stm/tSubscriptionRef.ts +286 -0
- package/src/internal/stm/tryCommit.ts +34 -0
- package/src/internal/stm/txnId.ts +14 -0
- package/src/internal/stm/versioned.ts +4 -0
- package/src/internal/stream/debounceState.ts +57 -0
- package/src/internal/stream/emit.ts +123 -0
- package/src/internal/stream/haltStrategy.ts +94 -0
- package/src/internal/stream/handoff.ts +187 -0
- package/src/internal/stream/handoffSignal.ts +59 -0
- package/src/internal/stream/pull.ts +34 -0
- package/src/internal/stream/sinkEndReason.ts +30 -0
- package/src/internal/stream/zipAllState.ts +88 -0
- package/src/internal/stream/zipChunksState.ts +56 -0
- package/src/internal/stream.ts +8801 -0
- package/src/internal/string-utils.ts +107 -0
- package/src/internal/subscriptionRef.ts +138 -0
- package/src/internal/supervisor/patch.ts +190 -0
- package/src/internal/supervisor.ts +303 -0
- package/src/internal/synchronizedRef.ts +114 -0
- package/src/internal/take.ts +199 -0
- package/src/internal/testing/sleep.ts +27 -0
- package/src/internal/testing/suspendedWarningData.ts +85 -0
- package/src/internal/testing/warningData.ts +94 -0
- package/src/internal/tracer.ts +150 -0
- package/src/internal/trie.ts +722 -0
- package/src/internal/version.ts +7 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Clock from "./Clock.js"
|
|
5
|
+
import type * as ConfigProvider from "./ConfigProvider.js"
|
|
6
|
+
import type * as Console from "./Console.js"
|
|
7
|
+
import type * as Context from "./Context.js"
|
|
8
|
+
import type * as FiberRef from "./FiberRef.js"
|
|
9
|
+
import * as internal from "./internal/defaultServices.js"
|
|
10
|
+
import type * as Random from "./Random.js"
|
|
11
|
+
import type * as Tracer from "./Tracer.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @since 2.0.0
|
|
15
|
+
* @category models
|
|
16
|
+
*/
|
|
17
|
+
export type DefaultServices =
|
|
18
|
+
| Clock.Clock
|
|
19
|
+
| Console.Console
|
|
20
|
+
| Random.Random
|
|
21
|
+
| ConfigProvider.ConfigProvider
|
|
22
|
+
| Tracer.Tracer
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @since 2.0.0
|
|
26
|
+
* @category constructors
|
|
27
|
+
*/
|
|
28
|
+
export const liveServices: Context.Context<DefaultServices> = internal.liveServices
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @since 2.0.0
|
|
32
|
+
* @category fiberRefs
|
|
33
|
+
*/
|
|
34
|
+
export const currentServices: FiberRef.FiberRef<Context.Context<DefaultServices>> = internal.currentServices
|
package/src/Deferred.ts
ADDED
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Cause from "./Cause.js"
|
|
5
|
+
import type * as Effect from "./Effect.js"
|
|
6
|
+
import type * as Exit from "./Exit.js"
|
|
7
|
+
import type * as FiberId from "./FiberId.js"
|
|
8
|
+
import type { LazyArg } from "./Function.js"
|
|
9
|
+
import * as core from "./internal/core.js"
|
|
10
|
+
import * as internal from "./internal/deferred.js"
|
|
11
|
+
import type * as MutableRef from "./MutableRef.js"
|
|
12
|
+
import type * as Option from "./Option.js"
|
|
13
|
+
import type * as Types from "./Types.js"
|
|
14
|
+
import type * as Unify from "./Unify.js"
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @since 2.0.0
|
|
18
|
+
* @category symbols
|
|
19
|
+
*/
|
|
20
|
+
export const DeferredTypeId: unique symbol = internal.DeferredTypeId
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @since 2.0.0
|
|
24
|
+
* @category symbols
|
|
25
|
+
*/
|
|
26
|
+
export type DeferredTypeId = typeof DeferredTypeId
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* A `Deferred` represents an asynchronous variable that can be set exactly
|
|
30
|
+
* once, with the ability for an arbitrary number of fibers to suspend (by
|
|
31
|
+
* calling `Deferred.await`) and automatically resume when the variable is set.
|
|
32
|
+
*
|
|
33
|
+
* `Deferred` can be used for building primitive actions whose completions
|
|
34
|
+
* require the coordinated action of multiple fibers, and for building
|
|
35
|
+
* higher-level concurrent or asynchronous structures.
|
|
36
|
+
*
|
|
37
|
+
* @since 2.0.0
|
|
38
|
+
* @category models
|
|
39
|
+
*/
|
|
40
|
+
export interface Deferred<in out A, in out E = never> extends Effect.Effect<A, E>, Deferred.Variance<A, E> {
|
|
41
|
+
/** @internal */
|
|
42
|
+
readonly state: MutableRef.MutableRef<internal.State<A, E>>
|
|
43
|
+
/** @internal */
|
|
44
|
+
readonly blockingOn: FiberId.FiberId
|
|
45
|
+
readonly [Unify.typeSymbol]?: unknown
|
|
46
|
+
readonly [Unify.unifySymbol]?: DeferredUnify<this>
|
|
47
|
+
readonly [Unify.ignoreSymbol]?: DeferredUnifyIgnore
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @category models
|
|
52
|
+
* @since 3.8.0
|
|
53
|
+
*/
|
|
54
|
+
export interface DeferredUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
|
|
55
|
+
Deferred?: () => Extract<A[Unify.typeSymbol], Deferred<any, any>>
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @category models
|
|
60
|
+
* @since 3.8.0
|
|
61
|
+
*/
|
|
62
|
+
export interface DeferredUnifyIgnore extends Effect.EffectUnifyIgnore {
|
|
63
|
+
Effect?: true
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @since 2.0.0
|
|
68
|
+
*/
|
|
69
|
+
export declare namespace Deferred {
|
|
70
|
+
/**
|
|
71
|
+
* @since 2.0.0
|
|
72
|
+
* @category models
|
|
73
|
+
*/
|
|
74
|
+
export interface Variance<in out A, in out E> {
|
|
75
|
+
readonly [DeferredTypeId]: {
|
|
76
|
+
readonly _A: Types.Invariant<A>
|
|
77
|
+
readonly _E: Types.Invariant<E>
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Creates a new `Deferred`.
|
|
84
|
+
*
|
|
85
|
+
* @since 2.0.0
|
|
86
|
+
* @category constructors
|
|
87
|
+
*/
|
|
88
|
+
export const make: <A, E = never>() => Effect.Effect<Deferred<A, E>> = core.deferredMake
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Creates a new `Deferred` from the specified `FiberId`.
|
|
92
|
+
*
|
|
93
|
+
* @since 2.0.0
|
|
94
|
+
* @category constructors
|
|
95
|
+
*/
|
|
96
|
+
export const makeAs: <A, E = never>(fiberId: FiberId.FiberId) => Effect.Effect<Deferred<A, E>> = core.deferredMakeAs
|
|
97
|
+
|
|
98
|
+
const _await: <A, E>(self: Deferred<A, E>) => Effect.Effect<A, E> = core.deferredAwait
|
|
99
|
+
|
|
100
|
+
export {
|
|
101
|
+
/**
|
|
102
|
+
* Retrieves the value of the `Deferred`, suspending the fiber running the
|
|
103
|
+
* workflow until the result is available.
|
|
104
|
+
*
|
|
105
|
+
* @since 2.0.0
|
|
106
|
+
* @category getters
|
|
107
|
+
*/
|
|
108
|
+
_await as await
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Completes the deferred with the result of the specified effect. If the
|
|
113
|
+
* deferred has already been completed, the method will produce false.
|
|
114
|
+
*
|
|
115
|
+
* Note that `Deferred.completeWith` will be much faster, so consider using
|
|
116
|
+
* that if you do not need to memoize the result of the specified effect.
|
|
117
|
+
*
|
|
118
|
+
* @since 2.0.0
|
|
119
|
+
* @category utils
|
|
120
|
+
*/
|
|
121
|
+
export const complete: {
|
|
122
|
+
<A, E>(effect: Effect.Effect<A, E>): (self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
123
|
+
<A, E>(self: Deferred<A, E>, effect: Effect.Effect<A, E>): Effect.Effect<boolean>
|
|
124
|
+
} = core.deferredComplete
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Completes the deferred with the result of the specified effect. If the
|
|
128
|
+
* deferred has already been completed, the method will produce false.
|
|
129
|
+
*
|
|
130
|
+
* @since 2.0.0
|
|
131
|
+
* @category utils
|
|
132
|
+
*/
|
|
133
|
+
export const completeWith: {
|
|
134
|
+
<A, E>(effect: Effect.Effect<A, E>): (self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
135
|
+
<A, E>(self: Deferred<A, E>, effect: Effect.Effect<A, E>): Effect.Effect<boolean>
|
|
136
|
+
} = core.deferredCompleteWith
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Exits the `Deferred` with the specified `Exit` value, which will be
|
|
140
|
+
* propagated to all fibers waiting on the value of the `Deferred`.
|
|
141
|
+
*
|
|
142
|
+
* @since 2.0.0
|
|
143
|
+
* @category utils
|
|
144
|
+
*/
|
|
145
|
+
export const done: {
|
|
146
|
+
<A, E>(exit: Exit.Exit<A, E>): (self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
147
|
+
<A, E>(self: Deferred<A, E>, exit: Exit.Exit<A, E>): Effect.Effect<boolean>
|
|
148
|
+
} = core.deferredDone
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Fails the `Deferred` with the specified error, which will be propagated to
|
|
152
|
+
* all fibers waiting on the value of the `Deferred`.
|
|
153
|
+
*
|
|
154
|
+
* @since 2.0.0
|
|
155
|
+
* @category utils
|
|
156
|
+
*/
|
|
157
|
+
export const fail: {
|
|
158
|
+
<E>(error: E): <A>(self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
159
|
+
<A, E>(self: Deferred<A, E>, error: E): Effect.Effect<boolean>
|
|
160
|
+
} = core.deferredFail
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Fails the `Deferred` with the specified error, which will be propagated to
|
|
164
|
+
* all fibers waiting on the value of the `Deferred`.
|
|
165
|
+
*
|
|
166
|
+
* @since 2.0.0
|
|
167
|
+
* @category utils
|
|
168
|
+
*/
|
|
169
|
+
export const failSync: {
|
|
170
|
+
<E>(evaluate: LazyArg<E>): <A>(self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
171
|
+
<A, E>(self: Deferred<A, E>, evaluate: LazyArg<E>): Effect.Effect<boolean>
|
|
172
|
+
} = core.deferredFailSync
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Fails the `Deferred` with the specified `Cause`, which will be propagated to
|
|
176
|
+
* all fibers waiting on the value of the `Deferred`.
|
|
177
|
+
*
|
|
178
|
+
* @since 2.0.0
|
|
179
|
+
* @category utils
|
|
180
|
+
*/
|
|
181
|
+
export const failCause: {
|
|
182
|
+
<E>(cause: Cause.Cause<E>): <A>(self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
183
|
+
<A, E>(self: Deferred<A, E>, cause: Cause.Cause<E>): Effect.Effect<boolean>
|
|
184
|
+
} = core.deferredFailCause
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Fails the `Deferred` with the specified `Cause`, which will be propagated to
|
|
188
|
+
* all fibers waiting on the value of the `Deferred`.
|
|
189
|
+
*
|
|
190
|
+
* @since 2.0.0
|
|
191
|
+
* @category utils
|
|
192
|
+
*/
|
|
193
|
+
export const failCauseSync: {
|
|
194
|
+
<E>(evaluate: LazyArg<Cause.Cause<E>>): <A>(self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
195
|
+
<A, E>(self: Deferred<A, E>, evaluate: LazyArg<Cause.Cause<E>>): Effect.Effect<boolean>
|
|
196
|
+
} = core.deferredFailCauseSync
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Kills the `Deferred` with the specified defect, which will be propagated to
|
|
200
|
+
* all fibers waiting on the value of the `Deferred`.
|
|
201
|
+
*
|
|
202
|
+
* @since 2.0.0
|
|
203
|
+
* @category utils
|
|
204
|
+
*/
|
|
205
|
+
export const die: {
|
|
206
|
+
(defect: unknown): <A, E>(self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
207
|
+
<A, E>(self: Deferred<A, E>, defect: unknown): Effect.Effect<boolean>
|
|
208
|
+
} = core.deferredDie
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Kills the `Deferred` with the specified defect, which will be propagated to
|
|
212
|
+
* all fibers waiting on the value of the `Deferred`.
|
|
213
|
+
*
|
|
214
|
+
* @since 2.0.0
|
|
215
|
+
* @category utils
|
|
216
|
+
*/
|
|
217
|
+
export const dieSync: {
|
|
218
|
+
(evaluate: LazyArg<unknown>): <A, E>(self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
219
|
+
<A, E>(self: Deferred<A, E>, evaluate: LazyArg<unknown>): Effect.Effect<boolean>
|
|
220
|
+
} = core.deferredDieSync
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Completes the `Deferred` with interruption. This will interrupt all fibers
|
|
224
|
+
* waiting on the value of the `Deferred` with the `FiberId` of the fiber
|
|
225
|
+
* calling this method.
|
|
226
|
+
*
|
|
227
|
+
* @since 2.0.0
|
|
228
|
+
* @category utils
|
|
229
|
+
*/
|
|
230
|
+
export const interrupt: <A, E>(self: Deferred<A, E>) => Effect.Effect<boolean> = core.deferredInterrupt
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Completes the `Deferred` with interruption. This will interrupt all fibers
|
|
234
|
+
* waiting on the value of the `Deferred` with the specified `FiberId`.
|
|
235
|
+
*
|
|
236
|
+
* @since 2.0.0
|
|
237
|
+
* @category utils
|
|
238
|
+
*/
|
|
239
|
+
export const interruptWith: {
|
|
240
|
+
(fiberId: FiberId.FiberId): <A, E>(self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
241
|
+
<A, E>(self: Deferred<A, E>, fiberId: FiberId.FiberId): Effect.Effect<boolean>
|
|
242
|
+
} = core.deferredInterruptWith
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Returns `true` if this `Deferred` has already been completed with a value or
|
|
246
|
+
* an error, `false` otherwise.
|
|
247
|
+
*
|
|
248
|
+
* @since 2.0.0
|
|
249
|
+
* @category getters
|
|
250
|
+
*/
|
|
251
|
+
export const isDone: <A, E>(self: Deferred<A, E>) => Effect.Effect<boolean> = core.deferredIsDone
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Returns a `Some<Effect<A, E, R>>` from the `Deferred` if this `Deferred` has
|
|
255
|
+
* already been completed, `None` otherwise.
|
|
256
|
+
*
|
|
257
|
+
* @since 2.0.0
|
|
258
|
+
* @category getters
|
|
259
|
+
*/
|
|
260
|
+
export const poll: <A, E>(
|
|
261
|
+
self: Deferred<A, E>
|
|
262
|
+
) => Effect.Effect<Option.Option<Effect.Effect<A, E>>> = core.deferredPoll
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* Completes the `Deferred` with the specified value.
|
|
266
|
+
*
|
|
267
|
+
* @since 2.0.0
|
|
268
|
+
* @category utils
|
|
269
|
+
*/
|
|
270
|
+
export const succeed: {
|
|
271
|
+
<A>(value: A): <E>(self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
272
|
+
<A, E>(self: Deferred<A, E>, value: A): Effect.Effect<boolean>
|
|
273
|
+
} = core.deferredSucceed
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Completes the `Deferred` with the specified lazily evaluated value.
|
|
277
|
+
*
|
|
278
|
+
* @since 2.0.0
|
|
279
|
+
* @category utils
|
|
280
|
+
*/
|
|
281
|
+
export const sync: {
|
|
282
|
+
<A>(evaluate: LazyArg<A>): <E>(self: Deferred<A, E>) => Effect.Effect<boolean>
|
|
283
|
+
<A, E>(self: Deferred<A, E>, evaluate: LazyArg<A>): Effect.Effect<boolean>
|
|
284
|
+
} = core.deferredSync
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Unsafely creates a new `Deferred` from the specified `FiberId`.
|
|
288
|
+
*
|
|
289
|
+
* @since 2.0.0
|
|
290
|
+
* @category unsafe
|
|
291
|
+
*/
|
|
292
|
+
export const unsafeMake: <A, E = never>(fiberId: FiberId.FiberId) => Deferred<A, E> = core.deferredUnsafeMake
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Unsafely exits the `Deferred` with the specified `Exit` value, which will be
|
|
296
|
+
* propagated to all fibers waiting on the value of the `Deferred`.
|
|
297
|
+
*
|
|
298
|
+
* @since 2.0.0
|
|
299
|
+
* @category unsafe
|
|
300
|
+
*/
|
|
301
|
+
export const unsafeDone: <A, E>(self: Deferred<A, E>, effect: Effect.Effect<A, E>) => void = core.deferredUnsafeDone
|