@clayroach/effect 3.19.14-source-capture.8 → 3.19.14-source-trace.2
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
package/src/Scope.ts
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type * as Context from "./Context.js"
|
|
6
|
+
import type * as Effect from "./Effect.js"
|
|
7
|
+
import type * as ExecutionStrategy from "./ExecutionStrategy.js"
|
|
8
|
+
import type * as Exit from "./Exit.js"
|
|
9
|
+
import * as core from "./internal/core.js"
|
|
10
|
+
import * as fiberRuntime from "./internal/fiberRuntime.js"
|
|
11
|
+
import type { Pipeable } from "./Pipeable.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A unique identifier for the `Scope` type.
|
|
15
|
+
*
|
|
16
|
+
* @since 2.0.0
|
|
17
|
+
* @category symbols
|
|
18
|
+
*/
|
|
19
|
+
export const ScopeTypeId: unique symbol = core.ScopeTypeId
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The type of the unique identifier for `Scope`.
|
|
23
|
+
*
|
|
24
|
+
* @since 2.0.0
|
|
25
|
+
* @category symbols
|
|
26
|
+
*/
|
|
27
|
+
export type ScopeTypeId = typeof ScopeTypeId
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* A unique identifier for the `CloseableScope` type.
|
|
31
|
+
*
|
|
32
|
+
* @since 2.0.0
|
|
33
|
+
* @category symbols
|
|
34
|
+
*/
|
|
35
|
+
export const CloseableScopeTypeId: unique symbol = core.CloseableScopeTypeId
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* The type of the unique identifier for `CloseableScope`.
|
|
39
|
+
*
|
|
40
|
+
* @since 2.0.0
|
|
41
|
+
* @category symbols
|
|
42
|
+
*/
|
|
43
|
+
export type CloseableScopeTypeId = typeof CloseableScopeTypeId
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Represents a scope that manages finalizers and can fork child scopes.
|
|
47
|
+
*
|
|
48
|
+
* @since 2.0.0
|
|
49
|
+
* @category models
|
|
50
|
+
*/
|
|
51
|
+
export interface Scope extends Pipeable {
|
|
52
|
+
readonly [ScopeTypeId]: ScopeTypeId
|
|
53
|
+
/**
|
|
54
|
+
* The execution strategy for running finalizers in this scope.
|
|
55
|
+
*/
|
|
56
|
+
readonly strategy: ExecutionStrategy.ExecutionStrategy
|
|
57
|
+
/**
|
|
58
|
+
* Forks a new child scope with the specified execution strategy. The child scope
|
|
59
|
+
* will automatically be closed when this scope is closed.
|
|
60
|
+
*
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
fork(strategy: ExecutionStrategy.ExecutionStrategy): Effect.Effect<Scope.Closeable>
|
|
64
|
+
/**
|
|
65
|
+
* Adds a finalizer to this scope. The finalizer will be run when the scope is closed.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
addFinalizer(finalizer: Scope.Finalizer): Effect.Effect<void>
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* A scope that can be explicitly closed with a specified exit value.
|
|
74
|
+
*
|
|
75
|
+
* @since 2.0.0
|
|
76
|
+
* @category models
|
|
77
|
+
*/
|
|
78
|
+
export interface CloseableScope extends Scope, Pipeable {
|
|
79
|
+
readonly [CloseableScopeTypeId]: CloseableScopeTypeId
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Closes this scope with the given exit value, running all finalizers.
|
|
83
|
+
*
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
86
|
+
close(exit: Exit.Exit<unknown, unknown>): Effect.Effect<void>
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* A tag representing the current `Scope` in the environment.
|
|
91
|
+
*
|
|
92
|
+
* @since 2.0.0
|
|
93
|
+
* @category context
|
|
94
|
+
*/
|
|
95
|
+
export const Scope: Context.Tag<Scope, Scope> = fiberRuntime.scopeTag
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @since 2.0.0
|
|
99
|
+
*/
|
|
100
|
+
export declare namespace Scope {
|
|
101
|
+
/**
|
|
102
|
+
* A finalizer function that takes an `Exit` value and returns an `Effect`.
|
|
103
|
+
*
|
|
104
|
+
* @since 2.0.0
|
|
105
|
+
* @category model
|
|
106
|
+
*/
|
|
107
|
+
export type Finalizer = (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>
|
|
108
|
+
/**
|
|
109
|
+
* A closeable scope that can be explicitly closed.
|
|
110
|
+
*
|
|
111
|
+
* @since 2.0.0
|
|
112
|
+
* @category model
|
|
113
|
+
*/
|
|
114
|
+
export type Closeable = CloseableScope
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Adds a finalizer to this scope. The finalizer is guaranteed to be run when
|
|
119
|
+
* the scope is closed. Use this when the finalizer does not need to know the
|
|
120
|
+
* `Exit` value that the scope is closed with.
|
|
121
|
+
*
|
|
122
|
+
* @see {@link addFinalizerExit}
|
|
123
|
+
*
|
|
124
|
+
* @since 2.0.0
|
|
125
|
+
* @category utils
|
|
126
|
+
*/
|
|
127
|
+
export const addFinalizer: (
|
|
128
|
+
self: Scope,
|
|
129
|
+
finalizer: Effect.Effect<unknown>
|
|
130
|
+
) => Effect.Effect<void> = core.scopeAddFinalizer
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Adds a finalizer to this scope. The finalizer receives the `Exit` value
|
|
134
|
+
* when the scope is closed, allowing it to perform different actions based
|
|
135
|
+
* on the exit status.
|
|
136
|
+
*
|
|
137
|
+
* @see {@link addFinalizer}
|
|
138
|
+
*
|
|
139
|
+
* @since 2.0.0
|
|
140
|
+
* @category utils
|
|
141
|
+
*/
|
|
142
|
+
export const addFinalizerExit: (self: Scope, finalizer: Scope.Finalizer) => Effect.Effect<void> =
|
|
143
|
+
core.scopeAddFinalizerExit
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Closes this scope with the specified exit value, running all finalizers that
|
|
147
|
+
* have been added to the scope.
|
|
148
|
+
*
|
|
149
|
+
* @since 2.0.0
|
|
150
|
+
* @category destructors
|
|
151
|
+
*/
|
|
152
|
+
export const close: (self: CloseableScope, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void> = core.scopeClose
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Extends the scope of an `Effect` that requires a scope into this scope.
|
|
156
|
+
* It provides this scope to the effect but does not close the scope when the
|
|
157
|
+
* effect completes execution. This allows extending a scoped value into a
|
|
158
|
+
* larger scope.
|
|
159
|
+
*
|
|
160
|
+
* @since 2.0.0
|
|
161
|
+
* @category utils
|
|
162
|
+
*/
|
|
163
|
+
export const extend: {
|
|
164
|
+
(scope: Scope): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Scope>>
|
|
165
|
+
<A, E, R>(effect: Effect.Effect<A, E, R>, scope: Scope): Effect.Effect<A, E, Exclude<R, Scope>>
|
|
166
|
+
} = fiberRuntime.scopeExtend
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Forks a new child scope with the specified execution strategy. The child scope
|
|
170
|
+
* will automatically be closed when this scope is closed.
|
|
171
|
+
*
|
|
172
|
+
* @since 2.0.0
|
|
173
|
+
* @category utils
|
|
174
|
+
*/
|
|
175
|
+
export const fork: (
|
|
176
|
+
self: Scope,
|
|
177
|
+
strategy: ExecutionStrategy.ExecutionStrategy
|
|
178
|
+
) => Effect.Effect<CloseableScope> = core.scopeFork
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Provides this closeable scope to an `Effect` that requires a scope,
|
|
182
|
+
* guaranteeing that the scope is closed with the result of that effect as
|
|
183
|
+
* soon as the effect completes execution, whether by success, failure, or
|
|
184
|
+
* interruption.
|
|
185
|
+
*
|
|
186
|
+
* @since 2.0.0
|
|
187
|
+
* @category destructors
|
|
188
|
+
*/
|
|
189
|
+
export const use: {
|
|
190
|
+
(scope: CloseableScope): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Scope>>
|
|
191
|
+
<A, E, R>(effect: Effect.Effect<A, E, R>, scope: CloseableScope): Effect.Effect<A, E, Exclude<R, Scope>>
|
|
192
|
+
} = fiberRuntime.scopeUse
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Creates a new closeable scope where finalizers will run according to the
|
|
196
|
+
* specified `ExecutionStrategy`. If no execution strategy is provided, `sequential`
|
|
197
|
+
* will be used by default.
|
|
198
|
+
*
|
|
199
|
+
* @since 2.0.0
|
|
200
|
+
* @category constructors
|
|
201
|
+
*/
|
|
202
|
+
export const make: (
|
|
203
|
+
executionStrategy?: ExecutionStrategy.ExecutionStrategy
|
|
204
|
+
) => Effect.Effect<CloseableScope> = fiberRuntime.scopeMake
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Cache from "./Cache.js"
|
|
5
|
+
import type * as Duration from "./Duration.js"
|
|
6
|
+
import type * as Effect from "./Effect.js"
|
|
7
|
+
import type * as Exit from "./Exit.js"
|
|
8
|
+
import * as internal from "./internal/scopedCache.js"
|
|
9
|
+
import type * as Option from "./Option.js"
|
|
10
|
+
import type { Pipeable } from "./Pipeable.js"
|
|
11
|
+
import type * as Scope from "./Scope.js"
|
|
12
|
+
import type * as Types from "./Types.js"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @since 2.0.0
|
|
16
|
+
* @category symbols
|
|
17
|
+
*/
|
|
18
|
+
export const ScopedCacheTypeId: unique symbol = internal.ScopedCacheTypeId
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @since 2.0.0
|
|
22
|
+
* @category symbols
|
|
23
|
+
*/
|
|
24
|
+
export type ScopedCacheTypeId = typeof ScopedCacheTypeId
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @since 2.0.0
|
|
28
|
+
* @category models
|
|
29
|
+
*/
|
|
30
|
+
export interface ScopedCache<in Key, out Value, out Error = never>
|
|
31
|
+
extends ScopedCache.Variance<Key, Value, Error>, Pipeable
|
|
32
|
+
{
|
|
33
|
+
/**
|
|
34
|
+
* Retrieves the value associated with the specified key if it exists.
|
|
35
|
+
* Otherwise returns `Option.none`.
|
|
36
|
+
*/
|
|
37
|
+
getOption(key: Key): Effect.Effect<Option.Option<Value>, Error, Scope.Scope>
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Retrieves the value associated with the specified key if it exists and the
|
|
41
|
+
* lookup function has completed. Otherwise returns `Option.none`.
|
|
42
|
+
*/
|
|
43
|
+
getOptionComplete(key: Key): Effect.Effect<Option.Option<Value>, never, Scope.Scope>
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Returns statistics for this cache.
|
|
47
|
+
*/
|
|
48
|
+
readonly cacheStats: Effect.Effect<Cache.CacheStats>
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Return whether a resource associated with the specified key exists in the
|
|
52
|
+
* cache. Sometime `contains` can return true if the resource is currently
|
|
53
|
+
* being created but not yet totally created.
|
|
54
|
+
*/
|
|
55
|
+
contains(key: Key): Effect.Effect<boolean>
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Return statistics for the specified entry.
|
|
59
|
+
*/
|
|
60
|
+
entryStats(key: Key): Effect.Effect<Option.Option<Cache.EntryStats>>
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Gets the value from the cache if it exists or otherwise computes it, the
|
|
64
|
+
* release action signals to the cache that the value is no longer being used
|
|
65
|
+
* and can potentially be finalized subject to the policies of the cache.
|
|
66
|
+
*/
|
|
67
|
+
get(key: Key): Effect.Effect<Value, Error, Scope.Scope>
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Invalidates the resource associated with the specified key.
|
|
71
|
+
*/
|
|
72
|
+
invalidate(key: Key): Effect.Effect<void>
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Invalidates all values in the cache.
|
|
76
|
+
*/
|
|
77
|
+
readonly invalidateAll: Effect.Effect<void>
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Force the reuse of the lookup function to compute the returned scoped
|
|
81
|
+
* effect associated with the specified key immediately. Once the new resource
|
|
82
|
+
* is recomputed, the old resource associated to the key is cleaned (once all
|
|
83
|
+
* fiber using it are done with it). During the time the new resource is
|
|
84
|
+
* computed, concurrent call the .get will use the old resource if this one is
|
|
85
|
+
* not expired.
|
|
86
|
+
*/
|
|
87
|
+
refresh(key: Key): Effect.Effect<void, Error>
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Returns the approximate number of values in the cache.
|
|
91
|
+
*/
|
|
92
|
+
readonly size: Effect.Effect<number>
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @since 2.0.0
|
|
97
|
+
*/
|
|
98
|
+
export declare namespace ScopedCache {
|
|
99
|
+
/**
|
|
100
|
+
* @since 2.0.0
|
|
101
|
+
* @category models
|
|
102
|
+
*/
|
|
103
|
+
export interface Variance<in Key, out Value, out Error> {
|
|
104
|
+
readonly [ScopedCacheTypeId]: {
|
|
105
|
+
_Key: Types.Contravariant<Key>
|
|
106
|
+
_Error: Types.Covariant<Error>
|
|
107
|
+
_Value: Types.Covariant<Value>
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Constructs a new cache with the specified capacity, time to live, and
|
|
114
|
+
* lookup function.
|
|
115
|
+
*
|
|
116
|
+
* @since 2.0.0
|
|
117
|
+
* @category constructors
|
|
118
|
+
*/
|
|
119
|
+
export const make: <Key, Value, Error = never, Environment = never>(
|
|
120
|
+
options: {
|
|
121
|
+
readonly lookup: Lookup<Key, Value, Error, Environment>
|
|
122
|
+
readonly capacity: number
|
|
123
|
+
readonly timeToLive: Duration.DurationInput
|
|
124
|
+
}
|
|
125
|
+
) => Effect.Effect<ScopedCache<Key, Value, Error>, never, Scope.Scope | Environment> = internal.make
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Constructs a new cache with the specified capacity, time to live, and
|
|
129
|
+
* lookup function, where the time to live can depend on the `Exit` value
|
|
130
|
+
* returned by the lookup function.
|
|
131
|
+
*
|
|
132
|
+
* @since 2.0.0
|
|
133
|
+
* @category constructors
|
|
134
|
+
*/
|
|
135
|
+
export const makeWith: <Key, Value, Error = never, Environment = never>(
|
|
136
|
+
options: {
|
|
137
|
+
readonly capacity: number
|
|
138
|
+
readonly lookup: Lookup<Key, Value, Error, Environment>
|
|
139
|
+
readonly timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
|
|
140
|
+
}
|
|
141
|
+
) => Effect.Effect<ScopedCache<Key, Value, Error>, never, Scope.Scope | Environment> = internal.makeWith
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Similar to `Cache.Lookup`, but executes the lookup function within a `Scope`.
|
|
145
|
+
*
|
|
146
|
+
* @since 2.0.0
|
|
147
|
+
* @category models
|
|
148
|
+
*/
|
|
149
|
+
export type Lookup<Key, Value, Error = never, Environment = never> = (
|
|
150
|
+
key: Key
|
|
151
|
+
) => Effect.Effect<Value, Error, Environment | Scope.Scope>
|
package/src/ScopedRef.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Effect from "./Effect.js"
|
|
5
|
+
import type { LazyArg } from "./Function.js"
|
|
6
|
+
import * as internal from "./internal/scopedRef.js"
|
|
7
|
+
import type { Pipeable } from "./Pipeable.js"
|
|
8
|
+
import type * as Scope from "./Scope.js"
|
|
9
|
+
import type * as Synchronized from "./SynchronizedRef.js"
|
|
10
|
+
import type * as Types from "./Types.js"
|
|
11
|
+
import type * as Unify from "./Unify.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @since 2.0.0
|
|
15
|
+
* @category symbols
|
|
16
|
+
*/
|
|
17
|
+
export const ScopedRefTypeId: unique symbol = internal.ScopedRefTypeId
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @since 2.0.0
|
|
21
|
+
* @category symbols
|
|
22
|
+
*/
|
|
23
|
+
export type ScopedRefTypeId = typeof ScopedRefTypeId
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* A `ScopedRef` is a reference whose value is associated with resources,
|
|
27
|
+
* which must be released properly. You can both get the current value of any
|
|
28
|
+
* `ScopedRef`, as well as set it to a new value (which may require new
|
|
29
|
+
* resources). The reference itself takes care of properly releasing resources
|
|
30
|
+
* for the old value whenever a new value is obtained.
|
|
31
|
+
*
|
|
32
|
+
* @since 2.0.0
|
|
33
|
+
* @category models
|
|
34
|
+
*/
|
|
35
|
+
export interface ScopedRef<in out A> extends Effect.Effect<A>, ScopedRef.Variance<A>, Pipeable {
|
|
36
|
+
/** @internal */
|
|
37
|
+
readonly ref: Synchronized.SynchronizedRef<readonly [Scope.Scope.Closeable, A]>
|
|
38
|
+
|
|
39
|
+
readonly [Unify.typeSymbol]?: unknown
|
|
40
|
+
readonly [Unify.unifySymbol]?: ScopedRefUnify<this>
|
|
41
|
+
readonly [Unify.ignoreSymbol]?: ScopedRefUnifyIgnore
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @category models
|
|
46
|
+
* @since 3.9.0
|
|
47
|
+
*/
|
|
48
|
+
export interface ScopedRefUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
|
|
49
|
+
ScopedRef?: () => Extract<A[Unify.typeSymbol], ScopedRef<any>>
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @category models
|
|
54
|
+
* @since 3.9.0
|
|
55
|
+
*/
|
|
56
|
+
export interface ScopedRefUnifyIgnore extends Effect.EffectUnifyIgnore {
|
|
57
|
+
Effect?: true
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @since 2.0.0
|
|
62
|
+
*/
|
|
63
|
+
export declare namespace ScopedRef {
|
|
64
|
+
/**
|
|
65
|
+
* @since 2.0.0
|
|
66
|
+
* @category models
|
|
67
|
+
*/
|
|
68
|
+
export interface Variance<in out A> {
|
|
69
|
+
readonly [ScopedRefTypeId]: {
|
|
70
|
+
readonly _A: Types.Invariant<A>
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Creates a new `ScopedRef` from an effect that resourcefully produces a
|
|
77
|
+
* value.
|
|
78
|
+
*
|
|
79
|
+
* @since 2.0.0
|
|
80
|
+
* @category constructors
|
|
81
|
+
*/
|
|
82
|
+
export const fromAcquire: <A, E, R>(
|
|
83
|
+
acquire: Effect.Effect<A, E, R>
|
|
84
|
+
) => Effect.Effect<ScopedRef<A>, E, Scope.Scope | R> = internal.fromAcquire
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Retrieves the current value of the scoped reference.
|
|
88
|
+
*
|
|
89
|
+
* @since 2.0.0
|
|
90
|
+
* @category getters
|
|
91
|
+
*/
|
|
92
|
+
export const get: <A>(self: ScopedRef<A>) => Effect.Effect<A> = internal.get
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Creates a new `ScopedRef` from the specified value. This method should
|
|
96
|
+
* not be used for values whose creation require the acquisition of resources.
|
|
97
|
+
*
|
|
98
|
+
* @since 2.0.0
|
|
99
|
+
* @category constructors
|
|
100
|
+
*/
|
|
101
|
+
export const make: <A>(evaluate: LazyArg<A>) => Effect.Effect<ScopedRef<A>, never, Scope.Scope> = internal.make
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Sets the value of this reference to the specified resourcefully-created
|
|
105
|
+
* value. Any resources associated with the old value will be released.
|
|
106
|
+
*
|
|
107
|
+
* This method will not return until either the reference is successfully
|
|
108
|
+
* changed to the new value, with old resources released, or until the attempt
|
|
109
|
+
* to acquire a new value fails.
|
|
110
|
+
*
|
|
111
|
+
* @since 2.0.0
|
|
112
|
+
* @category getters
|
|
113
|
+
*/
|
|
114
|
+
export const set: {
|
|
115
|
+
<A, R, E>(acquire: Effect.Effect<A, E, R>): (self: ScopedRef<A>) => Effect.Effect<void, E, Exclude<R, Scope.Scope>>
|
|
116
|
+
<A, R, E>(self: ScopedRef<A>, acquire: Effect.Effect<A, E, R>): Effect.Effect<void, E, Exclude<R, Scope.Scope>>
|
|
117
|
+
} = internal.set
|
package/src/Secret.ts
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
* @deprecated
|
|
4
|
+
*/
|
|
5
|
+
import type * as Equal from "./Equal.js"
|
|
6
|
+
import * as InternalSecret from "./internal/secret.js"
|
|
7
|
+
import type * as Redacted from "./Redacted.js"
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @since 2.0.0
|
|
11
|
+
* @category symbols
|
|
12
|
+
* @deprecated
|
|
13
|
+
*/
|
|
14
|
+
export const SecretTypeId: unique symbol = InternalSecret.SecretTypeId
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @since 2.0.0
|
|
18
|
+
* @category symbols
|
|
19
|
+
* @deprecated
|
|
20
|
+
*/
|
|
21
|
+
export type SecretTypeId = typeof SecretTypeId
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @since 2.0.0
|
|
25
|
+
* @category models
|
|
26
|
+
* @deprecated
|
|
27
|
+
*/
|
|
28
|
+
export interface Secret extends Redacted.Redacted, Secret.Proto, Equal.Equal {
|
|
29
|
+
/** @internal */
|
|
30
|
+
readonly raw: Array<number>
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @since 2.0.0
|
|
35
|
+
* @deprecated
|
|
36
|
+
*/
|
|
37
|
+
export declare namespace Secret {
|
|
38
|
+
/**
|
|
39
|
+
* @since 2.0.0
|
|
40
|
+
* @category models
|
|
41
|
+
* @deprecated
|
|
42
|
+
*/
|
|
43
|
+
export interface Proto {
|
|
44
|
+
readonly [SecretTypeId]: SecretTypeId
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @since 2.0.0
|
|
50
|
+
* @category refinements
|
|
51
|
+
* @deprecated
|
|
52
|
+
*/
|
|
53
|
+
export const isSecret: (u: unknown) => u is Secret = InternalSecret.isSecret
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @since 2.0.0
|
|
57
|
+
* @category constructors
|
|
58
|
+
* @deprecated
|
|
59
|
+
*/
|
|
60
|
+
export const make: (bytes: Array<number>) => Secret = InternalSecret.make
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @since 2.0.0
|
|
64
|
+
* @category constructors
|
|
65
|
+
* @deprecated
|
|
66
|
+
*/
|
|
67
|
+
export const fromIterable: (iterable: Iterable<string>) => Secret = InternalSecret.fromIterable
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @since 2.0.0
|
|
71
|
+
* @category constructors
|
|
72
|
+
* @deprecated
|
|
73
|
+
*/
|
|
74
|
+
export const fromString: (text: string) => Secret = InternalSecret.fromString
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @since 2.0.0
|
|
78
|
+
* @category getters
|
|
79
|
+
* @deprecated
|
|
80
|
+
*/
|
|
81
|
+
export const value: (self: Secret) => string = InternalSecret.value
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @since 2.0.0
|
|
85
|
+
* @category unsafe
|
|
86
|
+
* @deprecated
|
|
87
|
+
*/
|
|
88
|
+
export const unsafeWipe: (self: Secret) => void = InternalSecret.unsafeWipe
|
|
@@ -0,0 +1,67 @@
|
|
|
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 Either from "./Either.js"
|
|
7
|
+
import type * as Exit from "./Exit.js"
|
|
8
|
+
import * as internal from "./internal/channel/singleProducerAsyncInput.js"
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* An MVar-like abstraction for sending data to channels asynchronously which is
|
|
12
|
+
* designed for one producer and multiple consumers.
|
|
13
|
+
*
|
|
14
|
+
* Features the following semantics:
|
|
15
|
+
* - Buffer of size 1.
|
|
16
|
+
* - When emitting, the producer waits for a consumer to pick up the value to
|
|
17
|
+
* prevent "reading ahead" too much.
|
|
18
|
+
* - Once an emitted element is read by a consumer, it is cleared from the
|
|
19
|
+
* buffer, so that at most one consumer sees every emitted element.
|
|
20
|
+
* - When sending a done or error signal, the producer does not wait for a
|
|
21
|
+
* consumer to pick up the signal. The signal stays in the buffer after
|
|
22
|
+
* being read by a consumer, so it can be propagated to multiple consumers.
|
|
23
|
+
* - Trying to publish another emit/error/done after an error/done have
|
|
24
|
+
* already been published results in an interruption.
|
|
25
|
+
*
|
|
26
|
+
* @since 2.0.0
|
|
27
|
+
* @category models
|
|
28
|
+
*/
|
|
29
|
+
export interface SingleProducerAsyncInput<in out Err, in out Elem, in out Done>
|
|
30
|
+
extends AsyncInputProducer<Err, Elem, Done>, AsyncInputConsumer<Err, Elem, Done>
|
|
31
|
+
{
|
|
32
|
+
readonly close: Effect.Effect<unknown>
|
|
33
|
+
readonly take: Effect.Effect<Exit.Exit<Elem, Either.Either<Done, Err>>>
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Producer-side view of `SingleProducerAsyncInput` for variance purposes.
|
|
38
|
+
*
|
|
39
|
+
* @since 2.0.0
|
|
40
|
+
* @category models
|
|
41
|
+
*/
|
|
42
|
+
export interface AsyncInputProducer<in Err, in Elem, in Done> {
|
|
43
|
+
awaitRead(): Effect.Effect<unknown>
|
|
44
|
+
done(value: Done): Effect.Effect<unknown>
|
|
45
|
+
emit(element: Elem): Effect.Effect<unknown>
|
|
46
|
+
error(cause: Cause.Cause<Err>): Effect.Effect<unknown>
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Consumer-side view of `SingleProducerAsyncInput` for variance purposes.
|
|
51
|
+
*
|
|
52
|
+
* @since 2.0.0
|
|
53
|
+
* @category models
|
|
54
|
+
*/
|
|
55
|
+
export interface AsyncInputConsumer<out Err, out Elem, out Done> {
|
|
56
|
+
takeWith<A>(
|
|
57
|
+
onError: (cause: Cause.Cause<Err>) => A,
|
|
58
|
+
onElement: (element: Elem) => A,
|
|
59
|
+
onDone: (value: Done) => A
|
|
60
|
+
): Effect.Effect<A>
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @since 2.0.0
|
|
65
|
+
* @category constructors
|
|
66
|
+
*/
|
|
67
|
+
export const make: <Err, Elem, Done>() => Effect.Effect<SingleProducerAsyncInput<Err, Elem, Done>> = internal.make
|