effect 3.4.8 → 3.4.9
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/dist/cjs/Array.js +14 -37
- package/dist/cjs/Array.js.map +1 -1
- package/dist/cjs/BigDecimal.js +11 -34
- package/dist/cjs/BigDecimal.js.map +1 -1
- package/dist/cjs/BigInt.js +7 -30
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Boolean.js +6 -29
- package/dist/cjs/Boolean.js.map +1 -1
- package/dist/cjs/Brand.js +6 -29
- package/dist/cjs/Brand.js.map +1 -1
- package/dist/cjs/Cache.js +3 -26
- package/dist/cjs/Cache.js.map +1 -1
- package/dist/cjs/Cause.js +4 -27
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/Channel.js +6 -29
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/ChildExecutorDecision.js +3 -26
- package/dist/cjs/ChildExecutorDecision.js.map +1 -1
- package/dist/cjs/Chunk.js +12 -35
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Clock.js +4 -27
- package/dist/cjs/Clock.js.map +1 -1
- package/dist/cjs/Config.js +3 -26
- package/dist/cjs/Config.js.map +1 -1
- package/dist/cjs/ConfigError.js +3 -26
- package/dist/cjs/ConfigError.js.map +1 -1
- package/dist/cjs/ConfigProvider.js +3 -26
- package/dist/cjs/ConfigProvider.js.map +1 -1
- package/dist/cjs/ConfigProviderPathPatch.js +3 -26
- package/dist/cjs/ConfigProviderPathPatch.js.map +1 -1
- package/dist/cjs/Console.js +4 -27
- package/dist/cjs/Console.js.map +1 -1
- package/dist/cjs/Context.js +3 -26
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Cron.js +13 -36
- package/dist/cjs/Cron.js.map +1 -1
- package/dist/cjs/Data.js +6 -29
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/DefaultServices.js +3 -26
- package/dist/cjs/DefaultServices.js.map +1 -1
- package/dist/cjs/Deferred.js +4 -27
- package/dist/cjs/Deferred.js.map +1 -1
- package/dist/cjs/Differ.js +10 -33
- package/dist/cjs/Differ.js.map +1 -1
- package/dist/cjs/Duration.js +10 -33
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +16 -39
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Effectable.js +3 -26
- package/dist/cjs/Effectable.js.map +1 -1
- package/dist/cjs/Either.js +8 -31
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Encoding.js +7 -30
- package/dist/cjs/Encoding.js.map +1 -1
- package/dist/cjs/Equal.js +5 -28
- package/dist/cjs/Equal.js.map +1 -1
- package/dist/cjs/Equivalence.js +1 -1
- package/dist/cjs/Equivalence.js.map +1 -1
- package/dist/cjs/ExecutionStrategy.js +3 -26
- package/dist/cjs/ExecutionStrategy.js.map +1 -1
- package/dist/cjs/Exit.js +3 -26
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js +6 -29
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/FiberHandle.js +15 -38
- package/dist/cjs/FiberHandle.js.map +1 -1
- package/dist/cjs/FiberId.js +3 -26
- package/dist/cjs/FiberId.js.map +1 -1
- package/dist/cjs/FiberMap.js +17 -40
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberRef.js +6 -29
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/FiberRefs.js +3 -26
- package/dist/cjs/FiberRefs.js.map +1 -1
- package/dist/cjs/FiberRefsPatch.js +3 -26
- package/dist/cjs/FiberRefsPatch.js.map +1 -1
- package/dist/cjs/FiberSet.js +16 -39
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/FiberStatus.js +3 -26
- package/dist/cjs/FiberStatus.js.map +1 -1
- package/dist/cjs/GlobalValue.js +3 -26
- package/dist/cjs/GlobalValue.js.map +1 -1
- package/dist/cjs/GroupBy.js +3 -26
- package/dist/cjs/GroupBy.js.map +1 -1
- package/dist/cjs/Hash.js +4 -4
- package/dist/cjs/Hash.js.map +1 -1
- package/dist/cjs/HashMap.js +4 -27
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/HashSet.js +3 -26
- package/dist/cjs/HashSet.js.map +1 -1
- package/dist/cjs/Inspectable.js +1 -1
- package/dist/cjs/Inspectable.js.map +1 -1
- package/dist/cjs/Iterable.js +8 -31
- package/dist/cjs/Iterable.js.map +1 -1
- package/dist/cjs/KeyedPool.js +3 -26
- package/dist/cjs/KeyedPool.js.map +1 -1
- package/dist/cjs/Layer.js +11 -34
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/List.js +13 -36
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/LogLevel.js +6 -29
- package/dist/cjs/LogLevel.js.map +1 -1
- package/dist/cjs/LogSpan.js +3 -26
- package/dist/cjs/LogSpan.js.map +1 -1
- package/dist/cjs/Logger.js +6 -29
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/ManagedRuntime.js +3 -26
- package/dist/cjs/ManagedRuntime.js.map +1 -1
- package/dist/cjs/Match.js +4 -27
- package/dist/cjs/Match.js.map +1 -1
- package/dist/cjs/MergeDecision.js +3 -26
- package/dist/cjs/MergeDecision.js.map +1 -1
- package/dist/cjs/MergeState.js +3 -26
- package/dist/cjs/MergeState.js.map +1 -1
- package/dist/cjs/MergeStrategy.js +3 -26
- package/dist/cjs/MergeStrategy.js.map +1 -1
- package/dist/cjs/Metric.js +4 -27
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/MetricBoundaries.js +3 -26
- package/dist/cjs/MetricBoundaries.js.map +1 -1
- package/dist/cjs/MetricHook.js +3 -26
- package/dist/cjs/MetricHook.js.map +1 -1
- package/dist/cjs/MetricKey.js +3 -26
- package/dist/cjs/MetricKey.js.map +1 -1
- package/dist/cjs/MetricKeyType.js +3 -26
- package/dist/cjs/MetricKeyType.js.map +1 -1
- package/dist/cjs/MetricLabel.js +3 -26
- package/dist/cjs/MetricLabel.js.map +1 -1
- package/dist/cjs/MetricPair.js +3 -26
- package/dist/cjs/MetricPair.js.map +1 -1
- package/dist/cjs/MetricPolling.js +3 -26
- package/dist/cjs/MetricPolling.js.map +1 -1
- package/dist/cjs/MetricRegistry.js +3 -26
- package/dist/cjs/MetricRegistry.js.map +1 -1
- package/dist/cjs/MetricState.js +3 -26
- package/dist/cjs/MetricState.js.map +1 -1
- package/dist/cjs/Micro.js +15 -38
- package/dist/cjs/Micro.js.map +1 -1
- package/dist/cjs/ModuleVersion.js +3 -26
- package/dist/cjs/ModuleVersion.js.map +1 -1
- package/dist/cjs/MutableHashMap.js +8 -31
- package/dist/cjs/MutableHashMap.js.map +1 -1
- package/dist/cjs/MutableHashSet.js +6 -29
- package/dist/cjs/MutableHashSet.js.map +1 -1
- package/dist/cjs/MutableList.js +5 -28
- package/dist/cjs/MutableList.js.map +1 -1
- package/dist/cjs/MutableQueue.js +7 -30
- package/dist/cjs/MutableQueue.js.map +1 -1
- package/dist/cjs/MutableRef.js +6 -29
- package/dist/cjs/MutableRef.js.map +1 -1
- package/dist/cjs/Number.js +7 -30
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js +10 -33
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Order.js +1 -1
- package/dist/cjs/Order.js.map +1 -1
- package/dist/cjs/Ordering.js +1 -1
- package/dist/cjs/Ordering.js.map +1 -1
- package/dist/cjs/Pool.js +3 -26
- package/dist/cjs/Pool.js.map +1 -1
- package/dist/cjs/Predicate.js +1 -1
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/PubSub.js +3 -26
- package/dist/cjs/PubSub.js.map +1 -1
- package/dist/cjs/Queue.js +3 -26
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/Random.js +4 -27
- package/dist/cjs/Random.js.map +1 -1
- package/dist/cjs/RateLimiter.js +3 -26
- package/dist/cjs/RateLimiter.js.map +1 -1
- package/dist/cjs/Readable.js +6 -29
- package/dist/cjs/Readable.js.map +1 -1
- package/dist/cjs/Record.js +6 -29
- package/dist/cjs/Record.js.map +1 -1
- package/dist/cjs/RedBlackTree.js +4 -27
- package/dist/cjs/RedBlackTree.js.map +1 -1
- package/dist/cjs/Redacted.js +4 -27
- package/dist/cjs/Redacted.js.map +1 -1
- package/dist/cjs/Ref.js +3 -26
- package/dist/cjs/Ref.js.map +1 -1
- package/dist/cjs/Reloadable.js +3 -26
- package/dist/cjs/Reloadable.js.map +1 -1
- package/dist/cjs/Request.js +7 -30
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestBlock.js +3 -26
- package/dist/cjs/RequestBlock.js.map +1 -1
- package/dist/cjs/RequestResolver.js +6 -29
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Resource.js +3 -26
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/cjs/Runtime.js +3 -26
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/RuntimeFlags.js +4 -27
- package/dist/cjs/RuntimeFlags.js.map +1 -1
- package/dist/cjs/RuntimeFlagsPatch.js +4 -27
- package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
- package/dist/cjs/STM.js +6 -29
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js +3 -26
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/ScheduleDecision.js +3 -26
- package/dist/cjs/ScheduleDecision.js.map +1 -1
- package/dist/cjs/ScheduleInterval.js +3 -26
- package/dist/cjs/ScheduleInterval.js.map +1 -1
- package/dist/cjs/ScheduleIntervals.js +3 -26
- package/dist/cjs/ScheduleIntervals.js.map +1 -1
- package/dist/cjs/Scheduler.js +5 -28
- package/dist/cjs/Scheduler.js.map +1 -1
- package/dist/cjs/Scope.js +4 -27
- package/dist/cjs/Scope.js.map +1 -1
- package/dist/cjs/ScopedCache.js +3 -26
- package/dist/cjs/ScopedCache.js.map +1 -1
- package/dist/cjs/ScopedRef.js +3 -26
- package/dist/cjs/ScopedRef.js.map +1 -1
- package/dist/cjs/Secret.js +3 -26
- package/dist/cjs/Secret.js.map +1 -1
- package/dist/cjs/SingleProducerAsyncInput.js +3 -26
- package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/Sink.js +3 -26
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/SortedMap.js +10 -33
- package/dist/cjs/SortedMap.js.map +1 -1
- package/dist/cjs/SortedSet.js +9 -32
- package/dist/cjs/SortedSet.js.map +1 -1
- package/dist/cjs/Stream.js +1048 -30
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/StreamHaltStrategy.js +3 -26
- package/dist/cjs/StreamHaltStrategy.js.map +1 -1
- package/dist/cjs/Streamable.js +4 -27
- package/dist/cjs/Streamable.js.map +1 -1
- package/dist/cjs/String.js +9 -32
- package/dist/cjs/String.js.map +1 -1
- package/dist/cjs/Struct.js +6 -29
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/Subscribable.js +8 -31
- package/dist/cjs/Subscribable.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js +5 -28
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/Supervisor.js +5 -28
- package/dist/cjs/Supervisor.js.map +1 -1
- package/dist/cjs/Symbol.js +4 -27
- package/dist/cjs/Symbol.js.map +1 -1
- package/dist/cjs/SynchronizedRef.js +5 -28
- package/dist/cjs/SynchronizedRef.js.map +1 -1
- package/dist/cjs/TArray.js +3 -26
- package/dist/cjs/TArray.js.map +1 -1
- package/dist/cjs/TDeferred.js +3 -26
- package/dist/cjs/TDeferred.js.map +1 -1
- package/dist/cjs/TMap.js +3 -26
- package/dist/cjs/TMap.js.map +1 -1
- package/dist/cjs/TPriorityQueue.js +3 -26
- package/dist/cjs/TPriorityQueue.js.map +1 -1
- package/dist/cjs/TPubSub.js +3 -26
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TQueue.js +3 -26
- package/dist/cjs/TQueue.js.map +1 -1
- package/dist/cjs/TRandom.js +3 -26
- package/dist/cjs/TRandom.js.map +1 -1
- package/dist/cjs/TReentrantLock.js +3 -26
- package/dist/cjs/TReentrantLock.js.map +1 -1
- package/dist/cjs/TRef.js +3 -26
- package/dist/cjs/TRef.js.map +1 -1
- package/dist/cjs/TSemaphore.js +3 -26
- package/dist/cjs/TSemaphore.js.map +1 -1
- package/dist/cjs/TSet.js +3 -26
- package/dist/cjs/TSet.js.map +1 -1
- package/dist/cjs/Take.js +3 -26
- package/dist/cjs/Take.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +10 -33
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestAnnotationMap.js +5 -28
- package/dist/cjs/TestAnnotationMap.js.map +1 -1
- package/dist/cjs/TestAnnotations.js +15 -38
- package/dist/cjs/TestAnnotations.js.map +1 -1
- package/dist/cjs/TestClock.js +25 -48
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/TestConfig.js +3 -26
- package/dist/cjs/TestConfig.js.map +1 -1
- package/dist/cjs/TestContext.js +7 -30
- package/dist/cjs/TestContext.js.map +1 -1
- package/dist/cjs/TestLive.js +5 -28
- package/dist/cjs/TestLive.js.map +1 -1
- package/dist/cjs/TestServices.js +15 -38
- package/dist/cjs/TestServices.js.map +1 -1
- package/dist/cjs/TestSized.js +4 -27
- package/dist/cjs/TestSized.js.map +1 -1
- package/dist/cjs/Tracer.js +4 -27
- package/dist/cjs/Tracer.js.map +1 -1
- package/dist/cjs/Trie.js +3 -26
- package/dist/cjs/Trie.js.map +1 -1
- package/dist/cjs/Tuple.js +6 -29
- package/dist/cjs/Tuple.js.map +1 -1
- package/dist/cjs/Unify.js +1 -1
- package/dist/cjs/Unify.js.map +1 -1
- package/dist/cjs/UpstreamPullRequest.js +3 -26
- package/dist/cjs/UpstreamPullRequest.js.map +1 -1
- package/dist/cjs/UpstreamPullStrategy.js +3 -26
- package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
- package/dist/cjs/Utils.js +4 -4
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/index.js +160 -183
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/blockedRequests.js +9 -32
- package/dist/cjs/internal/blockedRequests.js.map +1 -1
- package/dist/cjs/internal/cache.js +20 -43
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/cause.js +16 -39
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js +21 -44
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/channelState.js +5 -28
- package/dist/cjs/internal/channel/channelState.js.map +1 -1
- package/dist/cjs/internal/channel/childExecutorDecision.js +5 -28
- package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -1
- package/dist/cjs/internal/channel/continuation.js +4 -27
- package/dist/cjs/internal/channel/continuation.js.map +1 -1
- package/dist/cjs/internal/channel/mergeDecision.js +5 -28
- package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
- package/dist/cjs/internal/channel/mergeState.js +5 -28
- package/dist/cjs/internal/channel/mergeState.js.map +1 -1
- package/dist/cjs/internal/channel/mergeStrategy.js +5 -28
- package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -1
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js +9 -32
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/internal/channel/subexecutor.js +5 -28
- package/dist/cjs/internal/channel/subexecutor.js.map +1 -1
- package/dist/cjs/internal/channel/upstreamPullRequest.js +5 -28
- package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -1
- package/dist/cjs/internal/channel/upstreamPullStrategy.js +5 -28
- package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -1
- package/dist/cjs/internal/channel.js +31 -54
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js +6 -29
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/completedRequestMap.js +2 -2
- package/dist/cjs/internal/completedRequestMap.js.map +1 -1
- package/dist/cjs/internal/concurrency.js +3 -26
- package/dist/cjs/internal/concurrency.js.map +1 -1
- package/dist/cjs/internal/config.js +17 -40
- package/dist/cjs/internal/config.js.map +1 -1
- package/dist/cjs/internal/configError.js +7 -30
- package/dist/cjs/internal/configError.js.map +1 -1
- package/dist/cjs/internal/configProvider/pathPatch.js +8 -31
- package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +17 -40
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/console.js +9 -32
- package/dist/cjs/internal/console.js.map +1 -1
- package/dist/cjs/internal/context.js +10 -33
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +29 -52
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core-stream.js +14 -37
- package/dist/cjs/internal/core-stream.js.map +1 -1
- package/dist/cjs/internal/core.js +32 -55
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js +5 -28
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/dataSource.js +10 -33
- package/dist/cjs/internal/dataSource.js.map +1 -1
- package/dist/cjs/internal/defaultServices/console.js +4 -27
- package/dist/cjs/internal/defaultServices/console.js.map +1 -1
- package/dist/cjs/internal/defaultServices.js +12 -35
- package/dist/cjs/internal/defaultServices.js.map +1 -1
- package/dist/cjs/internal/deferred.js +3 -26
- package/dist/cjs/internal/deferred.js.map +1 -1
- package/dist/cjs/internal/differ/chunkPatch.js +6 -29
- package/dist/cjs/internal/differ/chunkPatch.js.map +1 -1
- package/dist/cjs/internal/differ/contextPatch.js +7 -30
- package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
- package/dist/cjs/internal/differ/hashMapPatch.js +7 -30
- package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -1
- package/dist/cjs/internal/differ/hashSetPatch.js +6 -29
- package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -1
- package/dist/cjs/internal/differ/orPatch.js +7 -30
- package/dist/cjs/internal/differ/orPatch.js.map +1 -1
- package/dist/cjs/internal/differ/readonlyArrayPatch.js +6 -29
- package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -1
- package/dist/cjs/internal/differ.js +10 -33
- package/dist/cjs/internal/differ.js.map +1 -1
- package/dist/cjs/internal/doNotation.js +1 -1
- package/dist/cjs/internal/doNotation.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +24 -47
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +8 -31
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/either.js +9 -32
- package/dist/cjs/internal/either.js.map +1 -1
- package/dist/cjs/internal/encoding/base64.js +4 -27
- package/dist/cjs/internal/encoding/base64.js.map +1 -1
- package/dist/cjs/internal/encoding/base64Url.js +5 -28
- package/dist/cjs/internal/encoding/base64Url.js.map +1 -1
- package/dist/cjs/internal/encoding/common.js +1 -1
- package/dist/cjs/internal/encoding/common.js.map +1 -1
- package/dist/cjs/internal/encoding/hex.js +4 -27
- package/dist/cjs/internal/encoding/hex.js.map +1 -1
- package/dist/cjs/internal/executionStrategy.js +1 -1
- package/dist/cjs/internal/executionStrategy.js.map +1 -1
- package/dist/cjs/internal/fiber.js +17 -40
- package/dist/cjs/internal/fiber.js.map +1 -1
- package/dist/cjs/internal/fiberId.js +11 -34
- package/dist/cjs/internal/fiberId.js.map +1 -1
- package/dist/cjs/internal/fiberRefs/patch.js +6 -29
- package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
- package/dist/cjs/internal/fiberRefs.js +9 -32
- package/dist/cjs/internal/fiberRefs.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +55 -78
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/fiberScope.js +5 -28
- package/dist/cjs/internal/fiberScope.js.map +1 -1
- package/dist/cjs/internal/fiberStatus.js +6 -29
- package/dist/cjs/internal/fiberStatus.js.map +1 -1
- package/dist/cjs/internal/groupBy.js +18 -41
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/hashMap/bitwise.js +1 -1
- package/dist/cjs/internal/hashMap/bitwise.js.map +1 -1
- package/dist/cjs/internal/hashMap/keySet.js +1 -1
- package/dist/cjs/internal/hashMap/keySet.js.map +1 -1
- package/dist/cjs/internal/hashMap/node.js +9 -32
- package/dist/cjs/internal/hashMap/node.js.map +1 -1
- package/dist/cjs/internal/hashMap.js +12 -35
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/hashSet.js +9 -32
- package/dist/cjs/internal/hashSet.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js +14 -37
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer/circular.js +12 -35
- package/dist/cjs/internal/layer/circular.js.map +1 -1
- package/dist/cjs/internal/layer.js +25 -48
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logger-circular.js +9 -32
- package/dist/cjs/internal/logger-circular.js.map +1 -1
- package/dist/cjs/internal/logger.js +11 -34
- package/dist/cjs/internal/logger.js.map +1 -1
- package/dist/cjs/internal/managedRuntime.js +9 -32
- package/dist/cjs/internal/managedRuntime.js.map +1 -1
- package/dist/cjs/internal/matcher.js +6 -29
- package/dist/cjs/internal/matcher.js.map +1 -1
- package/dist/cjs/internal/metric/boundaries.js +9 -32
- package/dist/cjs/internal/metric/boundaries.js.map +1 -1
- package/dist/cjs/internal/metric/hook.js +9 -32
- package/dist/cjs/internal/metric/hook.js.map +1 -1
- package/dist/cjs/internal/metric/key.js +11 -34
- package/dist/cjs/internal/metric/key.js.map +1 -1
- package/dist/cjs/internal/metric/keyType.js +8 -31
- package/dist/cjs/internal/metric/keyType.js.map +1 -1
- package/dist/cjs/internal/metric/label.js +6 -29
- package/dist/cjs/internal/metric/label.js.map +1 -1
- package/dist/cjs/internal/metric/pair.js +1 -1
- package/dist/cjs/internal/metric/pair.js.map +1 -1
- package/dist/cjs/internal/metric/polling.js +8 -31
- package/dist/cjs/internal/metric/polling.js.map +1 -1
- package/dist/cjs/internal/metric/registry.js +8 -31
- package/dist/cjs/internal/metric/registry.js.map +1 -1
- package/dist/cjs/internal/metric/state.js +8 -31
- package/dist/cjs/internal/metric/state.js.map +1 -1
- package/dist/cjs/internal/metric.js +15 -38
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/option.js +7 -30
- package/dist/cjs/internal/option.js.map +1 -1
- package/dist/cjs/internal/pool.js +43 -42
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +13 -36
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/query.js +10 -33
- package/dist/cjs/internal/query.js.map +1 -1
- package/dist/cjs/internal/queue.js +12 -35
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/random.js +7 -30
- package/dist/cjs/internal/random.js.map +1 -1
- package/dist/cjs/internal/rateLimiter.js +6 -29
- package/dist/cjs/internal/rateLimiter.js.map +1 -1
- package/dist/cjs/internal/redBlackTree/iterator.js +4 -27
- package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
- package/dist/cjs/internal/redBlackTree.js +13 -36
- package/dist/cjs/internal/redBlackTree.js.map +1 -1
- package/dist/cjs/internal/redacted.js +8 -31
- package/dist/cjs/internal/redacted.js.map +1 -1
- package/dist/cjs/internal/ref.js +8 -31
- package/dist/cjs/internal/ref.js.map +1 -1
- package/dist/cjs/internal/reloadable.js +10 -33
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/request.js +7 -30
- package/dist/cjs/internal/request.js.map +1 -1
- package/dist/cjs/internal/resource.js +7 -30
- package/dist/cjs/internal/resource.js.map +1 -1
- package/dist/cjs/internal/ringBuffer.js +5 -28
- package/dist/cjs/internal/ringBuffer.js.map +1 -1
- package/dist/cjs/internal/runtime.js +23 -46
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/runtimeFlags.js +5 -28
- package/dist/cjs/internal/runtimeFlags.js.map +1 -1
- package/dist/cjs/internal/runtimeFlagsPatch.js +1 -1
- package/dist/cjs/internal/runtimeFlagsPatch.js.map +1 -1
- package/dist/cjs/internal/schedule/decision.js +4 -27
- package/dist/cjs/internal/schedule/decision.js.map +1 -1
- package/dist/cjs/internal/schedule/interval.js +5 -28
- package/dist/cjs/internal/schedule/interval.js.map +1 -1
- package/dist/cjs/internal/schedule/intervals.js +7 -30
- package/dist/cjs/internal/schedule/intervals.js.map +1 -1
- package/dist/cjs/internal/schedule.js +21 -44
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/scopedCache.js +19 -42
- package/dist/cjs/internal/scopedCache.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js +10 -33
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/secret.js +5 -28
- package/dist/cjs/internal/secret.js.map +1 -1
- package/dist/cjs/internal/singleShotGen.js.map +1 -1
- package/dist/cjs/internal/sink.js +22 -45
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js +30 -53
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/stm/entry.js +3 -26
- package/dist/cjs/internal/stm/stm/entry.js.map +1 -1
- package/dist/cjs/internal/stm/stm/journal.js +3 -26
- package/dist/cjs/internal/stm/stm/journal.js.map +1 -1
- package/dist/cjs/internal/stm/stm/stmState.js +9 -32
- package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tExit.js +7 -30
- package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tryCommit.js +3 -26
- package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
- package/dist/cjs/internal/stm/stm/versioned.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js +17 -40
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stm/tArray.js +9 -32
- package/dist/cjs/internal/stm/tArray.js.map +1 -1
- package/dist/cjs/internal/stm/tDeferred.js +8 -31
- package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
- package/dist/cjs/internal/stm/tMap.js +15 -38
- package/dist/cjs/internal/stm/tMap.js.map +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js +9 -32
- package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js +12 -35
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js +12 -35
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tRandom.js +10 -33
- package/dist/cjs/internal/stm/tRandom.js.map +1 -1
- package/dist/cjs/internal/stm/tReentrantLock.js +10 -33
- package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/cjs/internal/stm/tRef.js +7 -30
- package/dist/cjs/internal/stm/tRef.js.map +1 -1
- package/dist/cjs/internal/stm/tSemaphore.js +8 -31
- package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
- package/dist/cjs/internal/stm/tSet.js +10 -33
- package/dist/cjs/internal/stm/tSet.js.map +1 -1
- package/dist/cjs/internal/stream/emit.js +8 -31
- package/dist/cjs/internal/stream/emit.js.map +1 -1
- package/dist/cjs/internal/stream/haltStrategy.js +4 -27
- package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
- package/dist/cjs/internal/stream/handoff.js +7 -30
- package/dist/cjs/internal/stream/handoff.js.map +1 -1
- package/dist/cjs/internal/stream/pull.js +7 -30
- package/dist/cjs/internal/stream/pull.js.map +1 -1
- package/dist/cjs/internal/stream.js +46 -69
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js +13 -36
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/supervisor/patch.js +8 -31
- package/dist/cjs/internal/supervisor/patch.js.map +1 -1
- package/dist/cjs/internal/supervisor.js +8 -31
- package/dist/cjs/internal/supervisor.js.map +1 -1
- package/dist/cjs/internal/synchronizedRef.js +5 -28
- package/dist/cjs/internal/synchronizedRef.js.map +1 -1
- package/dist/cjs/internal/take.js +9 -32
- package/dist/cjs/internal/take.js.map +1 -1
- package/dist/cjs/internal/tracer.js +3 -26
- package/dist/cjs/internal/tracer.js.map +1 -1
- package/dist/cjs/internal/trie.js +9 -32
- package/dist/cjs/internal/trie.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Stream.d.ts +1075 -3
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/esm/Stream.js +1075 -3
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/internal/pool.js +29 -5
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Stream.ts +1075 -3
- package/src/internal/pool.ts +36 -5
- package/src/internal/version.ts +1 -1
package/dist/dts/Stream.d.ts
CHANGED
|
@@ -169,6 +169,29 @@ export declare const accumulateChunks: <A, E, R>(self: Stream<A, E, R>) => Strea
|
|
|
169
169
|
* Creates a stream from a single value that will get cleaned up after the
|
|
170
170
|
* stream is consumed.
|
|
171
171
|
*
|
|
172
|
+
* @example
|
|
173
|
+
* import { Console, Effect, Stream } from "effect"
|
|
174
|
+
*
|
|
175
|
+
* // Simulating File operations
|
|
176
|
+
* const open = (filename: string) =>
|
|
177
|
+
* Effect.gen(function*() {
|
|
178
|
+
* yield* Console.log(`Opening ${filename}`)
|
|
179
|
+
* return {
|
|
180
|
+
* getLines: Effect.succeed(["Line 1", "Line 2", "Line 3"]),
|
|
181
|
+
* close: Console.log(`Closing ${filename}`)
|
|
182
|
+
* }
|
|
183
|
+
* })
|
|
184
|
+
*
|
|
185
|
+
* const stream = Stream.acquireRelease(
|
|
186
|
+
* open("file.txt"),
|
|
187
|
+
* (file) => file.close
|
|
188
|
+
* ).pipe(Stream.flatMap((file) => file.getLines))
|
|
189
|
+
*
|
|
190
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
191
|
+
* // Opening file.txt
|
|
192
|
+
* // Closing file.txt
|
|
193
|
+
* // { _id: 'Chunk', values: [ [ 'Line 1', 'Line 2', 'Line 3' ] ] }
|
|
194
|
+
*
|
|
172
195
|
* @since 2.0.0
|
|
173
196
|
* @category constructors
|
|
174
197
|
*/
|
|
@@ -229,6 +252,14 @@ export declare const aggregateWithinEither: {
|
|
|
229
252
|
/**
|
|
230
253
|
* Maps the success values of this stream to the specified constant value.
|
|
231
254
|
*
|
|
255
|
+
* @example
|
|
256
|
+
* import { Effect, Stream } from "effect"
|
|
257
|
+
*
|
|
258
|
+
* const stream = Stream.range(1, 5).pipe(Stream.as(null))
|
|
259
|
+
*
|
|
260
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
261
|
+
* // { _id: 'Chunk', values: [ null, null, null, null, null ] }
|
|
262
|
+
*
|
|
232
263
|
* @since 2.0.0
|
|
233
264
|
* @category mapping
|
|
234
265
|
*/
|
|
@@ -246,6 +277,29 @@ export {
|
|
|
246
277
|
* The registration function can optionally return an `Effect`, which will be
|
|
247
278
|
* executed if the `Fiber` executing this Effect is interrupted.
|
|
248
279
|
*
|
|
280
|
+
* @example
|
|
281
|
+
* import type { StreamEmit } from "effect"
|
|
282
|
+
* import { Chunk, Effect, Option, Stream } from "effect"
|
|
283
|
+
*
|
|
284
|
+
* const events = [1, 2, 3, 4]
|
|
285
|
+
*
|
|
286
|
+
* const stream = Stream.async(
|
|
287
|
+
* (emit: StreamEmit.Emit<never, never, number, void>) => {
|
|
288
|
+
* events.forEach((n) => {
|
|
289
|
+
* setTimeout(() => {
|
|
290
|
+
* if (n === 3) {
|
|
291
|
+
* emit(Effect.fail(Option.none())) // Terminate the stream
|
|
292
|
+
* } else {
|
|
293
|
+
* emit(Effect.succeed(Chunk.of(n))) // Add the current item to the stream
|
|
294
|
+
* }
|
|
295
|
+
* }, 100 * n)
|
|
296
|
+
* })
|
|
297
|
+
* }
|
|
298
|
+
* )
|
|
299
|
+
*
|
|
300
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
301
|
+
* // { _id: 'Chunk', values: [ 1, 2 ] }
|
|
302
|
+
*
|
|
249
303
|
* @since 2.0.0
|
|
250
304
|
* @category constructors
|
|
251
305
|
*/
|
|
@@ -287,6 +341,77 @@ export declare const branchAfter: {
|
|
|
287
341
|
* as this stream. The driver stream will only ever advance the `maximumLag`
|
|
288
342
|
* chunks before the slowest downstream stream.
|
|
289
343
|
*
|
|
344
|
+
* @example
|
|
345
|
+
* import { Console, Effect, Fiber, Schedule, Stream } from "effect"
|
|
346
|
+
*
|
|
347
|
+
* const numbers = Effect.scoped(
|
|
348
|
+
* Stream.range(1, 20).pipe(
|
|
349
|
+
* Stream.tap((n) => Console.log(`Emit ${n} element before broadcasting`)),
|
|
350
|
+
* Stream.broadcast(2, 5),
|
|
351
|
+
* Stream.flatMap(([first, second]) =>
|
|
352
|
+
* Effect.gen(function*() {
|
|
353
|
+
* const fiber1 = yield* Stream.runFold(first, 0, (acc, e) => Math.max(acc, e)).pipe(
|
|
354
|
+
* Effect.andThen((max) => Console.log(`Maximum: ${max}`)),
|
|
355
|
+
* Effect.fork
|
|
356
|
+
* )
|
|
357
|
+
* const fiber2 = yield* second.pipe(
|
|
358
|
+
* Stream.schedule(Schedule.spaced("1 second")),
|
|
359
|
+
* Stream.runForEach((n) => Console.log(`Logging to the Console: ${n}`)),
|
|
360
|
+
* Effect.fork
|
|
361
|
+
* )
|
|
362
|
+
* yield* Fiber.join(fiber1).pipe(
|
|
363
|
+
* Effect.zip(Fiber.join(fiber2), { concurrent: true })
|
|
364
|
+
* )
|
|
365
|
+
* })
|
|
366
|
+
* ),
|
|
367
|
+
* Stream.runCollect
|
|
368
|
+
* )
|
|
369
|
+
* )
|
|
370
|
+
*
|
|
371
|
+
* // Effect.runPromise(numbers).then(console.log)
|
|
372
|
+
* // Emit 1 element before broadcasting
|
|
373
|
+
* // Emit 2 element before broadcasting
|
|
374
|
+
* // Emit 3 element before broadcasting
|
|
375
|
+
* // Emit 4 element before broadcasting
|
|
376
|
+
* // Emit 5 element before broadcasting
|
|
377
|
+
* // Emit 6 element before broadcasting
|
|
378
|
+
* // Emit 7 element before broadcasting
|
|
379
|
+
* // Emit 8 element before broadcasting
|
|
380
|
+
* // Emit 9 element before broadcasting
|
|
381
|
+
* // Emit 10 element before broadcasting
|
|
382
|
+
* // Emit 11 element before broadcasting
|
|
383
|
+
* // Logging to the Console: 1
|
|
384
|
+
* // Logging to the Console: 2
|
|
385
|
+
* // Logging to the Console: 3
|
|
386
|
+
* // Logging to the Console: 4
|
|
387
|
+
* // Logging to the Console: 5
|
|
388
|
+
* // Emit 12 element before broadcasting
|
|
389
|
+
* // Emit 13 element before broadcasting
|
|
390
|
+
* // Emit 14 element before broadcasting
|
|
391
|
+
* // Emit 15 element before broadcasting
|
|
392
|
+
* // Emit 16 element before broadcasting
|
|
393
|
+
* // Logging to the Console: 6
|
|
394
|
+
* // Logging to the Console: 7
|
|
395
|
+
* // Logging to the Console: 8
|
|
396
|
+
* // Logging to the Console: 9
|
|
397
|
+
* // Logging to the Console: 10
|
|
398
|
+
* // Emit 17 element before broadcasting
|
|
399
|
+
* // Emit 18 element before broadcasting
|
|
400
|
+
* // Emit 19 element before broadcasting
|
|
401
|
+
* // Emit 20 element before broadcasting
|
|
402
|
+
* // Logging to the Console: 11
|
|
403
|
+
* // Logging to the Console: 12
|
|
404
|
+
* // Logging to the Console: 13
|
|
405
|
+
* // Logging to the Console: 14
|
|
406
|
+
* // Logging to the Console: 15
|
|
407
|
+
* // Maximum: 20
|
|
408
|
+
* // Logging to the Console: 16
|
|
409
|
+
* // Logging to the Console: 17
|
|
410
|
+
* // Logging to the Console: 18
|
|
411
|
+
* // Logging to the Console: 19
|
|
412
|
+
* // Logging to the Console: 20
|
|
413
|
+
* // { _id: 'Chunk', values: [ undefined ] }
|
|
414
|
+
*
|
|
290
415
|
* @since 2.0.0
|
|
291
416
|
* @category utils
|
|
292
417
|
*/
|
|
@@ -338,9 +463,38 @@ export declare const broadcastedQueuesDynamic: {
|
|
|
338
463
|
* Allows a faster producer to progress independently of a slower consumer by
|
|
339
464
|
* buffering up to `capacity` elements in a queue.
|
|
340
465
|
*
|
|
341
|
-
*
|
|
466
|
+
* Note: This combinator destroys the chunking structure. It's recommended to
|
|
342
467
|
* use rechunk afterwards. Additionally, prefer capacities that are powers
|
|
343
468
|
* of 2 for better performance.
|
|
469
|
+
*
|
|
470
|
+
* @example
|
|
471
|
+
* import { Console, Effect, Schedule, Stream } from "effect"
|
|
472
|
+
*
|
|
473
|
+
* const stream = Stream.range(1, 10).pipe(
|
|
474
|
+
* Stream.tap((n) => Console.log(`before buffering: ${n}`)),
|
|
475
|
+
* Stream.buffer({ capacity: 4 }),
|
|
476
|
+
* Stream.tap((n) => Console.log(`after buffering: ${n}`)),
|
|
477
|
+
* Stream.schedule(Schedule.spaced("5 seconds"))
|
|
478
|
+
* )
|
|
479
|
+
*
|
|
480
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
481
|
+
* // before buffering: 1
|
|
482
|
+
* // before buffering: 2
|
|
483
|
+
* // before buffering: 3
|
|
484
|
+
* // before buffering: 4
|
|
485
|
+
* // before buffering: 5
|
|
486
|
+
* // before buffering: 6
|
|
487
|
+
* // after buffering: 1
|
|
488
|
+
* // after buffering: 2
|
|
489
|
+
* // before buffering: 7
|
|
490
|
+
* // after buffering: 3
|
|
491
|
+
* // before buffering: 8
|
|
492
|
+
* // after buffering: 4
|
|
493
|
+
* // before buffering: 9
|
|
494
|
+
* // after buffering: 5
|
|
495
|
+
* // before buffering: 10
|
|
496
|
+
* // ...
|
|
497
|
+
*
|
|
344
498
|
* @since 2.0.0
|
|
345
499
|
* @category utils
|
|
346
500
|
*/
|
|
@@ -489,6 +643,14 @@ export declare const catchSomeCause: {
|
|
|
489
643
|
* previous element emitted, using natural equality to determine whether two
|
|
490
644
|
* elements are equal.
|
|
491
645
|
*
|
|
646
|
+
* @example
|
|
647
|
+
* import { Effect, Stream } from "effect"
|
|
648
|
+
*
|
|
649
|
+
* const stream = Stream.make(1, 1, 1, 2, 2, 3, 4).pipe(Stream.changes)
|
|
650
|
+
*
|
|
651
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
652
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3, 4 ] }
|
|
653
|
+
*
|
|
492
654
|
* @since 2.0.0
|
|
493
655
|
* @category utils
|
|
494
656
|
*/
|
|
@@ -572,6 +734,17 @@ export declare const combineChunks: {
|
|
|
572
734
|
* that emits the elements from this stream and then the elements from the
|
|
573
735
|
* specified stream.
|
|
574
736
|
*
|
|
737
|
+
* @example
|
|
738
|
+
* import { Effect, Stream } from "effect"
|
|
739
|
+
*
|
|
740
|
+
* const s1 = Stream.make(1, 2, 3)
|
|
741
|
+
* const s2 = Stream.make(4, 5)
|
|
742
|
+
*
|
|
743
|
+
* const stream = Stream.concat(s1, s2)
|
|
744
|
+
*
|
|
745
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
746
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
|
|
747
|
+
*
|
|
575
748
|
* @since 2.0.0
|
|
576
749
|
* @category utils
|
|
577
750
|
*/
|
|
@@ -582,6 +755,24 @@ export declare const concat: {
|
|
|
582
755
|
/**
|
|
583
756
|
* Concatenates all of the streams in the chunk to one stream.
|
|
584
757
|
*
|
|
758
|
+
* @example
|
|
759
|
+
* import { Chunk, Effect, Stream } from "effect"
|
|
760
|
+
*
|
|
761
|
+
* const s1 = Stream.make(1, 2, 3)
|
|
762
|
+
* const s2 = Stream.make(4, 5)
|
|
763
|
+
* const s3 = Stream.make(6, 7, 8)
|
|
764
|
+
*
|
|
765
|
+
* const stream = Stream.concatAll(Chunk.make(s1, s2, s3))
|
|
766
|
+
*
|
|
767
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
768
|
+
* // {
|
|
769
|
+
* // _id: 'Chunk',
|
|
770
|
+
* // values: [
|
|
771
|
+
* // 1, 2, 3, 4,
|
|
772
|
+
* // 5, 6, 7, 8
|
|
773
|
+
* // ]
|
|
774
|
+
* // }
|
|
775
|
+
*
|
|
585
776
|
* @since 2.0.0
|
|
586
777
|
* @category constructors
|
|
587
778
|
*/
|
|
@@ -593,6 +784,22 @@ export declare const concatAll: <A, E, R>(streams: Chunk.Chunk<Stream<A, E, R>>)
|
|
|
593
784
|
*
|
|
594
785
|
* See also `Stream.zip` for the more common point-wise variant.
|
|
595
786
|
*
|
|
787
|
+
* @example
|
|
788
|
+
* import { Effect, Stream } from "effect"
|
|
789
|
+
*
|
|
790
|
+
* const s1 = Stream.make(1, 2, 3)
|
|
791
|
+
* const s2 = Stream.make("a", "b")
|
|
792
|
+
*
|
|
793
|
+
* const product = Stream.cross(s1, s2)
|
|
794
|
+
*
|
|
795
|
+
* // Effect.runPromise(Stream.runCollect(product)).then(console.log)
|
|
796
|
+
* // {
|
|
797
|
+
* // _id: "Chunk",
|
|
798
|
+
* // values: [
|
|
799
|
+
* // [ 1, "a" ], [ 1, "b" ], [ 2, "a" ], [ 2, "b" ], [ 3, "a" ], [ 3, "b" ]
|
|
800
|
+
* // ]
|
|
801
|
+
* // }
|
|
802
|
+
*
|
|
596
803
|
* @since 2.0.0
|
|
597
804
|
* @category utils
|
|
598
805
|
*/
|
|
@@ -654,6 +861,45 @@ export declare const crossWith: {
|
|
|
654
861
|
* example, a search engine may only want to initiate a search after a user
|
|
655
862
|
* has paused typing so as to not prematurely recommend results.
|
|
656
863
|
*
|
|
864
|
+
* @example
|
|
865
|
+
* import { Effect, Stream } from "effect"
|
|
866
|
+
*
|
|
867
|
+
* let last = Date.now()
|
|
868
|
+
* const log = (message: string) =>
|
|
869
|
+
* Effect.sync(() => {
|
|
870
|
+
* const end = Date.now()
|
|
871
|
+
* console.log(`${message} after ${end - last}ms`)
|
|
872
|
+
* last = end
|
|
873
|
+
* })
|
|
874
|
+
*
|
|
875
|
+
* const stream = Stream.make(1, 2, 3).pipe(
|
|
876
|
+
* Stream.concat(
|
|
877
|
+
* Stream.fromEffect(Effect.sleep("200 millis").pipe(Effect.as(4))) // Emit 4 after 200 ms
|
|
878
|
+
* ),
|
|
879
|
+
* Stream.concat(Stream.make(5, 6)), // Continue with more rapid values
|
|
880
|
+
* Stream.concat(
|
|
881
|
+
* Stream.fromEffect(Effect.sleep("150 millis").pipe(Effect.as(7))) // Emit 7 after 150 ms
|
|
882
|
+
* ),
|
|
883
|
+
* Stream.concat(Stream.make(8)),
|
|
884
|
+
* Stream.tap((n) => log(`Received ${n}`)),
|
|
885
|
+
* Stream.debounce("100 millis"), // Only emit values after a pause of at least 100 milliseconds,
|
|
886
|
+
* Stream.tap((n) => log(`> Emitted ${n}`))
|
|
887
|
+
* )
|
|
888
|
+
*
|
|
889
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
890
|
+
* // Received 1 after 5ms
|
|
891
|
+
* // Received 2 after 2ms
|
|
892
|
+
* // Received 3 after 0ms
|
|
893
|
+
* // > Emitted 3 after 104ms
|
|
894
|
+
* // Received 4 after 99ms
|
|
895
|
+
* // Received 5 after 1ms
|
|
896
|
+
* // Received 6 after 0ms
|
|
897
|
+
* // > Emitted 6 after 101ms
|
|
898
|
+
* // Received 7 after 50ms
|
|
899
|
+
* // Received 8 after 1ms
|
|
900
|
+
* // > Emitted 8 after 101ms
|
|
901
|
+
* // { _id: 'Chunk', values: [ 3, 6, 8 ] }
|
|
902
|
+
*
|
|
657
903
|
* @since 2.0.0
|
|
658
904
|
* @category utils
|
|
659
905
|
*/
|
|
@@ -727,6 +973,15 @@ export declare const distributedWithDynamic: {
|
|
|
727
973
|
* Converts this stream to a stream that executes its effects but emits no
|
|
728
974
|
* elements. Useful for sequencing effects using streams:
|
|
729
975
|
*
|
|
976
|
+
* @example
|
|
977
|
+
* import { Effect, Stream } from "effect"
|
|
978
|
+
*
|
|
979
|
+
* // We create a stream and immediately drain it.
|
|
980
|
+
* const stream = Stream.range(1, 6).pipe(Stream.drain)
|
|
981
|
+
*
|
|
982
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
983
|
+
* // { _id: 'Chunk', values: [] }
|
|
984
|
+
*
|
|
730
985
|
* @since 2.0.0
|
|
731
986
|
* @category utils
|
|
732
987
|
*/
|
|
@@ -823,6 +1078,14 @@ export declare const either: <A, E, R>(self: Stream<A, E, R>) => Stream<Either.E
|
|
|
823
1078
|
/**
|
|
824
1079
|
* The empty stream.
|
|
825
1080
|
*
|
|
1081
|
+
* @example
|
|
1082
|
+
* import { Effect, Stream } from "effect"
|
|
1083
|
+
*
|
|
1084
|
+
* const stream = Stream.empty
|
|
1085
|
+
*
|
|
1086
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1087
|
+
* // { _id: 'Chunk', values: [] }
|
|
1088
|
+
*
|
|
826
1089
|
* @since 2.0.0
|
|
827
1090
|
* @category constructors
|
|
828
1091
|
*/
|
|
@@ -830,6 +1093,22 @@ export declare const empty: Stream<never>;
|
|
|
830
1093
|
/**
|
|
831
1094
|
* Executes the provided finalizer after this stream's finalizers run.
|
|
832
1095
|
*
|
|
1096
|
+
* @example
|
|
1097
|
+
* import { Console, Effect, Stream } from "effect"
|
|
1098
|
+
*
|
|
1099
|
+
* const program = Stream.fromEffect(Console.log("Application Logic.")).pipe(
|
|
1100
|
+
* Stream.concat(Stream.finalizer(Console.log("Finalizing the stream"))),
|
|
1101
|
+
* Stream.ensuring(
|
|
1102
|
+
* Console.log("Doing some other works after stream's finalization")
|
|
1103
|
+
* )
|
|
1104
|
+
* )
|
|
1105
|
+
*
|
|
1106
|
+
* // Effect.runPromise(Stream.runCollect(program)).then(console.log)
|
|
1107
|
+
* // Application Logic.
|
|
1108
|
+
* // Finalizing the stream
|
|
1109
|
+
* // Doing some other works after stream's finalization
|
|
1110
|
+
* // { _id: 'Chunk', values: [ undefined, undefined ] }
|
|
1111
|
+
*
|
|
833
1112
|
* @since 2.0.0
|
|
834
1113
|
* @category utils
|
|
835
1114
|
*/
|
|
@@ -885,6 +1164,18 @@ export declare const execute: <X, E, R>(effect: Effect.Effect<X, E, R>) => Strea
|
|
|
885
1164
|
/**
|
|
886
1165
|
* Terminates with the specified error.
|
|
887
1166
|
*
|
|
1167
|
+
* @example
|
|
1168
|
+
* import { Effect, Stream } from "effect"
|
|
1169
|
+
*
|
|
1170
|
+
* const stream = Stream.fail("Uh oh!")
|
|
1171
|
+
*
|
|
1172
|
+
* Effect.runPromiseExit(Stream.runCollect(stream)).then(console.log)
|
|
1173
|
+
* // {
|
|
1174
|
+
* // _id: 'Exit',
|
|
1175
|
+
* // _tag: 'Failure',
|
|
1176
|
+
* // cause: { _id: 'Cause', _tag: 'Fail', failure: 'Uh oh!' }
|
|
1177
|
+
* // }
|
|
1178
|
+
*
|
|
888
1179
|
* @since 2.0.0
|
|
889
1180
|
* @category constructors
|
|
890
1181
|
*/
|
|
@@ -913,6 +1204,14 @@ export declare const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => St
|
|
|
913
1204
|
/**
|
|
914
1205
|
* Filters the elements emitted by this stream using the provided function.
|
|
915
1206
|
*
|
|
1207
|
+
* @example
|
|
1208
|
+
* import { Effect, Stream } from "effect"
|
|
1209
|
+
*
|
|
1210
|
+
* const stream = Stream.range(1, 11).pipe(Stream.filter((n) => n % 2 === 0))
|
|
1211
|
+
*
|
|
1212
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1213
|
+
* // { _id: 'Chunk', values: [ 2, 4, 6, 8, 10 ] }
|
|
1214
|
+
*
|
|
916
1215
|
* @since 2.0.0
|
|
917
1216
|
* @category filtering
|
|
918
1217
|
*/
|
|
@@ -978,6 +1277,29 @@ export declare const filterMapWhileEffect: {
|
|
|
978
1277
|
* Creates a one-element stream that never fails and executes the finalizer
|
|
979
1278
|
* when it ends.
|
|
980
1279
|
*
|
|
1280
|
+
* @example
|
|
1281
|
+
* import { Console, Effect, Stream } from "effect"
|
|
1282
|
+
*
|
|
1283
|
+
* const application = Stream.fromEffect(Console.log("Application Logic."))
|
|
1284
|
+
*
|
|
1285
|
+
* const deleteDir = (dir: string) => Console.log(`Deleting dir: ${dir}`)
|
|
1286
|
+
*
|
|
1287
|
+
* const program = application.pipe(
|
|
1288
|
+
* Stream.concat(
|
|
1289
|
+
* Stream.finalizer(
|
|
1290
|
+
* deleteDir("tmp").pipe(
|
|
1291
|
+
* Effect.andThen(Console.log("Temporary directory was deleted."))
|
|
1292
|
+
* )
|
|
1293
|
+
* )
|
|
1294
|
+
* )
|
|
1295
|
+
* )
|
|
1296
|
+
*
|
|
1297
|
+
* // Effect.runPromise(Stream.runCollect(program)).then(console.log)
|
|
1298
|
+
* // Application Logic.
|
|
1299
|
+
* // Deleting dir: tmp
|
|
1300
|
+
* // Temporary directory was deleted.
|
|
1301
|
+
* // { _id: 'Chunk', values: [ undefined, undefined ] }
|
|
1302
|
+
*
|
|
981
1303
|
* @since 2.0.0
|
|
982
1304
|
* @category constructors
|
|
983
1305
|
*/
|
|
@@ -1106,6 +1428,22 @@ export declare const forever: <A, E, R>(self: Stream<A, E, R>) => Stream<A, E, R
|
|
|
1106
1428
|
/**
|
|
1107
1429
|
* Creates a stream from an `AsyncIterable`.
|
|
1108
1430
|
*
|
|
1431
|
+
* @example
|
|
1432
|
+
* import { Effect, Stream } from "effect"
|
|
1433
|
+
*
|
|
1434
|
+
* const myAsyncIterable = async function*() {
|
|
1435
|
+
* yield 1
|
|
1436
|
+
* yield 2
|
|
1437
|
+
* }
|
|
1438
|
+
*
|
|
1439
|
+
* const stream = Stream.fromAsyncIterable(
|
|
1440
|
+
* myAsyncIterable(),
|
|
1441
|
+
* (e) => new Error(String(e)) // Error Handling
|
|
1442
|
+
* )
|
|
1443
|
+
*
|
|
1444
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1445
|
+
* // { _id: 'Chunk', values: [ 1, 2 ] }
|
|
1446
|
+
*
|
|
1109
1447
|
* @since 2.0.0
|
|
1110
1448
|
* @category constructors
|
|
1111
1449
|
*/
|
|
@@ -1127,6 +1465,15 @@ export declare const toChannel: <A, E, R>(stream: Stream<A, E, R>) => Channel.Ch
|
|
|
1127
1465
|
/**
|
|
1128
1466
|
* Creates a stream from a `Chunk` of values.
|
|
1129
1467
|
*
|
|
1468
|
+
* @example
|
|
1469
|
+
* import { Chunk, Effect, Stream } from "effect"
|
|
1470
|
+
*
|
|
1471
|
+
* // Creating a stream with values from a single Chunk
|
|
1472
|
+
* const stream = Stream.fromChunk(Chunk.make(1, 2, 3))
|
|
1473
|
+
*
|
|
1474
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1475
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3 ] }
|
|
1476
|
+
*
|
|
1130
1477
|
* @since 2.0.0
|
|
1131
1478
|
* @category constructors
|
|
1132
1479
|
*/
|
|
@@ -1161,6 +1508,15 @@ export declare const fromChunkQueue: <A>(queue: Queue.Dequeue<Chunk.Chunk<A>>, o
|
|
|
1161
1508
|
/**
|
|
1162
1509
|
* Creates a stream from an arbitrary number of chunks.
|
|
1163
1510
|
*
|
|
1511
|
+
* @example
|
|
1512
|
+
* import { Chunk, Effect, Stream } from "effect"
|
|
1513
|
+
*
|
|
1514
|
+
* // Creating a stream with values from multiple Chunks
|
|
1515
|
+
* const stream = Stream.fromChunks(Chunk.make(1, 2, 3), Chunk.make(4, 5, 6))
|
|
1516
|
+
*
|
|
1517
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1518
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5, 6 ] }
|
|
1519
|
+
*
|
|
1164
1520
|
* @since 2.0.0
|
|
1165
1521
|
* @category constructors
|
|
1166
1522
|
*/
|
|
@@ -1169,6 +1525,14 @@ export declare const fromChunks: <A>(...chunks: Array<Chunk.Chunk<A>>) => Stream
|
|
|
1169
1525
|
* Either emits the success value of this effect or terminates the stream
|
|
1170
1526
|
* with the failure value of this effect.
|
|
1171
1527
|
*
|
|
1528
|
+
* @example
|
|
1529
|
+
* import { Effect, Random, Stream } from "effect"
|
|
1530
|
+
*
|
|
1531
|
+
* const stream = Stream.fromEffect(Random.nextInt)
|
|
1532
|
+
*
|
|
1533
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1534
|
+
* // Example Output: { _id: 'Chunk', values: [ 922694024 ] }
|
|
1535
|
+
*
|
|
1172
1536
|
* @since 2.0.0
|
|
1173
1537
|
* @category constructors
|
|
1174
1538
|
*/
|
|
@@ -1203,6 +1567,16 @@ export declare const fromPubSub: {
|
|
|
1203
1567
|
/**
|
|
1204
1568
|
* Creates a new `Stream` from an iterable collection of values.
|
|
1205
1569
|
*
|
|
1570
|
+
* @example
|
|
1571
|
+
* import { Effect, Stream } from "effect"
|
|
1572
|
+
*
|
|
1573
|
+
* const numbers = [1, 2, 3]
|
|
1574
|
+
*
|
|
1575
|
+
* const stream = Stream.fromIterable(numbers)
|
|
1576
|
+
*
|
|
1577
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1578
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3 ] }
|
|
1579
|
+
*
|
|
1206
1580
|
* @since 2.0.0
|
|
1207
1581
|
* @category constructors
|
|
1208
1582
|
*/
|
|
@@ -1210,6 +1584,23 @@ export declare const fromIterable: <A>(iterable: Iterable<A>) => Stream<A>;
|
|
|
1210
1584
|
/**
|
|
1211
1585
|
* Creates a stream from an effect producing a value of type `Iterable<A>`.
|
|
1212
1586
|
*
|
|
1587
|
+
* @example
|
|
1588
|
+
* import { Context, Effect, Stream } from "effect"
|
|
1589
|
+
*
|
|
1590
|
+
* class Database extends Context.Tag("Database")<
|
|
1591
|
+
* Database,
|
|
1592
|
+
* { readonly getUsers: Effect.Effect<Array<string>> }
|
|
1593
|
+
* >() {}
|
|
1594
|
+
*
|
|
1595
|
+
* const getUsers = Database.pipe(Effect.andThen((_) => _.getUsers))
|
|
1596
|
+
*
|
|
1597
|
+
* const stream = Stream.fromIterableEffect(getUsers)
|
|
1598
|
+
*
|
|
1599
|
+
* // Effect.runPromise(
|
|
1600
|
+
* // Stream.runCollect(stream.pipe(Stream.provideService(Database, { getUsers: Effect.succeed(["user1", "user2"]) })))
|
|
1601
|
+
* // ).then(console.log)
|
|
1602
|
+
* // { _id: 'Chunk', values: [ 'user1', 'user2' ] }
|
|
1603
|
+
*
|
|
1213
1604
|
* @since 2.0.0
|
|
1214
1605
|
* @category constructors
|
|
1215
1606
|
*/
|
|
@@ -1266,6 +1657,19 @@ export declare const fromReadableStreamByob: <E>(evaluate: LazyArg<ReadableStrea
|
|
|
1266
1657
|
* input. The stream will emit an element for each value output from the
|
|
1267
1658
|
* schedule, continuing for as long as the schedule continues.
|
|
1268
1659
|
*
|
|
1660
|
+
* @example
|
|
1661
|
+
* import { Effect, Schedule, Stream } from "effect"
|
|
1662
|
+
*
|
|
1663
|
+
* // Emits values every 1 second for a total of 5 emissions
|
|
1664
|
+
* const schedule = Schedule.spaced("1 second").pipe(
|
|
1665
|
+
* Schedule.compose(Schedule.recurs(5))
|
|
1666
|
+
* )
|
|
1667
|
+
*
|
|
1668
|
+
* const stream = Stream.fromSchedule(schedule)
|
|
1669
|
+
*
|
|
1670
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1671
|
+
* // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
|
|
1672
|
+
*
|
|
1269
1673
|
* @since 2.0.0
|
|
1270
1674
|
* @category constructors
|
|
1271
1675
|
*/
|
|
@@ -1284,6 +1688,35 @@ export declare const groupAdjacentBy: {
|
|
|
1284
1688
|
/**
|
|
1285
1689
|
* More powerful version of `Stream.groupByKey`.
|
|
1286
1690
|
*
|
|
1691
|
+
* @example
|
|
1692
|
+
* import { Chunk, Effect, GroupBy, Stream } from "effect"
|
|
1693
|
+
*
|
|
1694
|
+
* const groupByKeyResult = Stream.fromIterable([
|
|
1695
|
+
* "Mary",
|
|
1696
|
+
* "James",
|
|
1697
|
+
* "Robert",
|
|
1698
|
+
* "Patricia",
|
|
1699
|
+
* "John",
|
|
1700
|
+
* "Jennifer",
|
|
1701
|
+
* "Rebecca",
|
|
1702
|
+
* "Peter"
|
|
1703
|
+
* ]).pipe(
|
|
1704
|
+
* Stream.groupBy((name) => Effect.succeed([name.substring(0, 1), name]))
|
|
1705
|
+
* )
|
|
1706
|
+
*
|
|
1707
|
+
* const stream = GroupBy.evaluate(groupByKeyResult, (key, stream) =>
|
|
1708
|
+
* Stream.fromEffect(
|
|
1709
|
+
* Stream.runCollect(stream).pipe(
|
|
1710
|
+
* Effect.andThen((chunk) => [key, Chunk.size(chunk)] as const)
|
|
1711
|
+
* )
|
|
1712
|
+
* ))
|
|
1713
|
+
*
|
|
1714
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1715
|
+
* // {
|
|
1716
|
+
* // _id: 'Chunk',
|
|
1717
|
+
* // values: [ [ 'M', 1 ], [ 'J', 3 ], [ 'R', 2 ], [ 'P', 2 ] ]
|
|
1718
|
+
* // }
|
|
1719
|
+
*
|
|
1287
1720
|
* @since 2.0.0
|
|
1288
1721
|
* @category grouping
|
|
1289
1722
|
*/
|
|
@@ -1343,6 +1776,22 @@ export declare const groupByKey: {
|
|
|
1343
1776
|
/**
|
|
1344
1777
|
* Partitions the stream with specified `chunkSize`.
|
|
1345
1778
|
*
|
|
1779
|
+
* @example
|
|
1780
|
+
* import { Effect, Stream } from "effect"
|
|
1781
|
+
*
|
|
1782
|
+
* const stream = Stream.range(0, 8).pipe(Stream.grouped(3))
|
|
1783
|
+
*
|
|
1784
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then((chunks) => console.log("%o", chunks))
|
|
1785
|
+
* // {
|
|
1786
|
+
* // _id: 'Chunk',
|
|
1787
|
+
* // values: [
|
|
1788
|
+
* // { _id: 'Chunk', values: [ 0, 1, 2, [length]: 3 ] },
|
|
1789
|
+
* // { _id: 'Chunk', values: [ 3, 4, 5, [length]: 3 ] },
|
|
1790
|
+
* // { _id: 'Chunk', values: [ 6, 7, 8, [length]: 3 ] },
|
|
1791
|
+
* // [length]: 3
|
|
1792
|
+
* // ]
|
|
1793
|
+
* // }
|
|
1794
|
+
*
|
|
1346
1795
|
* @since 2.0.0
|
|
1347
1796
|
* @category utils
|
|
1348
1797
|
*/
|
|
@@ -1354,6 +1803,43 @@ export declare const grouped: {
|
|
|
1354
1803
|
* Partitions the stream with the specified `chunkSize` or until the specified
|
|
1355
1804
|
* `duration` has passed, whichever is satisfied first.
|
|
1356
1805
|
*
|
|
1806
|
+
* @example
|
|
1807
|
+
* import { Chunk, Effect, Schedule, Stream } from "effect"
|
|
1808
|
+
*
|
|
1809
|
+
* const stream = Stream.range(0, 9).pipe(
|
|
1810
|
+
* Stream.repeat(Schedule.spaced("1 second")),
|
|
1811
|
+
* Stream.groupedWithin(18, "1.5 seconds"),
|
|
1812
|
+
* Stream.take(3)
|
|
1813
|
+
* )
|
|
1814
|
+
*
|
|
1815
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then((chunks) => console.log(Chunk.toArray(chunks)))
|
|
1816
|
+
* // [
|
|
1817
|
+
* // {
|
|
1818
|
+
* // _id: 'Chunk',
|
|
1819
|
+
* // values: [
|
|
1820
|
+
* // 0, 1, 2, 3, 4, 5, 6,
|
|
1821
|
+
* // 7, 8, 9, 0, 1, 2, 3,
|
|
1822
|
+
* // 4, 5, 6, 7
|
|
1823
|
+
* // ]
|
|
1824
|
+
* // },
|
|
1825
|
+
* // {
|
|
1826
|
+
* // _id: 'Chunk',
|
|
1827
|
+
* // values: [
|
|
1828
|
+
* // 8, 9, 0, 1, 2,
|
|
1829
|
+
* // 3, 4, 5, 6, 7,
|
|
1830
|
+
* // 8, 9
|
|
1831
|
+
* // ]
|
|
1832
|
+
* // },
|
|
1833
|
+
* // {
|
|
1834
|
+
* // _id: 'Chunk',
|
|
1835
|
+
* // values: [
|
|
1836
|
+
* // 0, 1, 2, 3, 4, 5, 6,
|
|
1837
|
+
* // 7, 8, 9, 0, 1, 2, 3,
|
|
1838
|
+
* // 4, 5, 6, 7
|
|
1839
|
+
* // ]
|
|
1840
|
+
* // }
|
|
1841
|
+
* // ]
|
|
1842
|
+
*
|
|
1357
1843
|
* @since 2.0.0
|
|
1358
1844
|
* @category utils
|
|
1359
1845
|
*/
|
|
@@ -1417,6 +1903,16 @@ export declare const identity: <A, E = never, R = never>() => Stream<A, E, R>;
|
|
|
1417
1903
|
* one stream is exhausted all remaining values in the other stream will be
|
|
1418
1904
|
* pulled.
|
|
1419
1905
|
*
|
|
1906
|
+
* @example
|
|
1907
|
+
* import { Effect, Stream } from "effect"
|
|
1908
|
+
*
|
|
1909
|
+
* const s1 = Stream.make(1, 2, 3)
|
|
1910
|
+
* const s2 = Stream.make(4, 5, 6)
|
|
1911
|
+
*
|
|
1912
|
+
* const stream = Stream.interleave(s1, s2)
|
|
1913
|
+
*
|
|
1914
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1915
|
+
* // { _id: 'Chunk', values: [ 1, 4, 2, 5, 3, 6 ] }
|
|
1420
1916
|
* @since 2.0.0
|
|
1421
1917
|
* @category utils
|
|
1422
1918
|
*/
|
|
@@ -1433,6 +1929,25 @@ export declare const interleave: {
|
|
|
1433
1929
|
* stream are exhausted further requests for values from that stream will be
|
|
1434
1930
|
* ignored.
|
|
1435
1931
|
*
|
|
1932
|
+
* @example
|
|
1933
|
+
* import { Effect, Stream } from "effect"
|
|
1934
|
+
*
|
|
1935
|
+
* const s1 = Stream.make(1, 3, 5, 7, 9)
|
|
1936
|
+
* const s2 = Stream.make(2, 4, 6, 8, 10)
|
|
1937
|
+
*
|
|
1938
|
+
* const booleanStream = Stream.make(true, false, false).pipe(Stream.forever)
|
|
1939
|
+
*
|
|
1940
|
+
* const stream = Stream.interleaveWith(s1, s2, booleanStream)
|
|
1941
|
+
*
|
|
1942
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1943
|
+
* // {
|
|
1944
|
+
* // _id: 'Chunk',
|
|
1945
|
+
* // values: [
|
|
1946
|
+
* // 1, 2, 4, 3, 6,
|
|
1947
|
+
* // 8, 5, 10, 7, 9
|
|
1948
|
+
* // ]
|
|
1949
|
+
* // }
|
|
1950
|
+
*
|
|
1436
1951
|
* @since 2.0.0
|
|
1437
1952
|
* @category utils
|
|
1438
1953
|
*/
|
|
@@ -1443,6 +1958,20 @@ export declare const interleaveWith: {
|
|
|
1443
1958
|
/**
|
|
1444
1959
|
* Intersperse stream with provided `element`.
|
|
1445
1960
|
*
|
|
1961
|
+
* @example
|
|
1962
|
+
* import { Effect, Stream } from "effect"
|
|
1963
|
+
*
|
|
1964
|
+
* const stream = Stream.make(1, 2, 3, 4, 5).pipe(Stream.intersperse(0))
|
|
1965
|
+
*
|
|
1966
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1967
|
+
* // {
|
|
1968
|
+
* // _id: 'Chunk',
|
|
1969
|
+
* // values: [
|
|
1970
|
+
* // 1, 0, 2, 0, 3,
|
|
1971
|
+
* // 0, 4, 0, 5
|
|
1972
|
+
* // ]
|
|
1973
|
+
* // }
|
|
1974
|
+
*
|
|
1446
1975
|
* @since 2.0.0
|
|
1447
1976
|
* @category utils
|
|
1448
1977
|
*/
|
|
@@ -1453,6 +1982,27 @@ export declare const intersperse: {
|
|
|
1453
1982
|
/**
|
|
1454
1983
|
* Intersperse the specified element, also adding a prefix and a suffix.
|
|
1455
1984
|
*
|
|
1985
|
+
* @example
|
|
1986
|
+
* import { Effect, Stream } from "effect"
|
|
1987
|
+
*
|
|
1988
|
+
* const stream = Stream.make(1, 2, 3, 4, 5).pipe(
|
|
1989
|
+
* Stream.intersperseAffixes({
|
|
1990
|
+
* start: "[",
|
|
1991
|
+
* middle: "-",
|
|
1992
|
+
* end: "]"
|
|
1993
|
+
* })
|
|
1994
|
+
* )
|
|
1995
|
+
*
|
|
1996
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
1997
|
+
* // {
|
|
1998
|
+
* // _id: 'Chunk',
|
|
1999
|
+
* // values: [
|
|
2000
|
+
* // '[', 1, '-', 2, '-',
|
|
2001
|
+
* // 3, '-', 4, '-', 5,
|
|
2002
|
+
* // ']'
|
|
2003
|
+
* // ]
|
|
2004
|
+
* // }
|
|
2005
|
+
*
|
|
1456
2006
|
* @since 2.0.0
|
|
1457
2007
|
* @category utils
|
|
1458
2008
|
*/
|
|
@@ -1513,6 +2063,15 @@ export declare const interruptWhenDeferred: {
|
|
|
1513
2063
|
* The infinite stream of iterative function application: a, f(a), f(f(a)),
|
|
1514
2064
|
* f(f(f(a))), ...
|
|
1515
2065
|
*
|
|
2066
|
+
* @example
|
|
2067
|
+
* import { Effect, Stream } from "effect"
|
|
2068
|
+
*
|
|
2069
|
+
* // An infinite Stream of numbers starting from 1 and incrementing
|
|
2070
|
+
* const stream = Stream.iterate(1, (n) => n + 1)
|
|
2071
|
+
*
|
|
2072
|
+
* // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(10)))).then(console.log)
|
|
2073
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] }
|
|
2074
|
+
*
|
|
1516
2075
|
* @since 2.0.0
|
|
1517
2076
|
* @category constructors
|
|
1518
2077
|
*/
|
|
@@ -1520,6 +2079,14 @@ export declare const iterate: <A>(value: A, next: (value: A) => A) => Stream<A>;
|
|
|
1520
2079
|
/**
|
|
1521
2080
|
* Creates a stream from an sequence of values.
|
|
1522
2081
|
*
|
|
2082
|
+
* @example
|
|
2083
|
+
* import { Effect, Stream } from "effect"
|
|
2084
|
+
*
|
|
2085
|
+
* const stream = Stream.make(1, 2, 3)
|
|
2086
|
+
*
|
|
2087
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
2088
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3 ] }
|
|
2089
|
+
*
|
|
1523
2090
|
* @since 2.0.0
|
|
1524
2091
|
* @category constructors
|
|
1525
2092
|
*/
|
|
@@ -1527,6 +2094,14 @@ export declare const make: <As extends Array<any>>(...as: As) => Stream<As[numbe
|
|
|
1527
2094
|
/**
|
|
1528
2095
|
* Transforms the elements of this stream using the supplied function.
|
|
1529
2096
|
*
|
|
2097
|
+
* @example
|
|
2098
|
+
* import { Effect, Stream } from "effect"
|
|
2099
|
+
*
|
|
2100
|
+
* const stream = Stream.make(1, 2, 3).pipe(Stream.map((n) => n + 1))
|
|
2101
|
+
*
|
|
2102
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
2103
|
+
* // { _id: 'Chunk', values: [ 2, 3, 4 ] }
|
|
2104
|
+
*
|
|
1530
2105
|
* @since 2.0.0
|
|
1531
2106
|
* @category mapping
|
|
1532
2107
|
*/
|
|
@@ -1537,6 +2112,18 @@ export declare const map: {
|
|
|
1537
2112
|
/**
|
|
1538
2113
|
* Statefully maps over the elements of this stream to produce new elements.
|
|
1539
2114
|
*
|
|
2115
|
+
* @example
|
|
2116
|
+
* import { Effect, Stream } from "effect"
|
|
2117
|
+
*
|
|
2118
|
+
* const runningTotal = (stream: Stream.Stream<number>): Stream.Stream<number> =>
|
|
2119
|
+
* stream.pipe(Stream.mapAccum(0, (s, a) => [s + a, s + a]))
|
|
2120
|
+
*
|
|
2121
|
+
* // input: 0, 1, 2, 3, 4, 5, 6
|
|
2122
|
+
* // Effect.runPromise(Stream.runCollect(runningTotal(Stream.range(0, 6)))).then(
|
|
2123
|
+
* // console.log
|
|
2124
|
+
* // )
|
|
2125
|
+
* // { _id: "Chunk", values: [ 0, 1, 3, 6, 10, 15, 21 ] }
|
|
2126
|
+
*
|
|
1540
2127
|
* @since 2.0.0
|
|
1541
2128
|
* @category mapping
|
|
1542
2129
|
*/
|
|
@@ -1596,6 +2183,17 @@ export declare const mapChunksEffect: {
|
|
|
1596
2183
|
* Maps each element to an iterable, and flattens the iterables into the
|
|
1597
2184
|
* output of this stream.
|
|
1598
2185
|
*
|
|
2186
|
+
* @example
|
|
2187
|
+
* import { Effect, Stream } from "effect"
|
|
2188
|
+
*
|
|
2189
|
+
* const numbers = Stream.make("1-2-3", "4-5", "6").pipe(
|
|
2190
|
+
* Stream.mapConcat((s) => s.split("-")),
|
|
2191
|
+
* Stream.map((s) => parseInt(s))
|
|
2192
|
+
* )
|
|
2193
|
+
*
|
|
2194
|
+
* // Effect.runPromise(Stream.runCollect(numbers)).then(console.log)
|
|
2195
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5, 6 ] }
|
|
2196
|
+
*
|
|
1599
2197
|
* @since 2.0.0
|
|
1600
2198
|
* @category mapping
|
|
1601
2199
|
*/
|
|
@@ -1639,6 +2237,16 @@ export declare const mapConcatEffect: {
|
|
|
1639
2237
|
/**
|
|
1640
2238
|
* Maps over elements of the stream with the specified effectful function.
|
|
1641
2239
|
*
|
|
2240
|
+
* @example
|
|
2241
|
+
* import { Effect, Random, Stream } from "effect"
|
|
2242
|
+
*
|
|
2243
|
+
* const stream = Stream.make(10, 20, 30).pipe(
|
|
2244
|
+
* Stream.mapEffect((n) => Random.nextIntBetween(0, n))
|
|
2245
|
+
* )
|
|
2246
|
+
*
|
|
2247
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
2248
|
+
* // Example Output: { _id: 'Chunk', values: [ 7, 19, 8 ] }
|
|
2249
|
+
*
|
|
1642
2250
|
* @since 2.0.0
|
|
1643
2251
|
* @category mapping
|
|
1644
2252
|
*/
|
|
@@ -1686,6 +2294,21 @@ export declare const mapErrorCause: {
|
|
|
1686
2294
|
* New produced stream will terminate when both specified stream terminate if
|
|
1687
2295
|
* no termination strategy is specified.
|
|
1688
2296
|
*
|
|
2297
|
+
* @example
|
|
2298
|
+
* import { Effect, Schedule, Stream } from "effect"
|
|
2299
|
+
*
|
|
2300
|
+
* const s1 = Stream.make(1, 2, 3).pipe(
|
|
2301
|
+
* Stream.schedule(Schedule.spaced("100 millis"))
|
|
2302
|
+
* )
|
|
2303
|
+
* const s2 = Stream.make(4, 5, 6).pipe(
|
|
2304
|
+
* Stream.schedule(Schedule.spaced("200 millis"))
|
|
2305
|
+
* )
|
|
2306
|
+
*
|
|
2307
|
+
* const stream = Stream.merge(s1, s2)
|
|
2308
|
+
*
|
|
2309
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
2310
|
+
* // { _id: 'Chunk', values: [ 1, 4, 2, 3, 5, 6 ] }
|
|
2311
|
+
*
|
|
1689
2312
|
* @since 2.0.0
|
|
1690
2313
|
* @category utils
|
|
1691
2314
|
*/
|
|
@@ -1722,6 +2345,24 @@ export declare const mergeAll: {
|
|
|
1722
2345
|
* New produced stream will terminate when both specified stream terminate if
|
|
1723
2346
|
* no termination strategy is specified.
|
|
1724
2347
|
*
|
|
2348
|
+
* @example
|
|
2349
|
+
* import { Effect, Schedule, Stream } from "effect"
|
|
2350
|
+
*
|
|
2351
|
+
* const s1 = Stream.make("1", "2", "3").pipe(
|
|
2352
|
+
* Stream.schedule(Schedule.spaced("100 millis"))
|
|
2353
|
+
* )
|
|
2354
|
+
* const s2 = Stream.make(4.1, 5.3, 6.2).pipe(
|
|
2355
|
+
* Stream.schedule(Schedule.spaced("200 millis"))
|
|
2356
|
+
* )
|
|
2357
|
+
*
|
|
2358
|
+
* const stream = Stream.mergeWith(s1, s2, {
|
|
2359
|
+
* onSelf: (s) => parseInt(s),
|
|
2360
|
+
* onOther: (n) => Math.floor(n)
|
|
2361
|
+
* })
|
|
2362
|
+
*
|
|
2363
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
2364
|
+
* // { _id: 'Chunk', values: [ 1, 4, 2, 3, 5, 6 ] }
|
|
2365
|
+
*
|
|
1725
2366
|
* @since 2.0.0
|
|
1726
2367
|
* @category utils
|
|
1727
2368
|
*/
|
|
@@ -1909,6 +2550,17 @@ export declare const orElseSucceed: {
|
|
|
1909
2550
|
* than the unfolding of the state. This is useful for embedding paginated
|
|
1910
2551
|
* APIs, hence the name.
|
|
1911
2552
|
*
|
|
2553
|
+
* @example
|
|
2554
|
+
* import { Effect, Option, Stream } from "effect"
|
|
2555
|
+
*
|
|
2556
|
+
* const stream = Stream.paginate(0, (n) => [
|
|
2557
|
+
* n,
|
|
2558
|
+
* n < 3 ? Option.some(n + 1) : Option.none()
|
|
2559
|
+
* ])
|
|
2560
|
+
*
|
|
2561
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
2562
|
+
* // { _id: 'Chunk', values: [ 0, 1, 2, 3 ] }
|
|
2563
|
+
*
|
|
1912
2564
|
* @since 2.0.0
|
|
1913
2565
|
* @category constructors
|
|
1914
2566
|
*/
|
|
@@ -1946,6 +2598,25 @@ export declare const paginateEffect: <S, A, E, R>(s: S, f: (s: S) => Effect.Effe
|
|
|
1946
2598
|
* evaluated to false. The faster stream may advance by up to buffer elements
|
|
1947
2599
|
* further than the slower one.
|
|
1948
2600
|
*
|
|
2601
|
+
* @example
|
|
2602
|
+
* import { Effect, Stream } from "effect"
|
|
2603
|
+
*
|
|
2604
|
+
* const partition = Stream.range(1, 10).pipe(
|
|
2605
|
+
* Stream.partition((n) => n % 2 === 0, { bufferSize: 5 })
|
|
2606
|
+
* )
|
|
2607
|
+
*
|
|
2608
|
+
* const program = Effect.scoped(
|
|
2609
|
+
* Effect.gen(function*() {
|
|
2610
|
+
* const [evens, odds] = yield* partition
|
|
2611
|
+
* console.log(yield* Stream.runCollect(evens))
|
|
2612
|
+
* console.log(yield* Stream.runCollect(odds))
|
|
2613
|
+
* })
|
|
2614
|
+
* )
|
|
2615
|
+
*
|
|
2616
|
+
* // Effect.runPromise(program)
|
|
2617
|
+
* // { _id: 'Chunk', values: [ 2, 4, 6, 8, 10 ] }
|
|
2618
|
+
* // { _id: 'Chunk', values: [ 1, 3, 5, 7, 9 ] }
|
|
2619
|
+
*
|
|
1949
2620
|
* @since 2.0.0
|
|
1950
2621
|
* @category utils
|
|
1951
2622
|
*/
|
|
@@ -1967,6 +2638,28 @@ export declare const partition: {
|
|
|
1967
2638
|
* Split a stream by an effectful predicate. The faster stream may advance by
|
|
1968
2639
|
* up to buffer elements further than the slower one.
|
|
1969
2640
|
*
|
|
2641
|
+
* @example
|
|
2642
|
+
* import { Effect, Either, Stream } from "effect"
|
|
2643
|
+
*
|
|
2644
|
+
* const partition = Stream.range(1, 9).pipe(
|
|
2645
|
+
* Stream.partitionEither(
|
|
2646
|
+
* (n) => Effect.succeed(n % 2 === 0 ? Either.left(n) : Either.right(n)),
|
|
2647
|
+
* { bufferSize: 5 }
|
|
2648
|
+
* )
|
|
2649
|
+
* )
|
|
2650
|
+
*
|
|
2651
|
+
* const program = Effect.scoped(
|
|
2652
|
+
* Effect.gen(function*() {
|
|
2653
|
+
* const [evens, odds] = yield* partition
|
|
2654
|
+
* console.log(yield* Stream.runCollect(evens))
|
|
2655
|
+
* console.log(yield* Stream.runCollect(odds))
|
|
2656
|
+
* })
|
|
2657
|
+
* )
|
|
2658
|
+
*
|
|
2659
|
+
* // Effect.runPromise(program)
|
|
2660
|
+
* // { _id: 'Chunk', values: [ 2, 4, 6, 8 ] }
|
|
2661
|
+
* // { _id: 'Chunk', values: [ 1, 3, 5, 7, 9 ] }
|
|
2662
|
+
*
|
|
1970
2663
|
* @since 2.0.0
|
|
1971
2664
|
* @category utils
|
|
1972
2665
|
*/
|
|
@@ -2113,6 +2806,15 @@ export declare const provideSomeLayer: {
|
|
|
2113
2806
|
/**
|
|
2114
2807
|
* Constructs a stream from a range of integers, including both endpoints.
|
|
2115
2808
|
*
|
|
2809
|
+
* @example
|
|
2810
|
+
* import { Effect, Stream } from "effect"
|
|
2811
|
+
*
|
|
2812
|
+
* // A Stream with a range of numbers from 1 to 5
|
|
2813
|
+
* const stream = Stream.range(1, 5)
|
|
2814
|
+
*
|
|
2815
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
2816
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
|
|
2817
|
+
*
|
|
2116
2818
|
* @since 2.0.0
|
|
2117
2819
|
* @category constructors
|
|
2118
2820
|
*/
|
|
@@ -2153,6 +2855,14 @@ export declare const refineOrDieWith: {
|
|
|
2153
2855
|
* Repeats the entire stream using the specified schedule. The stream will
|
|
2154
2856
|
* execute normally, and then repeat again according to the provided schedule.
|
|
2155
2857
|
*
|
|
2858
|
+
* @example
|
|
2859
|
+
* import { Effect, Schedule, Stream } from "effect"
|
|
2860
|
+
*
|
|
2861
|
+
* const stream = Stream.repeat(Stream.succeed(1), Schedule.forever)
|
|
2862
|
+
*
|
|
2863
|
+
* // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
|
|
2864
|
+
* // { _id: 'Chunk', values: [ 1, 1, 1, 1, 1 ] }
|
|
2865
|
+
*
|
|
2156
2866
|
* @since 2.0.0
|
|
2157
2867
|
* @category utils
|
|
2158
2868
|
*/
|
|
@@ -2164,6 +2874,14 @@ export declare const repeat: {
|
|
|
2164
2874
|
* Creates a stream from an effect producing a value of type `A` which repeats
|
|
2165
2875
|
* forever.
|
|
2166
2876
|
*
|
|
2877
|
+
* @example
|
|
2878
|
+
* import { Effect, Random, Stream } from "effect"
|
|
2879
|
+
*
|
|
2880
|
+
* const stream = Stream.repeatEffect(Random.nextInt)
|
|
2881
|
+
*
|
|
2882
|
+
* // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
|
|
2883
|
+
* // Example Output: { _id: 'Chunk', values: [ 3891571149, 4239494205, 2352981603, 2339111046, 1488052210 ] }
|
|
2884
|
+
*
|
|
2167
2885
|
* @since 2.0.0
|
|
2168
2886
|
* @category constructors
|
|
2169
2887
|
*/
|
|
@@ -2188,6 +2906,22 @@ export declare const repeatEffectChunkOption: <A, E, R>(effect: Effect.Effect<Ch
|
|
|
2188
2906
|
* Creates a stream from an effect producing values of type `A` until it fails
|
|
2189
2907
|
* with `None`.
|
|
2190
2908
|
*
|
|
2909
|
+
* @example
|
|
2910
|
+
* // In this example, we're draining an Iterator to create a stream from it
|
|
2911
|
+
* import { Stream, Effect, Option } from "effect"
|
|
2912
|
+
*
|
|
2913
|
+
* const drainIterator = <A>(it: Iterator<A>): Stream.Stream<A> =>
|
|
2914
|
+
* Stream.repeatEffectOption(
|
|
2915
|
+
* Effect.sync(() => it.next()).pipe(
|
|
2916
|
+
* Effect.andThen((res) => {
|
|
2917
|
+
* if (res.done) {
|
|
2918
|
+
* return Effect.fail(Option.none())
|
|
2919
|
+
* }
|
|
2920
|
+
* return Effect.succeed(res.value)
|
|
2921
|
+
* })
|
|
2922
|
+
* )
|
|
2923
|
+
* )
|
|
2924
|
+
*
|
|
2191
2925
|
* @since 2.0.0
|
|
2192
2926
|
* @category constructors
|
|
2193
2927
|
*/
|
|
@@ -2254,6 +2988,14 @@ export declare const repeatElementsWith: {
|
|
|
2254
2988
|
/**
|
|
2255
2989
|
* Repeats the provided value infinitely.
|
|
2256
2990
|
*
|
|
2991
|
+
* @example
|
|
2992
|
+
* import { Effect, Stream } from "effect"
|
|
2993
|
+
*
|
|
2994
|
+
* const stream = Stream.repeatValue(0)
|
|
2995
|
+
*
|
|
2996
|
+
* // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
|
|
2997
|
+
* // { _id: 'Chunk', values: [ 0, 0, 0, 0, 0 ] }
|
|
2998
|
+
*
|
|
2257
2999
|
* @since 2.0.0
|
|
2258
3000
|
* @category constructors
|
|
2259
3001
|
*/
|
|
@@ -2570,6 +3312,14 @@ export declare const runSum: <E, R>(self: Stream<number, E, R>) => Effect.Effect
|
|
|
2570
3312
|
* Statefully maps over the elements of this stream to produce all
|
|
2571
3313
|
* intermediate results of type `S` given an initial S.
|
|
2572
3314
|
*
|
|
3315
|
+
* @example
|
|
3316
|
+
* import { Effect, Stream } from "effect"
|
|
3317
|
+
*
|
|
3318
|
+
* const stream = Stream.range(1, 6).pipe(Stream.scan(0, (a, b) => a + b))
|
|
3319
|
+
*
|
|
3320
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
3321
|
+
* // { _id: 'Chunk', values: [ 0, 1, 3, 6, 10, 15, 21 ] }
|
|
3322
|
+
*
|
|
2573
3323
|
* @since 2.0.0
|
|
2574
3324
|
* @category utils
|
|
2575
3325
|
*/
|
|
@@ -2645,6 +3395,24 @@ export declare const scheduleWith: {
|
|
|
2645
3395
|
/**
|
|
2646
3396
|
* Creates a single-valued stream from a scoped resource.
|
|
2647
3397
|
*
|
|
3398
|
+
* @example
|
|
3399
|
+
* import { Console, Effect, Stream } from "effect"
|
|
3400
|
+
*
|
|
3401
|
+
* // Creating a single-valued stream from a scoped resource
|
|
3402
|
+
* const stream = Stream.scoped(
|
|
3403
|
+
* Effect.acquireUseRelease(
|
|
3404
|
+
* Console.log("acquire"),
|
|
3405
|
+
* () => Console.log("use"),
|
|
3406
|
+
* () => Console.log("release")
|
|
3407
|
+
* )
|
|
3408
|
+
* )
|
|
3409
|
+
*
|
|
3410
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
3411
|
+
* // acquire
|
|
3412
|
+
* // use
|
|
3413
|
+
* // release
|
|
3414
|
+
* // { _id: 'Chunk', values: [ undefined ] }
|
|
3415
|
+
*
|
|
2648
3416
|
* @since 2.0.0
|
|
2649
3417
|
* @category constructors
|
|
2650
3418
|
*/
|
|
@@ -2751,6 +3519,15 @@ export declare const splitLines: <E, R>(self: Stream<string, E, R>) => Stream<st
|
|
|
2751
3519
|
/**
|
|
2752
3520
|
* Creates a single-valued pure stream.
|
|
2753
3521
|
*
|
|
3522
|
+
* @example
|
|
3523
|
+
* import { Effect, Stream } from "effect"
|
|
3524
|
+
*
|
|
3525
|
+
* // A Stream with a single number
|
|
3526
|
+
* const stream = Stream.succeed(3)
|
|
3527
|
+
*
|
|
3528
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
3529
|
+
* // { _id: 'Chunk', values: [ 3 ] }
|
|
3530
|
+
*
|
|
2754
3531
|
* @since 2.0.0
|
|
2755
3532
|
* @category constructors
|
|
2756
3533
|
*/
|
|
@@ -2772,6 +3549,14 @@ export declare const suspend: <A, E, R>(stream: LazyArg<Stream<A, E, R>>) => Str
|
|
|
2772
3549
|
/**
|
|
2773
3550
|
* Takes the specified number of elements from this stream.
|
|
2774
3551
|
*
|
|
3552
|
+
* @example
|
|
3553
|
+
* import { Effect, Stream } from "effect"
|
|
3554
|
+
*
|
|
3555
|
+
* const stream = Stream.take(Stream.iterate(0, (n) => n + 1), 5)
|
|
3556
|
+
*
|
|
3557
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
3558
|
+
* // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
|
|
3559
|
+
*
|
|
2775
3560
|
* @since 2.0.0
|
|
2776
3561
|
* @category utils
|
|
2777
3562
|
*/
|
|
@@ -2782,6 +3567,14 @@ export declare const take: {
|
|
|
2782
3567
|
/**
|
|
2783
3568
|
* Takes the last specified number of elements from this stream.
|
|
2784
3569
|
*
|
|
3570
|
+
* @example
|
|
3571
|
+
* import { Effect, Stream } from "effect"
|
|
3572
|
+
*
|
|
3573
|
+
* const stream = Stream.takeRight(Stream.make(1, 2, 3, 4, 5, 6), 3)
|
|
3574
|
+
*
|
|
3575
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
3576
|
+
* // { _id: 'Chunk', values: [ 4, 5, 6 ] }
|
|
3577
|
+
*
|
|
2785
3578
|
* @since 2.0.0
|
|
2786
3579
|
* @category utils
|
|
2787
3580
|
*/
|
|
@@ -2793,6 +3586,14 @@ export declare const takeRight: {
|
|
|
2793
3586
|
* Takes all elements of the stream until the specified predicate evaluates to
|
|
2794
3587
|
* `true`.
|
|
2795
3588
|
*
|
|
3589
|
+
* @example
|
|
3590
|
+
* import { Effect, Stream } from "effect"
|
|
3591
|
+
*
|
|
3592
|
+
* const stream = Stream.takeUntil(Stream.iterate(0, (n) => n + 1), (n) => n === 4)
|
|
3593
|
+
*
|
|
3594
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
3595
|
+
* // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
|
|
3596
|
+
*
|
|
2796
3597
|
* @since 2.0.0
|
|
2797
3598
|
* @category utils
|
|
2798
3599
|
*/
|
|
@@ -2815,6 +3616,14 @@ export declare const takeUntilEffect: {
|
|
|
2815
3616
|
* Takes all elements of the stream for as long as the specified predicate
|
|
2816
3617
|
* evaluates to `true`.
|
|
2817
3618
|
*
|
|
3619
|
+
* @example
|
|
3620
|
+
* import { Effect, Stream } from "effect"
|
|
3621
|
+
*
|
|
3622
|
+
* const stream = Stream.takeWhile(Stream.iterate(0, (n) => n + 1), (n) => n < 5)
|
|
3623
|
+
*
|
|
3624
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
3625
|
+
* // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4 ] }
|
|
3626
|
+
*
|
|
2818
3627
|
* @since 2.0.0
|
|
2819
3628
|
* @category utils
|
|
2820
3629
|
*/
|
|
@@ -2827,6 +3636,24 @@ export declare const takeWhile: {
|
|
|
2827
3636
|
/**
|
|
2828
3637
|
* Adds an effect to consumption of every element of the stream.
|
|
2829
3638
|
*
|
|
3639
|
+
* @example
|
|
3640
|
+
* import { Console, Effect, Stream } from "effect"
|
|
3641
|
+
*
|
|
3642
|
+
* const stream = Stream.make(1, 2, 3).pipe(
|
|
3643
|
+
* Stream.tap((n) => Console.log(`before mapping: ${n}`)),
|
|
3644
|
+
* Stream.map((n) => n * 2),
|
|
3645
|
+
* Stream.tap((n) => Console.log(`after mapping: ${n}`))
|
|
3646
|
+
* )
|
|
3647
|
+
*
|
|
3648
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
3649
|
+
* // before mapping: 1
|
|
3650
|
+
* // after mapping: 2
|
|
3651
|
+
* // before mapping: 2
|
|
3652
|
+
* // after mapping: 4
|
|
3653
|
+
* // before mapping: 3
|
|
3654
|
+
* // after mapping: 6
|
|
3655
|
+
* // { _id: 'Chunk', values: [ 2, 4, 6 ] }
|
|
3656
|
+
*
|
|
2830
3657
|
* @since 2.0.0
|
|
2831
3658
|
* @category sequencing
|
|
2832
3659
|
*/
|
|
@@ -2888,7 +3715,7 @@ export declare const tapSink: {
|
|
|
2888
3715
|
* parameters using the token bucket algorithm. Allows for burst in the
|
|
2889
3716
|
* processing of elements by allowing the token bucket to accumulate tokens up
|
|
2890
3717
|
* to a `units + burst` threshold. The weight of each chunk is determined by
|
|
2891
|
-
* the `
|
|
3718
|
+
* the `cost` function.
|
|
2892
3719
|
*
|
|
2893
3720
|
* If using the "enforce" strategy, chunks that do not meet the bandwidth
|
|
2894
3721
|
* constraints are dropped. If using the "shape" strategy, chunks are delayed
|
|
@@ -2896,6 +3723,43 @@ export declare const tapSink: {
|
|
|
2896
3723
|
*
|
|
2897
3724
|
* Defaults to the "shape" strategy.
|
|
2898
3725
|
*
|
|
3726
|
+
* @example
|
|
3727
|
+
* import { Chunk, Effect, Schedule, Stream } from "effect"
|
|
3728
|
+
*
|
|
3729
|
+
* let last = Date.now()
|
|
3730
|
+
* const log = (message: string) =>
|
|
3731
|
+
* Effect.sync(() => {
|
|
3732
|
+
* const end = Date.now()
|
|
3733
|
+
* console.log(`${message} after ${end - last}ms`)
|
|
3734
|
+
* last = end
|
|
3735
|
+
* })
|
|
3736
|
+
*
|
|
3737
|
+
* const stream = Stream.fromSchedule(Schedule.spaced("50 millis")).pipe(
|
|
3738
|
+
* Stream.take(6),
|
|
3739
|
+
* Stream.tap((n) => log(`Received ${n}`)),
|
|
3740
|
+
* Stream.throttle({
|
|
3741
|
+
* cost: Chunk.size,
|
|
3742
|
+
* duration: "100 millis",
|
|
3743
|
+
* units: 1
|
|
3744
|
+
* }),
|
|
3745
|
+
* Stream.tap((n) => log(`> Emitted ${n}`))
|
|
3746
|
+
* )
|
|
3747
|
+
*
|
|
3748
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
3749
|
+
* // Received 0 after 56ms
|
|
3750
|
+
* // > Emitted 0 after 0ms
|
|
3751
|
+
* // Received 1 after 52ms
|
|
3752
|
+
* // > Emitted 1 after 48ms
|
|
3753
|
+
* // Received 2 after 52ms
|
|
3754
|
+
* // > Emitted 2 after 49ms
|
|
3755
|
+
* // Received 3 after 52ms
|
|
3756
|
+
* // > Emitted 3 after 48ms
|
|
3757
|
+
* // Received 4 after 52ms
|
|
3758
|
+
* // > Emitted 4 after 47ms
|
|
3759
|
+
* // Received 5 after 52ms
|
|
3760
|
+
* // > Emitted 5 after 49ms
|
|
3761
|
+
* // { _id: 'Chunk', values: [ 0, 1, 2, 3, 4, 5 ] }
|
|
3762
|
+
*
|
|
2899
3763
|
* @since 2.0.0
|
|
2900
3764
|
* @category utils
|
|
2901
3765
|
*/
|
|
@@ -2950,6 +3814,27 @@ export declare const throttleEffect: {
|
|
|
2950
3814
|
/**
|
|
2951
3815
|
* A stream that emits void values spaced by the specified duration.
|
|
2952
3816
|
*
|
|
3817
|
+
* @example
|
|
3818
|
+
* import { Effect, Stream } from "effect"
|
|
3819
|
+
*
|
|
3820
|
+
* let last = Date.now()
|
|
3821
|
+
* const log = (message: string) =>
|
|
3822
|
+
* Effect.sync(() => {
|
|
3823
|
+
* const end = Date.now()
|
|
3824
|
+
* console.log(`${message} after ${end - last}ms`)
|
|
3825
|
+
* last = end
|
|
3826
|
+
* })
|
|
3827
|
+
*
|
|
3828
|
+
* const stream = Stream.tick("1 seconds").pipe(Stream.tap(() => log("tick")))
|
|
3829
|
+
*
|
|
3830
|
+
* // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
|
|
3831
|
+
* // tick after 4ms
|
|
3832
|
+
* // tick after 1003ms
|
|
3833
|
+
* // tick after 1001ms
|
|
3834
|
+
* // tick after 1002ms
|
|
3835
|
+
* // tick after 1002ms
|
|
3836
|
+
* // { _id: 'Chunk', values: [ undefined, undefined, undefined, undefined, undefined ] }
|
|
3837
|
+
*
|
|
2953
3838
|
* @since 2.0.0
|
|
2954
3839
|
* @category constructors
|
|
2955
3840
|
*/
|
|
@@ -3014,6 +3899,32 @@ export declare const toPubSub: {
|
|
|
3014
3899
|
* finished, or with Some error if it fails, otherwise it returns a chunk of
|
|
3015
3900
|
* the stream's output.
|
|
3016
3901
|
*
|
|
3902
|
+
* @example
|
|
3903
|
+
* import { Effect, Stream } from "effect"
|
|
3904
|
+
*
|
|
3905
|
+
* // Simulate a chunked stream
|
|
3906
|
+
* const stream = Stream.fromIterable([1, 2, 3, 4, 5]).pipe(Stream.rechunk(2))
|
|
3907
|
+
*
|
|
3908
|
+
* const program = Effect.gen(function*() {
|
|
3909
|
+
* // Create an effect to get data chunks from the stream
|
|
3910
|
+
* const getChunk = yield* Stream.toPull(stream)
|
|
3911
|
+
*
|
|
3912
|
+
* // Continuously fetch and process chunks
|
|
3913
|
+
* while (true) {
|
|
3914
|
+
* const chunk = yield* getChunk
|
|
3915
|
+
* console.log(chunk)
|
|
3916
|
+
* }
|
|
3917
|
+
* })
|
|
3918
|
+
*
|
|
3919
|
+
* // Effect.runPromise(Effect.scoped(program)).then(console.log, console.error)
|
|
3920
|
+
* // { _id: 'Chunk', values: [ 1, 2 ] }
|
|
3921
|
+
* // { _id: 'Chunk', values: [ 3, 4 ] }
|
|
3922
|
+
* // { _id: 'Chunk', values: [ 5 ] }
|
|
3923
|
+
* // (FiberFailure) Error: {
|
|
3924
|
+
* // "_id": "Option",
|
|
3925
|
+
* // "_tag": "None"
|
|
3926
|
+
* // }
|
|
3927
|
+
*
|
|
3017
3928
|
* @since 2.0.0
|
|
3018
3929
|
* @category destructors
|
|
3019
3930
|
*/
|
|
@@ -3119,6 +4030,14 @@ export declare const transduce: {
|
|
|
3119
4030
|
/**
|
|
3120
4031
|
* Creates a stream by peeling off the "layers" of a value of type `S`.
|
|
3121
4032
|
*
|
|
4033
|
+
* @example
|
|
4034
|
+
* import { Effect, Option, Stream } from "effect"
|
|
4035
|
+
*
|
|
4036
|
+
* const stream = Stream.unfold(1, (n) => Option.some([n, n + 1]))
|
|
4037
|
+
*
|
|
4038
|
+
* // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
|
|
4039
|
+
* // { _id: 'Chunk', values: [ 1, 2, 3, 4, 5 ] }
|
|
4040
|
+
*
|
|
3122
4041
|
* @since 2.0.0
|
|
3123
4042
|
* @category constructors
|
|
3124
4043
|
*/
|
|
@@ -3142,6 +4061,17 @@ export declare const unfoldChunkEffect: <S, A, E, R>(s: S, f: (s: S) => Effect.E
|
|
|
3142
4061
|
* Creates a stream by effectfully peeling off the "layers" of a value of type
|
|
3143
4062
|
* `S`.
|
|
3144
4063
|
*
|
|
4064
|
+
* @example
|
|
4065
|
+
* import { Effect, Option, Random, Stream } from "effect"
|
|
4066
|
+
*
|
|
4067
|
+
* const stream = Stream.unfoldEffect(1, (n) =>
|
|
4068
|
+
* Random.nextBoolean.pipe(
|
|
4069
|
+
* Effect.map((b) => (b ? Option.some([n, -n]) : Option.some([n, n])))
|
|
4070
|
+
* ))
|
|
4071
|
+
*
|
|
4072
|
+
* // Effect.runPromise(Stream.runCollect(stream.pipe(Stream.take(5)))).then(console.log)
|
|
4073
|
+
* // { _id: 'Chunk', values: [ 1, -1, -1, -1, -1 ] }
|
|
4074
|
+
*
|
|
3145
4075
|
* @since 2.0.0
|
|
3146
4076
|
* @category constructors
|
|
3147
4077
|
*/
|
|
@@ -3151,6 +4081,14 @@ export {
|
|
|
3151
4081
|
/**
|
|
3152
4082
|
* A stream that contains a single `void` value.
|
|
3153
4083
|
*
|
|
4084
|
+
* @example
|
|
4085
|
+
* import { Effect, Stream } from "effect"
|
|
4086
|
+
*
|
|
4087
|
+
* const stream = Stream.void
|
|
4088
|
+
*
|
|
4089
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
4090
|
+
* // { _id: 'Chunk', values: [ undefined ] }
|
|
4091
|
+
*
|
|
3154
4092
|
* @since 2.0.0
|
|
3155
4093
|
* @category constructors
|
|
3156
4094
|
*/
|
|
@@ -3236,6 +4174,18 @@ export declare const withSpan: {
|
|
|
3236
4174
|
*
|
|
3237
4175
|
* The new stream will end when one of the sides ends.
|
|
3238
4176
|
*
|
|
4177
|
+
* @example
|
|
4178
|
+
* import { Effect, Stream } from "effect"
|
|
4179
|
+
*
|
|
4180
|
+
* // We create two streams and zip them together.
|
|
4181
|
+
* const stream = Stream.zip(
|
|
4182
|
+
* Stream.make(1, 2, 3, 4, 5, 6),
|
|
4183
|
+
* Stream.make("a", "b", "c")
|
|
4184
|
+
* )
|
|
4185
|
+
*
|
|
4186
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
4187
|
+
* // { _id: 'Chunk', values: [ [ 1, 'a' ], [ 2, 'b' ], [ 3, 'c' ] ] }
|
|
4188
|
+
*
|
|
3239
4189
|
* @since 2.0.0
|
|
3240
4190
|
* @category zipping
|
|
3241
4191
|
*/
|
|
@@ -3263,6 +4213,18 @@ export declare const zipFlatten: {
|
|
|
3263
4213
|
* The defaults `defaultLeft` and `defaultRight` will be used if the streams
|
|
3264
4214
|
* have different lengths and one of the streams has ended before the other.
|
|
3265
4215
|
*
|
|
4216
|
+
* @example
|
|
4217
|
+
* import { Effect, Stream } from "effect"
|
|
4218
|
+
*
|
|
4219
|
+
* const stream = Stream.zipAll(Stream.make(1, 2, 3, 4, 5, 6), {
|
|
4220
|
+
* other: Stream.make("a", "b", "c"),
|
|
4221
|
+
* defaultSelf: 0,
|
|
4222
|
+
* defaultOther: "x"
|
|
4223
|
+
* })
|
|
4224
|
+
*
|
|
4225
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
4226
|
+
* // { _id: "Chunk", values: [ [ 1, "a" ], [ 2, "b" ], [ 3, "c" ], [ 4, "x" ], [ 5, "x" ], [ 6, "x" ] ] }
|
|
4227
|
+
*
|
|
3266
4228
|
* @since 2.0.0
|
|
3267
4229
|
* @category zipping
|
|
3268
4230
|
*/
|
|
@@ -3421,6 +4383,19 @@ export declare const zipAllSortedByKeyWith: {
|
|
|
3421
4383
|
* The functions `left` and `right` will be used if the streams have different
|
|
3422
4384
|
* lengths and one of the streams has ended before the other.
|
|
3423
4385
|
*
|
|
4386
|
+
* @example
|
|
4387
|
+
* import { Effect, Stream } from "effect"
|
|
4388
|
+
*
|
|
4389
|
+
* const stream = Stream.zipAllWith(Stream.make(1, 2, 3, 4, 5, 6), {
|
|
4390
|
+
* other: Stream.make("a", "b", "c"),
|
|
4391
|
+
* onSelf: (n) => [n, "x"],
|
|
4392
|
+
* onOther: (s) => [0, s],
|
|
4393
|
+
* onBoth: (n, s) => [n - s.length, s]
|
|
4394
|
+
* })
|
|
4395
|
+
*
|
|
4396
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
4397
|
+
* // { _id: "Chunk", values: [ [ 0, "a" ], [ 1, "b" ], [ 2, "c" ], [ 4, "x" ], [ 5, "x" ], [ 6, "x" ] ] }
|
|
4398
|
+
*
|
|
3424
4399
|
* @since 2.0.0
|
|
3425
4400
|
* @category zipping
|
|
3426
4401
|
*/
|
|
@@ -3447,6 +4422,22 @@ export declare const zipAllWith: {
|
|
|
3447
4422
|
* that emitted elements that are not the last value in chunks will never be
|
|
3448
4423
|
* used for zipping.
|
|
3449
4424
|
*
|
|
4425
|
+
* @example
|
|
4426
|
+
* import { Effect, Schedule, Stream } from "effect"
|
|
4427
|
+
*
|
|
4428
|
+
* const s1 = Stream.make(1, 2, 3).pipe(
|
|
4429
|
+
* Stream.schedule(Schedule.spaced("1 second"))
|
|
4430
|
+
* )
|
|
4431
|
+
*
|
|
4432
|
+
* const s2 = Stream.make("a", "b", "c", "d").pipe(
|
|
4433
|
+
* Stream.schedule(Schedule.spaced("500 millis"))
|
|
4434
|
+
* )
|
|
4435
|
+
*
|
|
4436
|
+
* const stream = Stream.zipLatest(s1, s2)
|
|
4437
|
+
*
|
|
4438
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
4439
|
+
* // { _id: "Chunk", values: [ [ 1, "a" ], [ 1, "b" ], [ 2, "b" ], [ 2, "c" ], [ 2, "d" ], [ 3, "d" ] ] }
|
|
4440
|
+
*
|
|
3450
4441
|
* @since 2.0.0
|
|
3451
4442
|
* @category zipping
|
|
3452
4443
|
*/
|
|
@@ -3471,7 +4462,7 @@ export declare const zipLatest: {
|
|
|
3471
4462
|
* Stream.fromSchedule(Schedule.spaced('4 millis')),
|
|
3472
4463
|
* ).pipe(Stream.take(6), Stream.tap(Console.log))
|
|
3473
4464
|
*
|
|
3474
|
-
* Effect.runPromise(Stream.runDrain(stream))
|
|
4465
|
+
* // Effect.runPromise(Stream.runDrain(stream))
|
|
3475
4466
|
* // Output:
|
|
3476
4467
|
* // [ 0, 0, 0 ]
|
|
3477
4468
|
* // [ 1, 0, 0 ]
|
|
@@ -3541,6 +4532,19 @@ export declare const zipRight: {
|
|
|
3541
4532
|
*
|
|
3542
4533
|
* The new stream will end when one of the sides ends.
|
|
3543
4534
|
*
|
|
4535
|
+
* @example
|
|
4536
|
+
* import { Effect, Stream } from "effect"
|
|
4537
|
+
*
|
|
4538
|
+
* // We create two streams and zip them with custom logic.
|
|
4539
|
+
* const stream = Stream.zipWith(
|
|
4540
|
+
* Stream.make(1, 2, 3, 4, 5, 6),
|
|
4541
|
+
* Stream.make("a", "b", "c"),
|
|
4542
|
+
* (n, s) => [n - s.length, s]
|
|
4543
|
+
* )
|
|
4544
|
+
*
|
|
4545
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then(console.log)
|
|
4546
|
+
* // { _id: 'Chunk', values: [ [ 0, 'a' ], [ 1, 'b' ], [ 2, 'c' ] ] }
|
|
4547
|
+
*
|
|
3544
4548
|
* @since 2.0.0
|
|
3545
4549
|
* @category zipping
|
|
3546
4550
|
*/
|
|
@@ -3564,6 +4568,19 @@ export declare const zipWithChunks: {
|
|
|
3564
4568
|
/**
|
|
3565
4569
|
* Zips each element with the next element if present.
|
|
3566
4570
|
*
|
|
4571
|
+
* @example
|
|
4572
|
+
* import { Chunk, Effect, Stream } from "effect"
|
|
4573
|
+
*
|
|
4574
|
+
* const stream = Stream.zipWithNext(Stream.make(1, 2, 3, 4))
|
|
4575
|
+
*
|
|
4576
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
|
|
4577
|
+
* // [
|
|
4578
|
+
* // [ 1, { _id: 'Option', _tag: 'Some', value: 2 } ],
|
|
4579
|
+
* // [ 2, { _id: 'Option', _tag: 'Some', value: 3 } ],
|
|
4580
|
+
* // [ 3, { _id: 'Option', _tag: 'Some', value: 4 } ],
|
|
4581
|
+
* // [ 4, { _id: 'Option', _tag: 'None' } ]
|
|
4582
|
+
* // ]
|
|
4583
|
+
*
|
|
3567
4584
|
* @since 2.0.0
|
|
3568
4585
|
* @category zipping
|
|
3569
4586
|
*/
|
|
@@ -3572,6 +4589,19 @@ export declare const zipWithNext: <A, E, R>(self: Stream<A, E, R>) => Stream<[A,
|
|
|
3572
4589
|
* Zips each element with the previous element. Initially accompanied by
|
|
3573
4590
|
* `None`.
|
|
3574
4591
|
*
|
|
4592
|
+
* @example
|
|
4593
|
+
* import { Chunk, Effect, Stream } from "effect"
|
|
4594
|
+
*
|
|
4595
|
+
* const stream = Stream.zipWithPrevious(Stream.make(1, 2, 3, 4))
|
|
4596
|
+
*
|
|
4597
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
|
|
4598
|
+
* // [
|
|
4599
|
+
* // [ { _id: 'Option', _tag: 'None' }, 1 ],
|
|
4600
|
+
* // [ { _id: 'Option', _tag: 'Some', value: 1 }, 2 ],
|
|
4601
|
+
* // [ { _id: 'Option', _tag: 'Some', value: 2 }, 3 ],
|
|
4602
|
+
* // [ { _id: 'Option', _tag: 'Some', value: 3 }, 4 ]
|
|
4603
|
+
* // ]
|
|
4604
|
+
*
|
|
3575
4605
|
* @since 2.0.0
|
|
3576
4606
|
* @category zipping
|
|
3577
4607
|
*/
|
|
@@ -3579,6 +4609,35 @@ export declare const zipWithPrevious: <A, E, R>(self: Stream<A, E, R>) => Stream
|
|
|
3579
4609
|
/**
|
|
3580
4610
|
* Zips each element with both the previous and next element.
|
|
3581
4611
|
*
|
|
4612
|
+
* @example
|
|
4613
|
+
* import { Chunk, Effect, Stream } from "effect"
|
|
4614
|
+
*
|
|
4615
|
+
* const stream = Stream.zipWithPreviousAndNext(Stream.make(1, 2, 3, 4))
|
|
4616
|
+
*
|
|
4617
|
+
* // Effect.runPromise(Stream.runCollect(stream)).then((chunk) => console.log(Chunk.toArray(chunk)))
|
|
4618
|
+
* // [
|
|
4619
|
+
* // [
|
|
4620
|
+
* // { _id: 'Option', _tag: 'None' },
|
|
4621
|
+
* // 1,
|
|
4622
|
+
* // { _id: 'Option', _tag: 'Some', value: 2 }
|
|
4623
|
+
* // ],
|
|
4624
|
+
* // [
|
|
4625
|
+
* // { _id: 'Option', _tag: 'Some', value: 1 },
|
|
4626
|
+
* // 2,
|
|
4627
|
+
* // { _id: 'Option', _tag: 'Some', value: 3 }
|
|
4628
|
+
* // ],
|
|
4629
|
+
* // [
|
|
4630
|
+
* // { _id: 'Option', _tag: 'Some', value: 2 },
|
|
4631
|
+
* // 3,
|
|
4632
|
+
* // { _id: 'Option', _tag: 'Some', value: 4 }
|
|
4633
|
+
* // ],
|
|
4634
|
+
* // [
|
|
4635
|
+
* // { _id: 'Option', _tag: 'Some', value: 3 },
|
|
4636
|
+
* // 4,
|
|
4637
|
+
* // { _id: 'Option', _tag: 'None' }
|
|
4638
|
+
* // ]
|
|
4639
|
+
* // ]
|
|
4640
|
+
*
|
|
3582
4641
|
* @since 2.0.0
|
|
3583
4642
|
* @category zipping
|
|
3584
4643
|
*/
|
|
@@ -3586,6 +4645,19 @@ export declare const zipWithPreviousAndNext: <A, E, R>(self: Stream<A, E, R>) =>
|
|
|
3586
4645
|
/**
|
|
3587
4646
|
* Zips this stream together with the index of elements.
|
|
3588
4647
|
*
|
|
4648
|
+
* @example
|
|
4649
|
+
* import { Effect, Stream } from "effect"
|
|
4650
|
+
*
|
|
4651
|
+
* const stream = Stream.make("Mary", "James", "Robert", "Patricia")
|
|
4652
|
+
*
|
|
4653
|
+
* const indexedStream = Stream.zipWithIndex(stream)
|
|
4654
|
+
*
|
|
4655
|
+
* // Effect.runPromise(Stream.runCollect(indexedStream)).then(console.log)
|
|
4656
|
+
* // {
|
|
4657
|
+
* // _id: 'Chunk',
|
|
4658
|
+
* // values: [ [ 'Mary', 0 ], [ 'James', 1 ], [ 'Robert', 2 ], [ 'Patricia', 3 ] ]
|
|
4659
|
+
* // }
|
|
4660
|
+
*
|
|
3589
4661
|
* @since 2.0.0
|
|
3590
4662
|
* @category zipping
|
|
3591
4663
|
*/
|