@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,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Chunk from "./Chunk.js"
|
|
5
|
+
import * as internal from "./internal/stm/tPriorityQueue.js"
|
|
6
|
+
import type * as Option from "./Option.js"
|
|
7
|
+
import type * as Order from "./Order.js"
|
|
8
|
+
import type { Predicate } from "./Predicate.js"
|
|
9
|
+
import type * as SortedMap from "./SortedMap.js"
|
|
10
|
+
import type * as STM from "./STM.js"
|
|
11
|
+
import type * as TRef from "./TRef.js"
|
|
12
|
+
import type * as Types from "./Types.js"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @since 2.0.0
|
|
16
|
+
* @category symbols
|
|
17
|
+
*/
|
|
18
|
+
export const TPriorityQueueTypeId: unique symbol = internal.TPriorityQueueTypeId
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @since 2.0.0
|
|
22
|
+
* @category symbols
|
|
23
|
+
*/
|
|
24
|
+
export type TPriorityQueueTypeId = typeof TPriorityQueueTypeId
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A `TPriorityQueue` contains values of type `A` that an `Order` is defined
|
|
28
|
+
* on. Unlike a `TQueue`, `take` returns the highest priority value (the value
|
|
29
|
+
* that is first in the specified ordering) as opposed to the first value
|
|
30
|
+
* offered to the queue. The ordering that elements with the same priority will
|
|
31
|
+
* be taken from the queue is not guaranteed.
|
|
32
|
+
*
|
|
33
|
+
* @since 2.0.0
|
|
34
|
+
* @category models
|
|
35
|
+
*/
|
|
36
|
+
export interface TPriorityQueue<in out A> extends TPriorityQueue.Variance<A> {}
|
|
37
|
+
/**
|
|
38
|
+
* @internal
|
|
39
|
+
* @since 2.0.0
|
|
40
|
+
*/
|
|
41
|
+
export interface TPriorityQueue<in out A> {
|
|
42
|
+
/** @internal */
|
|
43
|
+
readonly ref: TRef.TRef<SortedMap.SortedMap<A, [A, ...Array<A>]>>
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @since 2.0.0
|
|
48
|
+
*/
|
|
49
|
+
export declare namespace TPriorityQueue {
|
|
50
|
+
/**
|
|
51
|
+
* @since 2.0.0
|
|
52
|
+
* @category models
|
|
53
|
+
*/
|
|
54
|
+
export interface Variance<in out A> {
|
|
55
|
+
readonly [TPriorityQueueTypeId]: {
|
|
56
|
+
readonly _A: Types.Invariant<A>
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Constructs a new empty `TPriorityQueue` with the specified `Order`.
|
|
63
|
+
*
|
|
64
|
+
* @since 2.0.0
|
|
65
|
+
* @category constructors
|
|
66
|
+
*/
|
|
67
|
+
export const empty: <A>(order: Order.Order<A>) => STM.STM<TPriorityQueue<A>> = internal.empty
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Creates a new `TPriorityQueue` from an iterable collection of values.
|
|
71
|
+
*
|
|
72
|
+
* @since 2.0.0
|
|
73
|
+
* @category constructors
|
|
74
|
+
*/
|
|
75
|
+
export const fromIterable: <A>(
|
|
76
|
+
order: Order.Order<A>
|
|
77
|
+
) => (iterable: Iterable<A>) => STM.STM<TPriorityQueue<A>> = internal.fromIterable
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Checks whether the queue is empty.
|
|
81
|
+
*
|
|
82
|
+
* @since 2.0.0
|
|
83
|
+
* @category getters
|
|
84
|
+
*/
|
|
85
|
+
export const isEmpty: <A>(self: TPriorityQueue<A>) => STM.STM<boolean> = internal.isEmpty
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Checks whether the queue is not empty.
|
|
89
|
+
*
|
|
90
|
+
* @since 2.0.0
|
|
91
|
+
* @category getters
|
|
92
|
+
*/
|
|
93
|
+
export const isNonEmpty: <A>(self: TPriorityQueue<A>) => STM.STM<boolean> = internal.isNonEmpty
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Makes a new `TPriorityQueue` that is initialized with specified values.
|
|
97
|
+
*
|
|
98
|
+
* @since 2.0.0
|
|
99
|
+
* @category constructors
|
|
100
|
+
*/
|
|
101
|
+
export const make: <A>(order: Order.Order<A>) => (...elements: Array<A>) => STM.STM<TPriorityQueue<A>> = internal.make
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Offers the specified value to the queue.
|
|
105
|
+
*
|
|
106
|
+
* @since 2.0.0
|
|
107
|
+
* @category mutations
|
|
108
|
+
*/
|
|
109
|
+
export const offer: {
|
|
110
|
+
<A>(value: A): (self: TPriorityQueue<A>) => STM.STM<void>
|
|
111
|
+
<A>(self: TPriorityQueue<A>, value: A): STM.STM<void>
|
|
112
|
+
} = internal.offer
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Offers all of the elements in the specified collection to the queue.
|
|
116
|
+
*
|
|
117
|
+
* @since 2.0.0
|
|
118
|
+
* @category mutations
|
|
119
|
+
*/
|
|
120
|
+
export const offerAll: {
|
|
121
|
+
<A>(values: Iterable<A>): (self: TPriorityQueue<A>) => STM.STM<void>
|
|
122
|
+
<A>(self: TPriorityQueue<A>, values: Iterable<A>): STM.STM<void>
|
|
123
|
+
} = internal.offerAll
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Peeks at the first value in the queue without removing it, retrying until a
|
|
127
|
+
* value is in the queue.
|
|
128
|
+
*
|
|
129
|
+
* @since 2.0.0
|
|
130
|
+
* @category getters
|
|
131
|
+
*/
|
|
132
|
+
export const peek: <A>(self: TPriorityQueue<A>) => STM.STM<A> = internal.peek
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Peeks at the first value in the queue without removing it, returning `None`
|
|
136
|
+
* if there is not a value in the queue.
|
|
137
|
+
*
|
|
138
|
+
* @since 2.0.0
|
|
139
|
+
* @category getters
|
|
140
|
+
*/
|
|
141
|
+
export const peekOption: <A>(self: TPriorityQueue<A>) => STM.STM<Option.Option<A>> = internal.peekOption
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Removes all elements from the queue matching the specified predicate.
|
|
145
|
+
*
|
|
146
|
+
* @since 2.0.0
|
|
147
|
+
* @category getters
|
|
148
|
+
*/
|
|
149
|
+
export const removeIf: {
|
|
150
|
+
<A>(predicate: Predicate<A>): (self: TPriorityQueue<A>) => STM.STM<void>
|
|
151
|
+
<A>(self: TPriorityQueue<A>, predicate: Predicate<A>): STM.STM<void>
|
|
152
|
+
} = internal.removeIf
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Retains only elements from the queue matching the specified predicate.
|
|
156
|
+
*
|
|
157
|
+
* @since 2.0.0
|
|
158
|
+
* @category getters
|
|
159
|
+
*/
|
|
160
|
+
export const retainIf: {
|
|
161
|
+
<A>(predicate: Predicate<A>): (self: TPriorityQueue<A>) => STM.STM<void>
|
|
162
|
+
<A>(self: TPriorityQueue<A>, predicate: Predicate<A>): STM.STM<void>
|
|
163
|
+
} = internal.retainIf
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Returns the size of the queue.
|
|
167
|
+
*
|
|
168
|
+
* @since 2.0.0
|
|
169
|
+
* @category getters
|
|
170
|
+
*/
|
|
171
|
+
export const size: <A>(self: TPriorityQueue<A>) => STM.STM<number> = internal.size
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Takes a value from the queue, retrying until a value is in the queue.
|
|
175
|
+
*
|
|
176
|
+
* @since 2.0.0
|
|
177
|
+
* @category mutations
|
|
178
|
+
*/
|
|
179
|
+
export const take: <A>(self: TPriorityQueue<A>) => STM.STM<A> = internal.take
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Takes all values from the queue.
|
|
183
|
+
*
|
|
184
|
+
* @since 2.0.0
|
|
185
|
+
* @category mutations
|
|
186
|
+
*/
|
|
187
|
+
export const takeAll: <A>(self: TPriorityQueue<A>) => STM.STM<Array<A>> = internal.takeAll
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Takes a value from the queue, returning `None` if there is not a value in
|
|
191
|
+
* the queue.
|
|
192
|
+
*
|
|
193
|
+
* @since 2.0.0
|
|
194
|
+
* @category mutations
|
|
195
|
+
*/
|
|
196
|
+
export const takeOption: <A>(self: TPriorityQueue<A>) => STM.STM<Option.Option<A>> = internal.takeOption
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Takes up to the specified maximum number of elements from the queue.
|
|
200
|
+
*
|
|
201
|
+
* @since 2.0.0
|
|
202
|
+
* @category mutations
|
|
203
|
+
*/
|
|
204
|
+
export const takeUpTo: {
|
|
205
|
+
(n: number): <A>(self: TPriorityQueue<A>) => STM.STM<Array<A>>
|
|
206
|
+
<A>(self: TPriorityQueue<A>, n: number): STM.STM<Array<A>>
|
|
207
|
+
} = internal.takeUpTo
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Collects all values into a `Chunk`.
|
|
211
|
+
*
|
|
212
|
+
* @since 2.0.0
|
|
213
|
+
* @category destructors
|
|
214
|
+
*/
|
|
215
|
+
export const toChunk: <A>(self: TPriorityQueue<A>) => STM.STM<Chunk.Chunk<A>> = internal.toChunk
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Collects all values into an array.
|
|
219
|
+
*
|
|
220
|
+
* @since 2.0.0
|
|
221
|
+
* @category destructors
|
|
222
|
+
*/
|
|
223
|
+
export const toArray: <A>(self: TPriorityQueue<A>) => STM.STM<Array<A>> = internal.toArray
|
package/src/TPubSub.ts
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Effect from "./Effect.js"
|
|
5
|
+
import type * as HashSet from "./HashSet.js"
|
|
6
|
+
import * as internal from "./internal/stm/tPubSub.js"
|
|
7
|
+
import type * as tQueue from "./internal/stm/tQueue.js"
|
|
8
|
+
import type * as Scope from "./Scope.js"
|
|
9
|
+
import type * as STM from "./STM.js"
|
|
10
|
+
import type * as TQueue from "./TQueue.js"
|
|
11
|
+
import type * as TRef from "./TRef.js"
|
|
12
|
+
import type * as Types from "./Types.js"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @since 2.0.0
|
|
16
|
+
* @category symbols
|
|
17
|
+
*/
|
|
18
|
+
export const TPubSubTypeId: unique symbol = internal.TPubSubTypeId
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @since 2.0.0
|
|
22
|
+
* @category symbols
|
|
23
|
+
*/
|
|
24
|
+
export type TPubSubTypeId = typeof TPubSubTypeId
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @since 2.0.0
|
|
28
|
+
* @category models
|
|
29
|
+
*/
|
|
30
|
+
export interface TPubSub<in out A> extends TQueue.TEnqueue<A> {
|
|
31
|
+
readonly [TPubSubTypeId]: {
|
|
32
|
+
readonly _A: Types.Invariant<A>
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
* @since 2.0.0
|
|
38
|
+
*/
|
|
39
|
+
export interface TPubSub<in out A> {
|
|
40
|
+
/** @internal */
|
|
41
|
+
readonly pubsubSize: TRef.TRef<number>
|
|
42
|
+
/** @internal */
|
|
43
|
+
readonly publisherHead: TRef.TRef<TRef.TRef<internal.Node<A> | undefined>>
|
|
44
|
+
/** @internal */
|
|
45
|
+
readonly publisherTail: TRef.TRef<TRef.TRef<internal.Node<A> | undefined> | undefined>
|
|
46
|
+
/** @internal */
|
|
47
|
+
readonly requestedCapacity: number
|
|
48
|
+
/** @internal */
|
|
49
|
+
readonly strategy: tQueue.TQueueStrategy
|
|
50
|
+
/** @internal */
|
|
51
|
+
readonly subscriberCount: TRef.TRef<number>
|
|
52
|
+
/** @internal */
|
|
53
|
+
readonly subscribers: TRef.TRef<HashSet.HashSet<TRef.TRef<TRef.TRef<internal.Node<A>> | undefined>>>
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Waits until the `TPubSub` is shutdown. The `STM` returned by this method will
|
|
58
|
+
* not resume until the queue has been shutdown. If the `TPubSub` is already
|
|
59
|
+
* shutdown, the `STM` will resume right away.
|
|
60
|
+
*
|
|
61
|
+
* @since 2.0.0
|
|
62
|
+
* @category mutations
|
|
63
|
+
*/
|
|
64
|
+
export const awaitShutdown: <A>(self: TPubSub<A>) => STM.STM<void> = internal.awaitShutdown
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Creates a bounded `TPubSub` with the back pressure strategy. The `TPubSub` will retain
|
|
68
|
+
* messages until they have been taken by all subscribers, applying back
|
|
69
|
+
* pressure to publishers if the `TPubSub` is at capacity.
|
|
70
|
+
*
|
|
71
|
+
* @since 2.0.0
|
|
72
|
+
* @category constructors
|
|
73
|
+
*/
|
|
74
|
+
export const bounded: <A>(requestedCapacity: number) => STM.STM<TPubSub<A>> = internal.bounded
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Returns the number of elements the `TPubSub` can hold.
|
|
78
|
+
*
|
|
79
|
+
* @since 2.0.0
|
|
80
|
+
* @category getters
|
|
81
|
+
*/
|
|
82
|
+
export const capacity: <A>(self: TPubSub<A>) => number = internal.capacity
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Creates a bounded `TPubSub` with the dropping strategy. The `TPubSub` will drop new
|
|
86
|
+
* messages if the `TPubSub` is at capacity.
|
|
87
|
+
*
|
|
88
|
+
* @since 2.0.0
|
|
89
|
+
* @category constructors
|
|
90
|
+
*/
|
|
91
|
+
export const dropping: <A>(requestedCapacity: number) => STM.STM<TPubSub<A>> = internal.dropping
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Returns `true` if the `TPubSub` contains zero elements, `false` otherwise.
|
|
95
|
+
*
|
|
96
|
+
* @since 2.0.0
|
|
97
|
+
* @category getters
|
|
98
|
+
*/
|
|
99
|
+
export const isEmpty: <A>(self: TPubSub<A>) => STM.STM<boolean> = internal.isEmpty
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Returns `true` if the `TPubSub` contains at least one element, `false`
|
|
103
|
+
* otherwise.
|
|
104
|
+
*
|
|
105
|
+
* @since 2.0.0
|
|
106
|
+
* @category getters
|
|
107
|
+
*/
|
|
108
|
+
export const isFull: <A>(self: TPubSub<A>) => STM.STM<boolean> = internal.isFull
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Interrupts any fibers that are suspended on `offer` or `take`. Future calls
|
|
112
|
+
* to `offer*` and `take*` will be interrupted immediately.
|
|
113
|
+
*
|
|
114
|
+
* @since 2.0.0
|
|
115
|
+
* @category utils
|
|
116
|
+
*/
|
|
117
|
+
export const shutdown: <A>(self: TPubSub<A>) => STM.STM<void> = internal.shutdown
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Returns `true` if `shutdown` has been called, otherwise returns `false`.
|
|
121
|
+
*
|
|
122
|
+
* @since 2.0.0
|
|
123
|
+
* @category getters
|
|
124
|
+
*/
|
|
125
|
+
export const isShutdown: <A>(self: TPubSub<A>) => STM.STM<boolean> = internal.isShutdown
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Publishes a message to the `TPubSub`, returning whether the message was published
|
|
129
|
+
* to the `TPubSub`.
|
|
130
|
+
*
|
|
131
|
+
* @since 2.0.0
|
|
132
|
+
* @category mutations
|
|
133
|
+
*/
|
|
134
|
+
export const publish: {
|
|
135
|
+
<A>(value: A): (self: TPubSub<A>) => STM.STM<boolean>
|
|
136
|
+
<A>(self: TPubSub<A>, value: A): STM.STM<boolean>
|
|
137
|
+
} = internal.publish
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Publishes all of the specified messages to the `TPubSub`, returning whether they
|
|
141
|
+
* were published to the `TPubSub`.
|
|
142
|
+
*
|
|
143
|
+
* @since 2.0.0
|
|
144
|
+
* @category mutations
|
|
145
|
+
*/
|
|
146
|
+
export const publishAll: {
|
|
147
|
+
<A>(iterable: Iterable<A>): (self: TPubSub<A>) => STM.STM<boolean>
|
|
148
|
+
<A>(self: TPubSub<A>, iterable: Iterable<A>): STM.STM<boolean>
|
|
149
|
+
} = internal.publishAll
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Retrieves the size of the `TPubSub`, which is equal to the number of elements
|
|
153
|
+
* in the `TPubSub`. This may be negative if fibers are suspended waiting for
|
|
154
|
+
* elements to be added to the `TPubSub`.
|
|
155
|
+
*
|
|
156
|
+
* @since 2.0.0
|
|
157
|
+
* @category getters
|
|
158
|
+
*/
|
|
159
|
+
export const size: <A>(self: TPubSub<A>) => STM.STM<number> = internal.size
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Creates a bounded `TPubSub` with the sliding strategy. The `TPubSub` will add new
|
|
163
|
+
* messages and drop old messages if the `TPubSub` is at capacity.
|
|
164
|
+
*
|
|
165
|
+
* For best performance use capacities that are powers of two.
|
|
166
|
+
*
|
|
167
|
+
* @since 2.0.0
|
|
168
|
+
* @category constructors
|
|
169
|
+
*/
|
|
170
|
+
export const sliding: <A>(requestedCapacity: number) => STM.STM<TPubSub<A>> = internal.sliding
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Subscribes to receive messages from the `TPubSub`. The resulting subscription can
|
|
174
|
+
* be evaluated multiple times to take a message from the `TPubSub` each time. The
|
|
175
|
+
* caller is responsible for unsubscribing from the `TPubSub` by shutting down the
|
|
176
|
+
* queue.
|
|
177
|
+
*
|
|
178
|
+
* @since 2.0.0
|
|
179
|
+
* @category mutations
|
|
180
|
+
*/
|
|
181
|
+
export const subscribe: <A>(self: TPubSub<A>) => STM.STM<TQueue.TDequeue<A>> = internal.subscribe
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Subscribes to receive messages from the `TPubSub`. The resulting subscription can
|
|
185
|
+
* be evaluated multiple times within the scope to take a message from the `TPubSub`
|
|
186
|
+
* each time.
|
|
187
|
+
*
|
|
188
|
+
* @since 2.0.0
|
|
189
|
+
* @category mutations
|
|
190
|
+
*/
|
|
191
|
+
export const subscribeScoped: <A>(self: TPubSub<A>) => Effect.Effect<TQueue.TDequeue<A>, never, Scope.Scope> =
|
|
192
|
+
internal.subscribeScoped
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Creates an unbounded `TPubSub`.
|
|
196
|
+
*
|
|
197
|
+
* @since 2.0.0
|
|
198
|
+
* @category constructors
|
|
199
|
+
*/
|
|
200
|
+
export const unbounded: <A>() => STM.STM<TPubSub<A>> = internal.unbounded
|