effect 2.0.0-next.55 → 2.0.0-next.57
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/README.md +14 -9
- package/dist/cjs/BigDecimal.js +9 -9
- package/dist/cjs/BigDecimal.js.map +1 -1
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Boolean.js.map +1 -1
- package/dist/cjs/Brand.js.map +1 -1
- package/dist/cjs/Cache.js.map +1 -1
- package/dist/cjs/Cause.js +53 -18
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/ChildExecutorDecision.js.map +1 -1
- package/dist/cjs/Chunk.js +43 -34
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Config.js +3 -3
- package/dist/cjs/Config.js.map +1 -1
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Data.js +11 -20
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Deferred.js.map +1 -1
- package/dist/cjs/Differ.js.map +1 -1
- package/dist/cjs/Duration.js +49 -2
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +10 -8
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +44 -8
- package/dist/cjs/Either.js.map +1 -1
- 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/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/FiberRef.js +6 -1
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/Function.js.map +1 -1
- package/dist/cjs/GlobalValue.js.map +1 -1
- package/dist/cjs/GroupBy.js.map +1 -1
- package/dist/cjs/Hash.js.map +1 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/Inspectable.js +4 -6
- package/dist/cjs/Inspectable.js.map +1 -1
- package/dist/cjs/KeyedPool.js.map +1 -1
- package/dist/cjs/Layer.js +9 -29
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/List.js +25 -22
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/LogLevel.js.map +1 -1
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Match.js.map +1 -1
- package/dist/cjs/MergeDecision.js.map +1 -1
- package/dist/cjs/MergeState.js.map +1 -1
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/MetricHook.js.map +1 -1
- package/dist/cjs/MetricKey.js.map +1 -1
- package/dist/cjs/MetricKeyType.js.map +1 -1
- package/dist/cjs/MetricPair.js.map +1 -1
- package/dist/cjs/MetricPolling.js +2 -2
- package/dist/cjs/MetricPolling.js.map +1 -1
- package/dist/cjs/MetricState.js.map +1 -1
- package/dist/cjs/MutableHashMap.js +1 -1
- package/dist/cjs/MutableHashMap.js.map +1 -1
- package/dist/cjs/MutableHashSet.js +1 -1
- package/dist/cjs/MutableHashSet.js.map +1 -1
- package/dist/cjs/MutableList.js +1 -1
- package/dist/cjs/MutableList.js.map +1 -1
- package/dist/cjs/MutableQueue.js +1 -1
- package/dist/cjs/MutableQueue.js.map +1 -1
- package/dist/cjs/MutableRef.js +1 -1
- package/dist/cjs/MutableRef.js.map +1 -1
- package/dist/cjs/NonEmptyIterable.js.map +1 -1
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js +21 -14
- 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.map +1 -1
- package/dist/cjs/Pipeable.js.map +1 -1
- package/dist/cjs/Pool.js +15 -17
- package/dist/cjs/Pool.js.map +1 -1
- package/dist/cjs/Predicate.js +17 -1
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/PrimaryKey.js +21 -0
- package/dist/cjs/PrimaryKey.js.map +1 -0
- package/dist/cjs/Queue.js +6 -1
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/ReadonlyArray.js +202 -187
- package/dist/cjs/ReadonlyArray.js.map +1 -1
- package/dist/cjs/ReadonlyRecord.js +61 -8
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/RedBlackTree.js.map +1 -1
- package/dist/cjs/Ref.js.map +1 -1
- package/dist/cjs/Reloadable.js.map +1 -1
- package/dist/cjs/Request.js +42 -1
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestBlock.js +5 -24
- package/dist/cjs/RequestBlock.js.map +1 -1
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/cjs/STM.js +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/Scheduler.js.map +1 -1
- package/dist/cjs/ScopedCache.js.map +1 -1
- package/dist/cjs/ScopedRef.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/SortedMap.js +5 -2
- package/dist/cjs/SortedMap.js.map +1 -1
- package/dist/cjs/SortedSet.js +3 -3
- package/dist/cjs/SortedSet.js.map +1 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/Streamable.js +3 -0
- package/dist/cjs/Streamable.js.map +1 -1
- package/dist/cjs/String.js.map +1 -1
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/Supervisor.js.map +1 -1
- package/dist/cjs/SynchronizedRef.js.map +1 -1
- package/dist/cjs/TArray.js.map +1 -1
- package/dist/cjs/TDeferred.js.map +1 -1
- package/dist/cjs/TMap.js.map +1 -1
- package/dist/cjs/TPriorityQueue.js.map +1 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TQueue.js.map +1 -1
- package/dist/cjs/TRef.js.map +1 -1
- package/dist/cjs/TSet.js.map +1 -1
- package/dist/cjs/Take.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +3 -1
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestAnnotationMap.js.map +1 -1
- package/dist/cjs/TestAnnotations.js.map +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/TestContext.js +2 -2
- package/dist/cjs/TestContext.js.map +1 -1
- package/dist/cjs/UpstreamPullRequest.js.map +1 -1
- package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/Iterable.js.map +1 -1
- package/dist/cjs/internal/blockedRequests.js +3 -2
- package/dist/cjs/internal/blockedRequests.js.map +1 -1
- package/dist/cjs/internal/cache.js +3 -0
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/cause.js +5 -104
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/channelState.js +2 -1
- package/dist/cjs/internal/channel/channelState.js.map +1 -1
- package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -1
- package/dist/cjs/internal/channel/continuation.js +9 -1
- package/dist/cjs/internal/channel/continuation.js.map +1 -1
- package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
- package/dist/cjs/internal/channel/mergeState.js.map +1 -1
- package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -1
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/internal/channel/subexecutor.js.map +1 -1
- package/dist/cjs/internal/channel/upstreamPullRequest.js +1 -1
- package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -1
- package/dist/cjs/internal/channel/upstreamPullStrategy.js +1 -1
- package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/concurrency.js.map +1 -1
- package/dist/cjs/internal/config.js +16 -24
- package/dist/cjs/internal/config.js.map +1 -1
- package/dist/cjs/internal/configError.js +2 -2
- package/dist/cjs/internal/configError.js.map +1 -1
- package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +18 -4
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/configSecret.js.map +1 -1
- package/dist/cjs/internal/context.js +5 -5
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +19 -15
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core-stream.js +7 -1
- package/dist/cjs/internal/core-stream.js.map +1 -1
- package/dist/cjs/internal/core.js +203 -85
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js +4 -22
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/dataSource.js +1 -1
- package/dist/cjs/internal/dataSource.js.map +1 -1
- package/dist/cjs/internal/deferred.js +2 -0
- package/dist/cjs/internal/deferred.js.map +1 -1
- package/dist/cjs/internal/differ/chunkPatch.js.map +1 -1
- package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
- package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -1
- package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -1
- package/dist/cjs/internal/differ/orPatch.js.map +1 -1
- package/dist/cjs/internal/differ.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +1 -0
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +38 -7
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/either.js +1 -1
- package/dist/cjs/internal/either.js.map +1 -1
- package/dist/cjs/internal/encoding/base64.js.map +1 -1
- package/dist/cjs/internal/encoding/base64Url.js.map +1 -1
- package/dist/cjs/internal/encoding/common.js.map +1 -1
- package/dist/cjs/internal/encoding/hex.js.map +1 -1
- package/dist/cjs/internal/executionStrategy.js.map +1 -1
- package/dist/cjs/internal/fiber.js +2 -0
- package/dist/cjs/internal/fiber.js.map +1 -1
- package/dist/cjs/internal/fiberId.js +3 -3
- package/dist/cjs/internal/fiberId.js.map +1 -1
- package/dist/cjs/internal/fiberMessage.js.map +1 -1
- package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
- package/dist/cjs/internal/fiberRefs.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +181 -218
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js +4 -1
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/hashMap/array.js.map +1 -1
- package/dist/cjs/internal/hashMap/node.js.map +1 -1
- package/dist/cjs/internal/hashMap.js +2 -2
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/hashSet.js +3 -3
- package/dist/cjs/internal/hashSet.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js +3 -0
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer.js +23 -53
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logger.js +2 -1
- package/dist/cjs/internal/logger.js.map +1 -1
- package/dist/cjs/internal/matcher.js.map +1 -1
- package/dist/cjs/internal/metric/hook.js +2 -1
- package/dist/cjs/internal/metric/hook.js.map +1 -1
- package/dist/cjs/internal/metric/key.js +1 -1
- package/dist/cjs/internal/metric/key.js.map +1 -1
- package/dist/cjs/internal/metric/keyType.js +2 -1
- package/dist/cjs/internal/metric/keyType.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 +7 -7
- package/dist/cjs/internal/metric/polling.js.map +1 -1
- package/dist/cjs/internal/metric/registry.js.map +1 -1
- package/dist/cjs/internal/metric/state.js +1 -1
- package/dist/cjs/internal/metric/state.js.map +1 -1
- package/dist/cjs/internal/metric.js +11 -5
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/opCodes/layer.js +4 -4
- package/dist/cjs/internal/opCodes/layer.js.map +1 -1
- package/dist/cjs/internal/option.js +1 -1
- package/dist/cjs/internal/option.js.map +1 -1
- package/dist/cjs/internal/pool.js +2 -0
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +25 -24
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/query.js +1 -1
- package/dist/cjs/internal/query.js.map +1 -1
- package/dist/cjs/internal/queue.js +14 -3
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/random.js.map +1 -1
- package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
- package/dist/cjs/internal/redBlackTree.js +8 -2
- package/dist/cjs/internal/redBlackTree.js.map +1 -1
- package/dist/cjs/internal/ref.js +1 -0
- package/dist/cjs/internal/ref.js.map +1 -1
- package/dist/cjs/internal/reloadable.js +1 -1
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/request.js +33 -16
- package/dist/cjs/internal/request.js.map +1 -1
- package/dist/cjs/internal/resource.js +4 -3
- package/dist/cjs/internal/resource.js.map +1 -1
- package/dist/cjs/internal/ringBuffer.js.map +1 -1
- package/dist/cjs/internal/runtime.js +3 -4
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/runtimeFlags.js.map +1 -1
- package/dist/cjs/internal/schedule/interval.js.map +1 -1
- package/dist/cjs/internal/schedule/intervals.js.map +1 -1
- package/dist/cjs/internal/schedule.js +12 -8
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/scopedCache.js +5 -2
- package/dist/cjs/internal/scopedCache.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js +1 -0
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/sink.js +6 -2
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js +5 -3
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/stm/journal.js.map +1 -1
- package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tExit.js +2 -1
- package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stm/tArray.js +1 -1
- package/dist/cjs/internal/stm/tArray.js.map +1 -1
- package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
- package/dist/cjs/internal/stm/tMap.js +2 -1
- package/dist/cjs/internal/stm/tMap.js.map +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js +17 -14
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js +8 -7
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tRandom.js.map +1 -1
- package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/cjs/internal/stm/tRef.js +1 -1
- package/dist/cjs/internal/stm/tRef.js.map +1 -1
- package/dist/cjs/internal/stm/tSemaphore.js +2 -2
- package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
- package/dist/cjs/internal/stm/tSet.js +1 -1
- package/dist/cjs/internal/stm/tSet.js.map +1 -1
- package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
- package/dist/cjs/internal/stream/handoff.js +1 -1
- package/dist/cjs/internal/stream/handoff.js.map +1 -1
- package/dist/cjs/internal/stream.js +5 -5
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/string-utils.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js +1 -1
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/supervisor/patch.js.map +1 -1
- package/dist/cjs/internal/supervisor.js +1 -0
- package/dist/cjs/internal/supervisor.js.map +1 -1
- package/dist/cjs/internal/synchronizedRef.js.map +1 -1
- package/dist/cjs/internal/take.js +3 -2
- package/dist/cjs/internal/take.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/BigDecimal.d.ts +5 -5
- package/dist/dts/BigDecimal.d.ts.map +1 -1
- package/dist/dts/Brand.d.ts +4 -4
- package/dist/dts/Brand.d.ts.map +1 -1
- package/dist/dts/Cache.d.ts +18 -16
- package/dist/dts/Cache.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +94 -26
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +12 -11
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +81 -69
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Clock.d.ts +4 -4
- package/dist/dts/Clock.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +20 -19
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/ConfigError.d.ts +7 -7
- package/dist/dts/ConfigError.d.ts.map +1 -1
- package/dist/dts/ConfigProvider.d.ts +3 -3
- package/dist/dts/ConfigProvider.d.ts.map +1 -1
- package/dist/dts/ConfigProviderPathPatch.d.ts +1 -1
- package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
- package/dist/dts/Console.d.ts +36 -36
- package/dist/dts/Console.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +8 -7
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +6 -20
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Deferred.d.ts +5 -4
- package/dist/dts/Deferred.d.ts.map +1 -1
- package/dist/dts/Differ.d.ts +24 -23
- package/dist/dts/Differ.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +12 -1
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +62 -45
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +61 -13
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Equal.d.ts +1 -1
- package/dist/dts/Equal.d.ts.map +1 -1
- package/dist/dts/Equivalence.d.ts +2 -2
- package/dist/dts/Equivalence.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +5 -3
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/Fiber.d.ts +17 -16
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +9 -3
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +7 -6
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/HKT.d.ts +5 -4
- package/dist/dts/HKT.d.ts.map +1 -1
- package/dist/dts/Hash.d.ts +1 -1
- package/dist/dts/Hash.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +6 -4
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/HashSet.d.ts +9 -9
- package/dist/dts/HashSet.d.ts.map +1 -1
- package/dist/dts/Inspectable.d.ts +3 -7
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/KeyedPool.d.ts +8 -7
- package/dist/dts/KeyedPool.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +16 -41
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/List.d.ts +48 -49
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +7 -6
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Match.d.ts +31 -19
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +8 -7
- package/dist/dts/MergeDecision.d.ts.map +1 -1
- package/dist/dts/MergeState.d.ts +5 -5
- package/dist/dts/MergeState.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +11 -10
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricHook.d.ts +7 -6
- package/dist/dts/MetricHook.d.ts.map +1 -1
- package/dist/dts/MetricKey.d.ts +4 -3
- package/dist/dts/MetricKey.d.ts.map +1 -1
- package/dist/dts/MetricKeyType.d.ts +5 -4
- package/dist/dts/MetricKeyType.d.ts.map +1 -1
- package/dist/dts/MetricPair.d.ts +4 -3
- package/dist/dts/MetricPair.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +16 -16
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/MetricRegistry.d.ts +7 -7
- package/dist/dts/MetricRegistry.d.ts.map +1 -1
- package/dist/dts/MetricState.d.ts +6 -5
- package/dist/dts/MetricState.d.ts.map +1 -1
- package/dist/dts/MutableHashMap.d.ts +1 -1
- package/dist/dts/MutableHashMap.d.ts.map +1 -1
- package/dist/dts/MutableHashSet.d.ts +1 -1
- package/dist/dts/MutableHashSet.d.ts.map +1 -1
- package/dist/dts/MutableList.d.ts +1 -1
- package/dist/dts/MutableList.d.ts.map +1 -1
- package/dist/dts/MutableQueue.d.ts +1 -1
- package/dist/dts/MutableQueue.d.ts.map +1 -1
- package/dist/dts/MutableRef.d.ts +1 -1
- package/dist/dts/MutableRef.d.ts.map +1 -1
- package/dist/dts/NonEmptyIterable.d.ts +2 -2
- package/dist/dts/NonEmptyIterable.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +39 -24
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts +2 -2
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/Pipeable.d.ts +21 -23
- package/dist/dts/Pipeable.d.ts.map +1 -1
- package/dist/dts/Pool.d.ts +21 -22
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/Predicate.d.ts +17 -2
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/PrimaryKey.d.ts +21 -0
- package/dist/dts/PrimaryKey.d.ts.map +1 -0
- package/dist/dts/PubSub.d.ts +3 -3
- package/dist/dts/PubSub.d.ts.map +1 -1
- package/dist/dts/Queue.d.ts +49 -29
- package/dist/dts/Queue.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +3 -3
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/ReadonlyArray.d.ts +170 -206
- package/dist/dts/ReadonlyArray.d.ts.map +1 -1
- package/dist/dts/ReadonlyRecord.d.ts +51 -16
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/RedBlackTree.d.ts +6 -2
- package/dist/dts/RedBlackTree.d.ts.map +1 -1
- package/dist/dts/Ref.d.ts +5 -4
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +4 -3
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +63 -11
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestBlock.d.ts +20 -39
- package/dist/dts/RequestBlock.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +7 -6
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +5 -4
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +3 -3
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +13 -12
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +13 -12
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/Scheduler.d.ts +3 -3
- package/dist/dts/Scheduler.d.ts.map +1 -1
- package/dist/dts/ScopedCache.d.ts +13 -12
- package/dist/dts/ScopedCache.d.ts.map +1 -1
- package/dist/dts/ScopedRef.d.ts +4 -3
- package/dist/dts/ScopedRef.d.ts.map +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts +7 -7
- package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +13 -9
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/SortedMap.d.ts +6 -2
- package/dist/dts/SortedMap.d.ts.map +1 -1
- package/dist/dts/SortedSet.d.ts +7 -12
- package/dist/dts/SortedSet.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +32 -23
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/StreamEmit.d.ts +12 -12
- package/dist/dts/StreamEmit.d.ts.map +1 -1
- package/dist/dts/Streamable.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +4 -3
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/Supervisor.d.ts +11 -10
- package/dist/dts/Supervisor.d.ts.map +1 -1
- package/dist/dts/SynchronizedRef.d.ts +5 -4
- package/dist/dts/SynchronizedRef.d.ts.map +1 -1
- package/dist/dts/TArray.d.ts +4 -3
- package/dist/dts/TArray.d.ts.map +1 -1
- package/dist/dts/TDeferred.d.ts +5 -4
- package/dist/dts/TDeferred.d.ts.map +1 -1
- package/dist/dts/TMap.d.ts +5 -4
- package/dist/dts/TMap.d.ts.map +1 -1
- package/dist/dts/TPriorityQueue.d.ts +4 -3
- package/dist/dts/TPriorityQueue.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +5 -1
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +12 -11
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TRandom.d.ts +3 -3
- package/dist/dts/TRandom.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +5 -4
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSet.d.ts +4 -3
- package/dist/dts/TSet.d.ts.map +1 -1
- package/dist/dts/Take.d.ts +5 -4
- package/dist/dts/Take.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts +6 -3
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestAnnotations.d.ts +2 -2
- package/dist/dts/TestAnnotations.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts +3 -3
- package/dist/dts/TestClock.d.ts.map +1 -1
- package/dist/dts/TestContext.d.ts.map +1 -1
- package/dist/dts/TestLive.d.ts +1 -1
- package/dist/dts/TestLive.d.ts.map +1 -1
- package/dist/dts/TestSized.d.ts +1 -1
- package/dist/dts/TestSized.d.ts.map +1 -1
- package/dist/dts/Tracer.d.ts +5 -5
- package/dist/dts/Tracer.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +28 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/UpstreamPullRequest.d.ts +4 -3
- package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
- package/dist/dts/UpstreamPullStrategy.d.ts +5 -4
- package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts +7 -6
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/config.d.ts +1 -2
- package/dist/dts/internal/config.d.ts.map +1 -1
- package/dist/dts/internal/core-stream.d.ts.map +1 -1
- package/dist/dts/internal/fiberScope.d.ts +1 -1
- package/dist/dts/internal/fiberScope.d.ts.map +1 -1
- package/dist/dts/internal/logger.d.ts.map +1 -1
- package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
- package/dist/dts/internal/stream/handoffSignal.d.ts +1 -1
- package/dist/dts/internal/stream/handoffSignal.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/BigDecimal.js +7 -7
- package/dist/esm/BigDecimal.js.map +1 -1
- package/dist/esm/BigInt.js.map +1 -1
- package/dist/esm/Boolean.js.map +1 -1
- package/dist/esm/Brand.js.map +1 -1
- package/dist/esm/Cache.js.map +1 -1
- package/dist/esm/Cause.js +52 -17
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/ChildExecutorDecision.js.map +1 -1
- package/dist/esm/Chunk.js +43 -34
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Config.js +3 -3
- package/dist/esm/Config.js.map +1 -1
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Data.js +10 -19
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Deferred.js.map +1 -1
- package/dist/esm/Differ.js.map +1 -1
- package/dist/esm/Duration.js +48 -2
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +9 -7
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +43 -7
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Equal.js.map +1 -1
- package/dist/esm/Equivalence.js +1 -1
- package/dist/esm/Equivalence.js.map +1 -1
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/FiberRef.js +5 -0
- package/dist/esm/FiberRef.js.map +1 -1
- package/dist/esm/Function.js.map +1 -1
- package/dist/esm/GlobalValue.js.map +1 -1
- package/dist/esm/GroupBy.js.map +1 -1
- package/dist/esm/HKT.js +0 -3
- package/dist/esm/HKT.js.map +1 -1
- package/dist/esm/Hash.js.map +1 -1
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/Inspectable.js +2 -4
- package/dist/esm/Inspectable.js.map +1 -1
- package/dist/esm/KeyedPool.js.map +1 -1
- package/dist/esm/Layer.js +8 -28
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/List.js +25 -22
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/LogLevel.js.map +1 -1
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/MergeDecision.js.map +1 -1
- package/dist/esm/MergeState.js.map +1 -1
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/MetricHook.js.map +1 -1
- package/dist/esm/MetricKey.js.map +1 -1
- package/dist/esm/MetricKeyType.js.map +1 -1
- package/dist/esm/MetricPair.js.map +1 -1
- package/dist/esm/MetricPolling.js +1 -1
- package/dist/esm/MetricPolling.js.map +1 -1
- package/dist/esm/MetricState.js.map +1 -1
- package/dist/esm/MutableHashMap.js +2 -2
- package/dist/esm/MutableHashMap.js.map +1 -1
- package/dist/esm/MutableHashSet.js +2 -2
- package/dist/esm/MutableHashSet.js.map +1 -1
- package/dist/esm/MutableList.js +2 -2
- package/dist/esm/MutableList.js.map +1 -1
- package/dist/esm/MutableQueue.js +2 -2
- package/dist/esm/MutableQueue.js.map +1 -1
- package/dist/esm/MutableRef.js +2 -2
- package/dist/esm/MutableRef.js.map +1 -1
- package/dist/esm/NonEmptyIterable.js.map +1 -1
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js +21 -14
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Order.js +1 -1
- package/dist/esm/Order.js.map +1 -1
- package/dist/esm/Ordering.js.map +1 -1
- package/dist/esm/Pipeable.js.map +1 -1
- package/dist/esm/Pool.js +15 -17
- package/dist/esm/Pool.js.map +1 -1
- package/dist/esm/Predicate.js +15 -0
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/PrimaryKey.js +14 -0
- package/dist/esm/PrimaryKey.js.map +1 -0
- package/dist/esm/Queue.js +5 -0
- package/dist/esm/Queue.js.map +1 -1
- package/dist/esm/ReadonlyArray.js +195 -177
- package/dist/esm/ReadonlyArray.js.map +1 -1
- package/dist/esm/ReadonlyRecord.js +58 -7
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/RedBlackTree.js.map +1 -1
- package/dist/esm/Ref.js.map +1 -1
- package/dist/esm/Reloadable.js.map +1 -1
- package/dist/esm/Request.js +41 -0
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestBlock.js +3 -22
- package/dist/esm/RequestBlock.js.map +1 -1
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Resource.js.map +1 -1
- package/dist/esm/STM.js +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/Scheduler.js.map +1 -1
- package/dist/esm/ScopedCache.js.map +1 -1
- package/dist/esm/ScopedRef.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/SortedMap.js +6 -3
- package/dist/esm/SortedMap.js.map +1 -1
- package/dist/esm/SortedSet.js +4 -4
- package/dist/esm/SortedSet.js.map +1 -1
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/Streamable.js +3 -0
- package/dist/esm/Streamable.js.map +1 -1
- package/dist/esm/String.js.map +1 -1
- package/dist/esm/Struct.js.map +1 -1
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/Supervisor.js.map +1 -1
- package/dist/esm/SynchronizedRef.js.map +1 -1
- package/dist/esm/TArray.js.map +1 -1
- package/dist/esm/TDeferred.js.map +1 -1
- package/dist/esm/TMap.js.map +1 -1
- package/dist/esm/TPriorityQueue.js.map +1 -1
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TQueue.js.map +1 -1
- package/dist/esm/TRef.js.map +1 -1
- package/dist/esm/TSet.js.map +1 -1
- package/dist/esm/Take.js.map +1 -1
- package/dist/esm/TestAnnotation.js +3 -1
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/TestAnnotationMap.js.map +1 -1
- package/dist/esm/TestAnnotations.js.map +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/TestContext.js +2 -2
- package/dist/esm/TestContext.js.map +1 -1
- package/dist/esm/UpstreamPullRequest.js.map +1 -1
- package/dist/esm/UpstreamPullStrategy.js.map +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/Iterable.js.map +1 -1
- package/dist/esm/internal/blockedRequests.js +3 -2
- package/dist/esm/internal/blockedRequests.js.map +1 -1
- package/dist/esm/internal/cache.js +3 -0
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/cause.js +4 -97
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel/channelState.js +2 -1
- package/dist/esm/internal/channel/channelState.js.map +1 -1
- package/dist/esm/internal/channel/childExecutorDecision.js.map +1 -1
- package/dist/esm/internal/channel/continuation.js +9 -1
- package/dist/esm/internal/channel/continuation.js.map +1 -1
- package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
- package/dist/esm/internal/channel/mergeState.js.map +1 -1
- package/dist/esm/internal/channel/mergeStrategy.js.map +1 -1
- package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/esm/internal/channel/subexecutor.js.map +1 -1
- package/dist/esm/internal/channel/upstreamPullRequest.js +1 -1
- package/dist/esm/internal/channel/upstreamPullRequest.js.map +1 -1
- package/dist/esm/internal/channel/upstreamPullStrategy.js +1 -1
- package/dist/esm/internal/channel/upstreamPullStrategy.js.map +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/concurrency.js.map +1 -1
- package/dist/esm/internal/config.js +15 -22
- package/dist/esm/internal/config.js.map +1 -1
- package/dist/esm/internal/configError.js +2 -2
- package/dist/esm/internal/configError.js.map +1 -1
- package/dist/esm/internal/configProvider/pathPatch.js.map +1 -1
- package/dist/esm/internal/configProvider.js +18 -4
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/configSecret.js.map +1 -1
- package/dist/esm/internal/context.js +6 -6
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/core-effect.js +19 -15
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core-stream.js +7 -1
- package/dist/esm/internal/core-stream.js.map +1 -1
- package/dist/esm/internal/core.js +196 -84
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/data.js +3 -21
- package/dist/esm/internal/data.js.map +1 -1
- package/dist/esm/internal/dataSource.js +1 -1
- package/dist/esm/internal/dataSource.js.map +1 -1
- package/dist/esm/internal/deferred.js +2 -0
- package/dist/esm/internal/deferred.js.map +1 -1
- package/dist/esm/internal/differ/chunkPatch.js.map +1 -1
- package/dist/esm/internal/differ/contextPatch.js.map +1 -1
- package/dist/esm/internal/differ/hashMapPatch.js.map +1 -1
- package/dist/esm/internal/differ/hashSetPatch.js.map +1 -1
- package/dist/esm/internal/differ/orPatch.js.map +1 -1
- package/dist/esm/internal/differ.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +1 -0
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/effectable.js +37 -6
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/either.js +2 -2
- package/dist/esm/internal/either.js.map +1 -1
- package/dist/esm/internal/encoding/base64.js.map +1 -1
- package/dist/esm/internal/encoding/base64Url.js.map +1 -1
- package/dist/esm/internal/encoding/common.js.map +1 -1
- package/dist/esm/internal/encoding/hex.js.map +1 -1
- package/dist/esm/internal/executionStrategy.js.map +1 -1
- package/dist/esm/internal/fiber.js +2 -0
- package/dist/esm/internal/fiber.js.map +1 -1
- package/dist/esm/internal/fiberId.js +4 -4
- package/dist/esm/internal/fiberId.js.map +1 -1
- package/dist/esm/internal/fiberMessage.js.map +1 -1
- package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
- package/dist/esm/internal/fiberRefs.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +178 -215
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js +4 -1
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/hashMap/array.js.map +1 -1
- package/dist/esm/internal/hashMap/node.js.map +1 -1
- package/dist/esm/internal/hashMap.js +3 -3
- package/dist/esm/internal/hashMap.js.map +1 -1
- package/dist/esm/internal/hashSet.js +4 -4
- package/dist/esm/internal/hashSet.js.map +1 -1
- package/dist/esm/internal/keyedPool.js +3 -0
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer.js +22 -52
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/logger.js +2 -1
- package/dist/esm/internal/logger.js.map +1 -1
- package/dist/esm/internal/matcher.js.map +1 -1
- package/dist/esm/internal/metric/hook.js +2 -1
- package/dist/esm/internal/metric/hook.js.map +1 -1
- package/dist/esm/internal/metric/key.js +1 -1
- package/dist/esm/internal/metric/key.js.map +1 -1
- package/dist/esm/internal/metric/keyType.js +2 -1
- package/dist/esm/internal/metric/keyType.js.map +1 -1
- package/dist/esm/internal/metric/pair.js +1 -1
- package/dist/esm/internal/metric/pair.js.map +1 -1
- package/dist/esm/internal/metric/polling.js +6 -6
- package/dist/esm/internal/metric/polling.js.map +1 -1
- package/dist/esm/internal/metric/registry.js.map +1 -1
- package/dist/esm/internal/metric/state.js +1 -1
- package/dist/esm/internal/metric/state.js.map +1 -1
- package/dist/esm/internal/metric.js +11 -5
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/opCodes/layer.js +3 -3
- package/dist/esm/internal/opCodes/layer.js.map +1 -1
- package/dist/esm/internal/option.js +2 -2
- package/dist/esm/internal/option.js.map +1 -1
- package/dist/esm/internal/pool.js +2 -0
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/pubsub.js +25 -24
- package/dist/esm/internal/pubsub.js.map +1 -1
- package/dist/esm/internal/query.js +1 -1
- package/dist/esm/internal/query.js.map +1 -1
- package/dist/esm/internal/queue.js +13 -2
- package/dist/esm/internal/queue.js.map +1 -1
- package/dist/esm/internal/random.js.map +1 -1
- package/dist/esm/internal/redBlackTree/iterator.js.map +1 -1
- package/dist/esm/internal/redBlackTree.js +9 -3
- package/dist/esm/internal/redBlackTree.js.map +1 -1
- package/dist/esm/internal/ref.js +1 -0
- package/dist/esm/internal/ref.js.map +1 -1
- package/dist/esm/internal/reloadable.js +1 -1
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/request.js +31 -15
- package/dist/esm/internal/request.js.map +1 -1
- package/dist/esm/internal/resource.js +4 -3
- package/dist/esm/internal/resource.js.map +1 -1
- package/dist/esm/internal/ringBuffer.js.map +1 -1
- package/dist/esm/internal/runtime.js +3 -4
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/runtimeFlags.js.map +1 -1
- package/dist/esm/internal/schedule/interval.js.map +1 -1
- package/dist/esm/internal/schedule/intervals.js.map +1 -1
- package/dist/esm/internal/schedule.js +12 -8
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/scopedCache.js +5 -2
- package/dist/esm/internal/scopedCache.js.map +1 -1
- package/dist/esm/internal/scopedRef.js +1 -0
- package/dist/esm/internal/scopedRef.js.map +1 -1
- package/dist/esm/internal/sink.js +6 -2
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/core.js +5 -3
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/stm/journal.js.map +1 -1
- package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
- package/dist/esm/internal/stm/stm/tExit.js +2 -1
- package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stm/tArray.js +1 -1
- package/dist/esm/internal/stm/tArray.js.map +1 -1
- package/dist/esm/internal/stm/tDeferred.js.map +1 -1
- package/dist/esm/internal/stm/tMap.js +2 -1
- package/dist/esm/internal/stm/tMap.js.map +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/esm/internal/stm/tPubSub.js +17 -14
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js +8 -7
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tRandom.js.map +1 -1
- package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/esm/internal/stm/tRef.js +1 -1
- package/dist/esm/internal/stm/tRef.js.map +1 -1
- package/dist/esm/internal/stm/tSemaphore.js +2 -2
- package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
- package/dist/esm/internal/stm/tSet.js +1 -1
- package/dist/esm/internal/stm/tSet.js.map +1 -1
- package/dist/esm/internal/stream/haltStrategy.js.map +1 -1
- package/dist/esm/internal/stream/handoff.js +1 -1
- package/dist/esm/internal/stream/handoff.js.map +1 -1
- package/dist/esm/internal/stream.js +5 -5
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/string-utils.js.map +1 -1
- package/dist/esm/internal/subscriptionRef.js +1 -1
- package/dist/esm/internal/subscriptionRef.js.map +1 -1
- package/dist/esm/internal/supervisor/patch.js.map +1 -1
- package/dist/esm/internal/supervisor.js +1 -0
- package/dist/esm/internal/supervisor.js.map +1 -1
- package/dist/esm/internal/synchronizedRef.js.map +1 -1
- package/dist/esm/internal/take.js +3 -2
- package/dist/esm/internal/take.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/dist/esm/package.json +1 -1
- package/package.json +10 -2
- package/src/BigDecimal.ts +7 -7
- package/src/Brand.ts +4 -4
- package/src/Cache.ts +18 -19
- package/src/Cause.ts +126 -41
- package/src/Channel.ts +12 -11
- package/src/ChildExecutorDecision.ts +10 -2
- package/src/Chunk.ts +110 -93
- package/src/Clock.ts +4 -4
- package/src/Config.ts +20 -20
- package/src/ConfigError.ts +8 -8
- package/src/ConfigProvider.ts +5 -5
- package/src/ConfigProviderPathPatch.ts +1 -1
- package/src/Console.ts +36 -36
- package/src/Context.ts +8 -7
- package/src/Data.ts +17 -48
- package/src/Deferred.ts +5 -4
- package/src/Differ.ts +24 -23
- package/src/Duration.ts +59 -2
- package/src/Effect.ts +104 -53
- package/src/Either.ts +93 -15
- package/src/Equal.ts +1 -1
- package/src/Equivalence.ts +2 -2
- package/src/Exit.ts +21 -7
- package/src/Fiber.ts +25 -18
- package/src/FiberRef.ts +14 -7
- package/src/GroupBy.ts +7 -6
- package/src/HKT.ts +5 -4
- package/src/Hash.ts +1 -1
- package/src/HashMap.ts +6 -4
- package/src/HashSet.ts +11 -11
- package/src/Inspectable.ts +5 -7
- package/src/KeyedPool.ts +16 -9
- package/src/Layer.ts +21 -58
- package/src/List.ts +68 -65
- package/src/Logger.ts +7 -6
- package/src/Match.ts +61 -49
- package/src/MergeDecision.ts +8 -7
- package/src/MergeState.ts +11 -5
- package/src/Metric.ts +13 -10
- package/src/MetricHook.ts +7 -6
- package/src/MetricKey.ts +4 -3
- package/src/MetricKeyType.ts +5 -4
- package/src/MetricPair.ts +4 -3
- package/src/MetricPolling.ts +22 -22
- package/src/MetricRegistry.ts +9 -9
- package/src/MetricState.ts +8 -5
- package/src/MutableHashMap.ts +3 -3
- package/src/MutableHashSet.ts +3 -3
- package/src/MutableList.ts +3 -3
- package/src/MutableQueue.ts +3 -3
- package/src/MutableRef.ts +3 -3
- package/src/NonEmptyIterable.ts +2 -2
- package/src/Option.ts +50 -29
- package/src/Order.ts +2 -2
- package/src/Pipeable.ts +275 -277
- package/src/Pool.ts +21 -22
- package/src/Predicate.ts +21 -2
- package/src/PrimaryKey.ts +23 -0
- package/src/PubSub.ts +3 -3
- package/src/Queue.ts +55 -32
- package/src/Random.ts +3 -3
- package/src/ReadonlyArray.ts +351 -390
- package/src/ReadonlyRecord.ts +97 -40
- package/src/RedBlackTree.ts +6 -2
- package/src/Ref.ts +5 -4
- package/src/Reloadable.ts +4 -3
- package/src/Request.ts +68 -11
- package/src/RequestBlock.ts +27 -66
- package/src/RequestResolver.ts +7 -6
- package/src/Resource.ts +5 -4
- package/src/Runtime.ts +3 -3
- package/src/STM.ts +27 -15
- package/src/Schedule.ts +14 -13
- package/src/Scheduler.ts +3 -3
- package/src/Scope.ts +3 -3
- package/src/ScopedCache.ts +13 -12
- package/src/ScopedRef.ts +4 -3
- package/src/SingleProducerAsyncInput.ts +7 -7
- package/src/Sink.ts +29 -14
- package/src/SortedMap.ts +12 -5
- package/src/SortedSet.ts +29 -43
- package/src/Stream.ts +75 -33
- package/src/StreamEmit.ts +12 -12
- package/src/Streamable.ts +3 -0
- package/src/SubscriptionRef.ts +6 -3
- package/src/Supervisor.ts +12 -11
- package/src/SynchronizedRef.ts +5 -4
- package/src/TArray.ts +5 -4
- package/src/TDeferred.ts +6 -5
- package/src/TMap.ts +6 -5
- package/src/TPriorityQueue.ts +5 -4
- package/src/TPubSub.ts +7 -3
- package/src/TQueue.ts +12 -11
- package/src/TRandom.ts +3 -3
- package/src/TRef.ts +6 -5
- package/src/TSet.ts +5 -4
- package/src/Take.ts +5 -4
- package/src/TestAnnotation.ts +9 -5
- package/src/TestAnnotations.ts +2 -2
- package/src/TestClock.ts +3 -5
- package/src/TestContext.ts +5 -4
- package/src/TestLive.ts +1 -1
- package/src/TestSized.ts +1 -1
- package/src/Tracer.ts +6 -6
- package/src/Types.ts +32 -0
- package/src/UpstreamPullRequest.ts +12 -5
- package/src/UpstreamPullStrategy.ts +5 -4
- package/src/Utils.ts +7 -6
- package/src/index.ts +5 -0
- package/src/internal/blockedRequests.ts +78 -81
- package/src/internal/cache.ts +15 -12
- package/src/internal/cause.ts +15 -139
- package/src/internal/channel/channelExecutor.ts +1 -1
- package/src/internal/channel/channelState.ts +10 -8
- package/src/internal/channel/continuation.ts +71 -42
- package/src/internal/channel/mergeDecision.ts +1 -1
- package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
- package/src/internal/channel/subexecutor.ts +7 -7
- package/src/internal/channel/upstreamPullRequest.ts +1 -1
- package/src/internal/channel/upstreamPullStrategy.ts +1 -1
- package/src/internal/config.ts +21 -29
- package/src/internal/configError.ts +2 -2
- package/src/internal/configProvider.ts +20 -5
- package/src/internal/context.ts +6 -6
- package/src/internal/core-effect.ts +75 -67
- package/src/internal/core-stream.ts +25 -22
- package/src/internal/core.ts +360 -152
- package/src/internal/data.ts +3 -22
- package/src/internal/dataSource.ts +1 -1
- package/src/internal/deferred.ts +7 -5
- package/src/internal/differ/contextPatch.ts +5 -5
- package/src/internal/differ/orPatch.ts +18 -6
- package/src/internal/effect/circular.ts +4 -3
- package/src/internal/effectable.ts +41 -8
- package/src/internal/either.ts +2 -2
- package/src/internal/fiber.ts +2 -0
- package/src/internal/fiberId.ts +4 -4
- package/src/internal/fiberMessage.ts +1 -4
- package/src/internal/fiberRuntime.ts +242 -284
- package/src/internal/fiberScope.ts +1 -1
- package/src/internal/groupBy.ts +5 -2
- package/src/internal/hashMap/node.ts +5 -5
- package/src/internal/hashMap.ts +25 -24
- package/src/internal/hashSet.ts +20 -22
- package/src/internal/keyedPool.ts +7 -4
- package/src/internal/layer.ts +35 -89
- package/src/internal/logger.ts +2 -1
- package/src/internal/metric/hook.ts +2 -1
- package/src/internal/metric/key.ts +2 -2
- package/src/internal/metric/keyType.ts +2 -1
- package/src/internal/metric/pair.ts +1 -1
- package/src/internal/metric/polling.ts +26 -26
- package/src/internal/metric/state.ts +1 -1
- package/src/internal/metric.ts +12 -5
- package/src/internal/opCodes/layer.ts +6 -6
- package/src/internal/option.ts +2 -2
- package/src/internal/pool.ts +4 -2
- package/src/internal/pubsub.ts +66 -62
- package/src/internal/query.ts +1 -1
- package/src/internal/queue.ts +36 -14
- package/src/internal/redBlackTree/iterator.ts +1 -1
- package/src/internal/redBlackTree/node.ts +1 -1
- package/src/internal/redBlackTree.ts +11 -4
- package/src/internal/ref.ts +2 -1
- package/src/internal/reloadable.ts +2 -2
- package/src/internal/request.ts +53 -14
- package/src/internal/resource.ts +6 -5
- package/src/internal/ringBuffer.ts +1 -1
- package/src/internal/runtime.ts +4 -5
- package/src/internal/schedule.ts +12 -8
- package/src/internal/scopedCache.ts +14 -7
- package/src/internal/scopedRef.ts +2 -1
- package/src/internal/sink.ts +11 -4
- package/src/internal/stack.ts +1 -1
- package/src/internal/stm/core.ts +6 -4
- package/src/internal/stm/stm/stmState.ts +1 -1
- package/src/internal/stm/stm/tExit.ts +8 -6
- package/src/internal/stm/stm/tryCommit.ts +1 -1
- package/src/internal/stm/stm/versioned.ts +1 -1
- package/src/internal/stm/stm.ts +2 -2
- package/src/internal/stm/tArray.ts +3 -3
- package/src/internal/stm/tDeferred.ts +3 -3
- package/src/internal/stm/tMap.ts +5 -4
- package/src/internal/stm/tPriorityQueue.ts +3 -3
- package/src/internal/stm/tPubSub.ts +43 -38
- package/src/internal/stm/tQueue.ts +9 -8
- package/src/internal/stm/tReentrantLock.ts +2 -2
- package/src/internal/stm/tRef.ts +2 -2
- package/src/internal/stm/tSemaphore.ts +2 -2
- package/src/internal/stm/tSet.ts +3 -3
- package/src/internal/stream/debounceState.ts +2 -2
- package/src/internal/stream/handoff.ts +4 -4
- package/src/internal/stream/handoffSignal.ts +2 -2
- package/src/internal/stream/pull.ts +1 -1
- package/src/internal/stream.ts +68 -35
- package/src/internal/subscriptionRef.ts +3 -3
- package/src/internal/supervisor.ts +4 -3
- package/src/internal/take.ts +4 -3
- package/src/internal/version.ts +1 -1
package/src/ReadonlyArray.ts
CHANGED
|
@@ -17,6 +17,7 @@ import * as O from "./Option.js"
|
|
|
17
17
|
import * as Order from "./Order.js"
|
|
18
18
|
import type { Predicate, Refinement } from "./Predicate.js"
|
|
19
19
|
import * as RR from "./ReadonlyRecord.js"
|
|
20
|
+
import * as Tuple from "./Tuple.js"
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* @category type lambdas
|
|
@@ -224,29 +225,30 @@ export const prepend: {
|
|
|
224
225
|
} = dual(2, <A, B>(self: Iterable<A>, head: B): NonEmptyArray<A | B> => [head, ...self])
|
|
225
226
|
|
|
226
227
|
/**
|
|
228
|
+
* Prepends the specified prefix array (or iterable) to the beginning of the specified array (or iterable).
|
|
229
|
+
* If either array is non-empty, the result is also a non-empty array.
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* import * as ReadonlyArray from "effect/ReadonlyArray"
|
|
233
|
+
*
|
|
234
|
+
* assert.deepStrictEqual(
|
|
235
|
+
* ReadonlyArray.prependAll([1, 2], ["a", "b"]),
|
|
236
|
+
* ["a", "b", 1, 2]
|
|
237
|
+
* )
|
|
238
|
+
*
|
|
227
239
|
* @category concatenating
|
|
228
240
|
* @since 2.0.0
|
|
229
241
|
*/
|
|
230
242
|
export const prependAll: {
|
|
231
|
-
<
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
2,
|
|
235
|
-
<A>(self: Iterable<A>, that: Iterable<A>): Array<A> => fromIterable(that).concat(fromIterable(self))
|
|
236
|
-
)
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* @category concatenating
|
|
240
|
-
* @since 2.0.0
|
|
241
|
-
*/
|
|
242
|
-
export const prependAllNonEmpty: {
|
|
243
|
-
<B>(that: NonEmptyReadonlyArray<B>): <A>(self: Iterable<A>) => NonEmptyArray<A | B>
|
|
244
|
-
<B>(that: Iterable<B>): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A | B>
|
|
243
|
+
<S extends ReadonlyArray<any> | Iterable<any>, T extends ReadonlyArray<any> | Iterable<any>>(
|
|
244
|
+
that: T
|
|
245
|
+
): (self: S) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
|
|
245
246
|
<A, B>(self: Iterable<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<A | B>
|
|
246
247
|
<A, B>(self: NonEmptyReadonlyArray<A>, that: Iterable<B>): NonEmptyArray<A | B>
|
|
248
|
+
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<A | B>
|
|
247
249
|
} = dual(
|
|
248
250
|
2,
|
|
249
|
-
<A
|
|
251
|
+
<A>(self: Iterable<A>, that: Iterable<A>): Array<A> => fromIterable(that).concat(fromIterable(self))
|
|
250
252
|
)
|
|
251
253
|
|
|
252
254
|
/**
|
|
@@ -261,29 +263,22 @@ export const append: {
|
|
|
261
263
|
} = dual(2, <A, B>(self: Iterable<A>, last: B): Array<A | B> => [...self, last])
|
|
262
264
|
|
|
263
265
|
/**
|
|
266
|
+
* Concatenates two arrays (or iterables), combining their elements.
|
|
267
|
+
* If either array is non-empty, the result is also a non-empty array.
|
|
268
|
+
*
|
|
264
269
|
* @category concatenating
|
|
265
270
|
* @since 2.0.0
|
|
266
271
|
*/
|
|
267
272
|
export const appendAll: {
|
|
268
|
-
<
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
2,
|
|
272
|
-
<A>(self: Iterable<A>, that: Iterable<A>): Array<A> => fromIterable(self).concat(fromIterable(that))
|
|
273
|
-
)
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* @category concatenating
|
|
277
|
-
* @since 2.0.0
|
|
278
|
-
*/
|
|
279
|
-
export const appendAllNonEmpty: {
|
|
280
|
-
<B>(that: NonEmptyReadonlyArray<B>): <A>(self: Iterable<A>) => NonEmptyArray<A | B>
|
|
281
|
-
<B>(that: Iterable<B>): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A | B>
|
|
273
|
+
<S extends ReadonlyArray<any> | Iterable<any>, T extends ReadonlyArray<any> | Iterable<any>>(
|
|
274
|
+
that: T
|
|
275
|
+
): (self: S) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
|
|
282
276
|
<A, B>(self: Iterable<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<A | B>
|
|
283
277
|
<A, B>(self: NonEmptyReadonlyArray<A>, that: Iterable<B>): NonEmptyArray<A | B>
|
|
278
|
+
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<A | B>
|
|
284
279
|
} = dual(
|
|
285
280
|
2,
|
|
286
|
-
<A
|
|
281
|
+
<A>(self: Iterable<A>, that: Iterable<A>): Array<A> => fromIterable(self).concat(fromIterable(that))
|
|
287
282
|
)
|
|
288
283
|
|
|
289
284
|
/**
|
|
@@ -444,7 +439,7 @@ export const unsafeGet: {
|
|
|
444
439
|
*/
|
|
445
440
|
export const unprepend = <A>(
|
|
446
441
|
self: NonEmptyReadonlyArray<A>
|
|
447
|
-
): [A, Array<A>] => [headNonEmpty(self), tailNonEmpty(self)]
|
|
442
|
+
): [firstElement: A, remainingElements: Array<A>] => [headNonEmpty(self), tailNonEmpty(self)]
|
|
448
443
|
|
|
449
444
|
/**
|
|
450
445
|
* Return a tuple containing a copy of the `NonEmptyReadonlyArray` without its last element, and that last element.
|
|
@@ -454,7 +449,7 @@ export const unprepend = <A>(
|
|
|
454
449
|
*/
|
|
455
450
|
export const unappend = <A>(
|
|
456
451
|
self: NonEmptyReadonlyArray<A>
|
|
457
|
-
): [Array<A>, A] => [initNonEmpty(self), lastNonEmpty(self)]
|
|
452
|
+
): [arrayWithoutLastElement: Array<A>, lastElement: A] => [initNonEmpty(self), lastNonEmpty(self)]
|
|
458
453
|
|
|
459
454
|
/**
|
|
460
455
|
* Get the first element of a `ReadonlyArray`, or `None` if the `ReadonlyArray` is empty.
|
|
@@ -562,11 +557,11 @@ export const takeRight: {
|
|
|
562
557
|
*/
|
|
563
558
|
export const takeWhile: {
|
|
564
559
|
<A, B extends A>(refinement: Refinement<A, B>): (self: Iterable<A>) => Array<B>
|
|
565
|
-
<A>(predicate: Predicate<A>):
|
|
560
|
+
<B extends A, A = B>(predicate: Predicate<A>): (self: Iterable<B>) => Array<B>
|
|
566
561
|
<A, B extends A>(self: Iterable<A>, refinement: Refinement<A, B>): Array<B>
|
|
567
|
-
<
|
|
568
|
-
} = dual(2, <
|
|
569
|
-
const out: Array<
|
|
562
|
+
<A>(self: Iterable<A>, predicate: Predicate<A>): Array<A>
|
|
563
|
+
} = dual(2, <A>(self: Iterable<A>, predicate: Predicate<A>): Array<A> => {
|
|
564
|
+
const out: Array<A> = []
|
|
570
565
|
for (const a of self) {
|
|
571
566
|
if (!predicate(a)) {
|
|
572
567
|
break
|
|
@@ -597,18 +592,15 @@ const spanIndex = <A>(self: Iterable<A>, predicate: Predicate<A>): number => {
|
|
|
597
592
|
* @since 2.0.0
|
|
598
593
|
*/
|
|
599
594
|
export const span: {
|
|
600
|
-
<A, B extends A>(
|
|
601
|
-
refinement: Refinement<A, B>
|
|
602
|
-
): (self: Iterable<A>) => [init: Array<B>, rest: Array<A>]
|
|
603
|
-
<A>(predicate: Predicate<A>): <B extends A>(self: Iterable<B>) => [init: Array<B>, rest: Array<B>]
|
|
604
|
-
<A, B extends A>(
|
|
605
|
-
self: Iterable<A>,
|
|
595
|
+
<C extends A, B extends A, A = C>(
|
|
606
596
|
refinement: Refinement<A, B>
|
|
607
|
-
): [init: Array<B>, rest: Array<
|
|
608
|
-
<B extends A, A>(
|
|
597
|
+
): (self: Iterable<C>) => [init: Array<B>, rest: Array<Exclude<C, B>>]
|
|
598
|
+
<B extends A, A = B>(predicate: Predicate<A>): (self: Iterable<B>) => [init: Array<B>, rest: Array<B>]
|
|
599
|
+
<A, B extends A>(self: Iterable<A>, refinement: Refinement<A, B>): [init: Array<B>, rest: Array<Exclude<A, B>>]
|
|
600
|
+
<A>(self: Iterable<A>, predicate: Predicate<A>): [init: Array<A>, rest: Array<A>]
|
|
609
601
|
} = dual(
|
|
610
602
|
2,
|
|
611
|
-
<
|
|
603
|
+
<A>(self: Iterable<A>, predicate: Predicate<A>): [init: Array<A>, rest: Array<A>] =>
|
|
612
604
|
splitAt(self, spanIndex(self, predicate))
|
|
613
605
|
)
|
|
614
606
|
|
|
@@ -651,14 +643,11 @@ export const dropRight: {
|
|
|
651
643
|
* @since 2.0.0
|
|
652
644
|
*/
|
|
653
645
|
export const dropWhile: {
|
|
654
|
-
<A,
|
|
655
|
-
<A>(
|
|
656
|
-
<A, B extends A>(self: Iterable<A>, refinement: Refinement<A, B>): Array<B>
|
|
657
|
-
<B extends A, A>(self: Iterable<B>, predicate: Predicate<A>): Array<B>
|
|
646
|
+
<B extends A, A = B>(predicate: Predicate<A>): (self: Iterable<B>) => Array<B>
|
|
647
|
+
<A>(self: Iterable<A>, predicate: Predicate<A>): Array<A>
|
|
658
648
|
} = dual(
|
|
659
649
|
2,
|
|
660
|
-
<
|
|
661
|
-
fromIterable(self).slice(spanIndex(self, predicate))
|
|
650
|
+
<A>(self: Iterable<A>, predicate: Predicate<A>): Array<A> => fromIterable(self).slice(spanIndex(self, predicate))
|
|
662
651
|
)
|
|
663
652
|
|
|
664
653
|
/**
|
|
@@ -709,10 +698,10 @@ export const findLastIndex: {
|
|
|
709
698
|
*/
|
|
710
699
|
export const findFirst: {
|
|
711
700
|
<A, B extends A>(refinement: Refinement<A, B>): (self: Iterable<A>) => Option<B>
|
|
712
|
-
<A>(predicate: Predicate<A>):
|
|
701
|
+
<B extends A, A = B>(predicate: Predicate<A>): (self: Iterable<B>) => Option<B>
|
|
713
702
|
<A, B extends A>(self: Iterable<A>, refinement: Refinement<A, B>): Option<B>
|
|
714
|
-
<
|
|
715
|
-
} = dual(2, <
|
|
703
|
+
<A>(self: Iterable<A>, predicate: Predicate<A>): Option<A>
|
|
704
|
+
} = dual(2, <A>(self: Iterable<A>, predicate: Predicate<A>): Option<A> => {
|
|
716
705
|
const input = fromIterable(self)
|
|
717
706
|
for (let i = 0; i < input.length; i++) {
|
|
718
707
|
if (predicate(input[i])) {
|
|
@@ -730,10 +719,10 @@ export const findFirst: {
|
|
|
730
719
|
*/
|
|
731
720
|
export const findLast: {
|
|
732
721
|
<A, B extends A>(refinement: Refinement<A, B>): (self: Iterable<A>) => Option<B>
|
|
733
|
-
<A>(predicate: Predicate<A>):
|
|
722
|
+
<B extends A, A = B>(predicate: Predicate<A>): (self: Iterable<B>) => Option<B>
|
|
734
723
|
<A, B extends A>(self: Iterable<A>, refinement: Refinement<A, B>): Option<B>
|
|
735
|
-
<
|
|
736
|
-
} = dual(2, <
|
|
724
|
+
<A>(self: Iterable<A>, predicate: Predicate<A>): Option<A>
|
|
725
|
+
} = dual(2, <A>(self: Iterable<A>, predicate: Predicate<A>): Option<A> => {
|
|
737
726
|
const input = fromIterable(self)
|
|
738
727
|
for (let i = input.length - 1; i >= 0; i--) {
|
|
739
728
|
if (predicate(input[i])) {
|
|
@@ -843,24 +832,23 @@ export const remove: {
|
|
|
843
832
|
* @category elements
|
|
844
833
|
* @since 2.0.0
|
|
845
834
|
*/
|
|
846
|
-
export const reverse
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
* @since 2.0.0
|
|
851
|
-
*/
|
|
852
|
-
export const reverseNonEmpty = <A>(
|
|
853
|
-
self: NonEmptyReadonlyArray<A>
|
|
854
|
-
): NonEmptyArray<A> => [lastNonEmpty(self), ...self.slice(0, -1).reverse()]
|
|
835
|
+
export const reverse: {
|
|
836
|
+
<A>(self: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
837
|
+
<A>(self: Iterable<A>): Array<A>
|
|
838
|
+
} = (<A>(self: Iterable<A>): Array<A> => Array.from(self).reverse()) as any
|
|
855
839
|
|
|
856
840
|
/**
|
|
857
|
-
*
|
|
841
|
+
* Create a new array with elements sorted in increasing order based on the specified comparator.
|
|
842
|
+
* If the input is a `NonEmptyReadonlyArray`, the output will also be a `NonEmptyReadonlyArray`.
|
|
858
843
|
*
|
|
859
844
|
* @category sorting
|
|
860
845
|
* @since 2.0.0
|
|
861
846
|
*/
|
|
862
847
|
export const sort: {
|
|
863
|
-
<B>(
|
|
848
|
+
<B>(
|
|
849
|
+
O: Order.Order<B>
|
|
850
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
851
|
+
<A extends B, B>(self: NonEmptyReadonlyArray<A>, O: Order.Order<B>): NonEmptyArray<A>
|
|
864
852
|
<A extends B, B>(self: Iterable<A>, O: Order.Order<B>): Array<A>
|
|
865
853
|
} = dual(2, <A extends B, B>(self: Iterable<A>, O: Order.Order<B>): Array<A> => {
|
|
866
854
|
const out = Array.from(self)
|
|
@@ -881,20 +869,6 @@ export const sortWith: {
|
|
|
881
869
|
sort(self, Order.mapInput(order, f))
|
|
882
870
|
)
|
|
883
871
|
|
|
884
|
-
/**
|
|
885
|
-
* Sort the elements of a `NonEmptyReadonlyArray` in increasing order, creating a new `NonEmptyArray`.
|
|
886
|
-
*
|
|
887
|
-
* @category sorting
|
|
888
|
-
* @since 2.0.0
|
|
889
|
-
*/
|
|
890
|
-
export const sortNonEmpty: {
|
|
891
|
-
<B>(O: Order.Order<B>): <A extends B>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A>
|
|
892
|
-
<A extends B, B>(self: NonEmptyReadonlyArray<A>, O: Order.Order<B>): NonEmptyArray<A>
|
|
893
|
-
} = dual(
|
|
894
|
-
2,
|
|
895
|
-
<A extends B, B>(self: NonEmptyReadonlyArray<A>, O: Order.Order<B>): NonEmptyArray<A> => sort(O)(self) as any
|
|
896
|
-
)
|
|
897
|
-
|
|
898
872
|
/**
|
|
899
873
|
* Sort the elements of an `Iterable` in increasing order, where elements are compared
|
|
900
874
|
* using first `orders[0]`, then `orders[1]`, etc...
|
|
@@ -902,85 +876,62 @@ export const sortNonEmpty: {
|
|
|
902
876
|
* @category sorting
|
|
903
877
|
* @since 2.0.0
|
|
904
878
|
*/
|
|
905
|
-
export const sortBy = <B>(...orders: ReadonlyArray<Order.Order<B>>)
|
|
906
|
-
|
|
907
|
-
|
|
879
|
+
export const sortBy = <B>(...orders: ReadonlyArray<Order.Order<B>>): {
|
|
880
|
+
<A extends B>(as: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
881
|
+
<A extends B>(self: Iterable<A>): Array<A>
|
|
882
|
+
} => {
|
|
883
|
+
const sortByAll = sort(Order.combineAll(orders))
|
|
884
|
+
return (<A extends B>(self: Iterable<A>): Array<A> => {
|
|
885
|
+
const input = fromIterable(self)
|
|
886
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
887
|
+
return sortByAll(input)
|
|
888
|
+
}
|
|
889
|
+
return []
|
|
890
|
+
}) as any
|
|
908
891
|
}
|
|
909
892
|
|
|
910
|
-
/**
|
|
911
|
-
* @category sorting
|
|
912
|
-
* @since 2.0.0
|
|
913
|
-
*/
|
|
914
|
-
export const sortByNonEmpty = <B>(
|
|
915
|
-
...orders: ReadonlyArray<Order.Order<B>>
|
|
916
|
-
): <A extends B>(as: NonEmptyReadonlyArray<A>) => NonEmptyArray<A> => sortNonEmpty(Order.combineAll(orders))
|
|
917
|
-
|
|
918
893
|
/**
|
|
919
894
|
* Takes two `Iterable`s and returns an `Array` of corresponding pairs.
|
|
920
895
|
* If one input `Iterable` is short, excess elements of the
|
|
921
896
|
* longer `Iterable` are discarded.
|
|
922
897
|
*
|
|
898
|
+
* @category zipping
|
|
923
899
|
* @since 2.0.0
|
|
924
900
|
*/
|
|
925
901
|
export const zip: {
|
|
902
|
+
<B>(that: NonEmptyReadonlyArray<B>): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<[A, B]>
|
|
926
903
|
<B>(that: Iterable<B>): <A>(self: Iterable<A>) => Array<[A, B]>
|
|
904
|
+
<A, B>(self: NonEmptyReadonlyArray<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<[A, B]>
|
|
927
905
|
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<[A, B]>
|
|
928
906
|
} = dual(
|
|
929
907
|
2,
|
|
930
|
-
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<[A, B]> => zipWith(self, that,
|
|
908
|
+
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<[A, B]> => zipWith(self, that, Tuple.make)
|
|
931
909
|
)
|
|
932
910
|
|
|
933
911
|
/**
|
|
934
912
|
* Apply a function to pairs of elements at the same index in two `Iterable`s, collecting the results in a new `Array`. If one
|
|
935
913
|
* input `Iterable` is short, excess elements of the longer `Iterable` are discarded.
|
|
936
914
|
*
|
|
915
|
+
* @category zipping
|
|
937
916
|
* @since 2.0.0
|
|
938
917
|
*/
|
|
939
918
|
export const zipWith: {
|
|
919
|
+
<B, A, C>(that: NonEmptyReadonlyArray<B>, f: (a: A, b: B) => C): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<C>
|
|
940
920
|
<B, A, C>(that: Iterable<B>, f: (a: A, b: B) => C): (self: Iterable<A>) => Array<C>
|
|
921
|
+
<A, B, C>(self: NonEmptyReadonlyArray<A>, that: NonEmptyReadonlyArray<B>, f: (a: A, b: B) => C): NonEmptyArray<C>
|
|
941
922
|
<B, A, C>(self: Iterable<A>, that: Iterable<B>, f: (a: A, b: B) => C): Array<C>
|
|
942
923
|
} = dual(3, <B, A, C>(self: Iterable<A>, that: Iterable<B>, f: (a: A, b: B) => C): Array<C> => {
|
|
943
924
|
const as = fromIterable(self)
|
|
944
925
|
const bs = fromIterable(that)
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
<B>(that: NonEmptyReadonlyArray<B>): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<[A, B]>
|
|
953
|
-
<A, B>(self: NonEmptyReadonlyArray<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<[A, B]>
|
|
954
|
-
} = dual(
|
|
955
|
-
2,
|
|
956
|
-
<A, B>(self: NonEmptyReadonlyArray<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<[A, B]> =>
|
|
957
|
-
zipNonEmptyWith(self, that, (a, b) => [a, b])
|
|
958
|
-
)
|
|
959
|
-
|
|
960
|
-
/**
|
|
961
|
-
* @since 2.0.0
|
|
962
|
-
*/
|
|
963
|
-
export const zipNonEmptyWith: {
|
|
964
|
-
<B, A, C>(
|
|
965
|
-
that: NonEmptyReadonlyArray<B>,
|
|
966
|
-
f: (a: A, b: B) => C
|
|
967
|
-
): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<C>
|
|
968
|
-
<A, B, C>(
|
|
969
|
-
self: NonEmptyReadonlyArray<A>,
|
|
970
|
-
that: NonEmptyReadonlyArray<B>,
|
|
971
|
-
f: (a: A, b: B) => C
|
|
972
|
-
): NonEmptyArray<C>
|
|
973
|
-
} = dual(3, <A, B, C>(
|
|
974
|
-
self: NonEmptyReadonlyArray<A>,
|
|
975
|
-
that: NonEmptyReadonlyArray<B>,
|
|
976
|
-
f: (a: A, b: B) => C
|
|
977
|
-
): NonEmptyArray<C> => {
|
|
978
|
-
const cs: NonEmptyArray<C> = [f(headNonEmpty(self), headNonEmpty(that))]
|
|
979
|
-
const len = Math.min(self.length, that.length)
|
|
980
|
-
for (let i = 1; i < len; i++) {
|
|
981
|
-
cs[i] = f(self[i], that[i])
|
|
926
|
+
if (isNonEmptyReadonlyArray(as) && isNonEmptyReadonlyArray(bs)) {
|
|
927
|
+
const out: NonEmptyArray<C> = [f(headNonEmpty(as), headNonEmpty(bs))]
|
|
928
|
+
const len = Math.min(as.length, bs.length)
|
|
929
|
+
for (let i = 1; i < len; i++) {
|
|
930
|
+
out[i] = f(as[i], bs[i])
|
|
931
|
+
}
|
|
932
|
+
return out
|
|
982
933
|
}
|
|
983
|
-
return
|
|
934
|
+
return []
|
|
984
935
|
})
|
|
985
936
|
|
|
986
937
|
/**
|
|
@@ -988,57 +939,49 @@ export const zipNonEmptyWith: {
|
|
|
988
939
|
*
|
|
989
940
|
* @since 2.0.0
|
|
990
941
|
*/
|
|
991
|
-
export const unzip
|
|
942
|
+
export const unzip: {
|
|
943
|
+
<A, B>(self: NonEmptyReadonlyArray<readonly [A, B]>): [NonEmptyArray<A>, NonEmptyArray<B>]
|
|
944
|
+
<A, B>(self: Iterable<readonly [A, B]>): [Array<A>, Array<B>]
|
|
945
|
+
} = (<A, B>(self: Iterable<readonly [A, B]>): [Array<A>, Array<B>] => {
|
|
992
946
|
const input = fromIterable(self)
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
): [NonEmptyArray<A>, NonEmptyArray<B>] => {
|
|
1002
|
-
const fa: NonEmptyArray<A> = [self[0][0]]
|
|
1003
|
-
const fb: NonEmptyArray<B> = [self[0][1]]
|
|
1004
|
-
for (let i = 1; i < self.length; i++) {
|
|
1005
|
-
fa[i] = self[i][0]
|
|
1006
|
-
fb[i] = self[i][1]
|
|
947
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
948
|
+
const fa: NonEmptyArray<A> = [input[0][0]]
|
|
949
|
+
const fb: NonEmptyArray<B> = [input[0][1]]
|
|
950
|
+
for (let i = 1; i < input.length; i++) {
|
|
951
|
+
fa[i] = input[i][0]
|
|
952
|
+
fb[i] = input[i][1]
|
|
953
|
+
}
|
|
954
|
+
return [fa, fb]
|
|
1007
955
|
}
|
|
1008
|
-
return [
|
|
1009
|
-
}
|
|
956
|
+
return [[], []]
|
|
957
|
+
}) as any
|
|
1010
958
|
|
|
1011
959
|
/**
|
|
1012
|
-
* Places an element in between members of an `Iterable
|
|
960
|
+
* Places an element in between members of an `Iterable`.
|
|
961
|
+
* If the input is a non-empty array, the result is also a non-empty array.
|
|
1013
962
|
*
|
|
1014
963
|
* @since 2.0.0
|
|
1015
964
|
*/
|
|
1016
965
|
export const intersperse: {
|
|
1017
|
-
<B>(
|
|
966
|
+
<B>(
|
|
967
|
+
middle: B
|
|
968
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
969
|
+
<A, B>(self: NonEmptyReadonlyArray<A>, middle: B): NonEmptyArray<A | B>
|
|
1018
970
|
<A, B>(self: Iterable<A>, middle: B): Array<A | B>
|
|
1019
971
|
} = dual(2, <A, B>(self: Iterable<A>, middle: B): Array<A | B> => {
|
|
1020
972
|
const input = fromIterable(self)
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
export const intersperseNonEmpty: {
|
|
1030
|
-
<B>(middle: B): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A | B>
|
|
1031
|
-
<A, B>(self: NonEmptyReadonlyArray<A>, middle: B): NonEmptyArray<A | B>
|
|
1032
|
-
} = dual(2, <A, B>(self: NonEmptyReadonlyArray<A>, middle: B): NonEmptyArray<A | B> => {
|
|
1033
|
-
const out: NonEmptyArray<A | B> = [headNonEmpty(self)]
|
|
1034
|
-
const tail = tailNonEmpty(self)
|
|
1035
|
-
for (let i = 0; i < tail.length; i++) {
|
|
1036
|
-
if (i < tail.length) {
|
|
1037
|
-
out.push(middle)
|
|
973
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
974
|
+
const out: NonEmptyArray<A | B> = [headNonEmpty(input)]
|
|
975
|
+
const tail = tailNonEmpty(input)
|
|
976
|
+
for (let i = 0; i < tail.length; i++) {
|
|
977
|
+
if (i < tail.length) {
|
|
978
|
+
out.push(middle)
|
|
979
|
+
}
|
|
980
|
+
out.push(tail[i])
|
|
1038
981
|
}
|
|
1039
|
-
out
|
|
982
|
+
return out
|
|
1040
983
|
}
|
|
1041
|
-
return
|
|
984
|
+
return []
|
|
1042
985
|
})
|
|
1043
986
|
|
|
1044
987
|
/**
|
|
@@ -1099,37 +1042,30 @@ export const setNonEmptyLast: {
|
|
|
1099
1042
|
|
|
1100
1043
|
/**
|
|
1101
1044
|
* Rotate an `Iterable` by `n` steps.
|
|
1045
|
+
* If the input is a non-empty array, the result is also a non-empty array.
|
|
1102
1046
|
*
|
|
1103
1047
|
* @since 2.0.0
|
|
1104
1048
|
*/
|
|
1105
1049
|
export const rotate: {
|
|
1106
|
-
(n: number): <
|
|
1050
|
+
(n: number): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
1051
|
+
<A>(self: NonEmptyReadonlyArray<A>, n: number): NonEmptyArray<A>
|
|
1107
1052
|
<A>(self: Iterable<A>, n: number): Array<A>
|
|
1108
1053
|
} = dual(2, <A>(self: Iterable<A>, n: number): Array<A> => {
|
|
1109
1054
|
const input = fromIterable(self)
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
}
|
|
1122
|
-
const len = self.length
|
|
1123
|
-
const m = Math.round(n) % len
|
|
1124
|
-
if (isOutOfBound(Math.abs(m), self) || m === 0) {
|
|
1125
|
-
return copy(self)
|
|
1126
|
-
}
|
|
1127
|
-
if (m < 0) {
|
|
1128
|
-
const [f, s] = splitNonEmptyAt(self, -m)
|
|
1129
|
-
return appendAllNonEmpty(s, f)
|
|
1130
|
-
} else {
|
|
1131
|
-
return rotateNonEmpty(self, m - len)
|
|
1055
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1056
|
+
const len = input.length
|
|
1057
|
+
const m = Math.round(n) % len
|
|
1058
|
+
if (isOutOfBound(Math.abs(m), input) || m === 0) {
|
|
1059
|
+
return copy(input)
|
|
1060
|
+
}
|
|
1061
|
+
if (m < 0) {
|
|
1062
|
+
const [f, s] = splitNonEmptyAt(input, -m)
|
|
1063
|
+
return appendAll(s, f)
|
|
1064
|
+
} else {
|
|
1065
|
+
return rotate(self, m - len)
|
|
1066
|
+
}
|
|
1132
1067
|
}
|
|
1068
|
+
return []
|
|
1133
1069
|
})
|
|
1134
1070
|
|
|
1135
1071
|
/**
|
|
@@ -1164,34 +1100,6 @@ export const contains: {
|
|
|
1164
1100
|
<A>(self: Iterable<A>, a: A): boolean
|
|
1165
1101
|
} = containsWith(_equivalence)
|
|
1166
1102
|
|
|
1167
|
-
/**
|
|
1168
|
-
* Remove duplicates from a `NonEmptyReadonlyArray`, keeping the first occurrence of an element using the provided `isEquivalent` function.
|
|
1169
|
-
*
|
|
1170
|
-
* @since 2.0.0
|
|
1171
|
-
*/
|
|
1172
|
-
export const dedupeNonEmptyWith: {
|
|
1173
|
-
<A>(isEquivalent: (self: A, that: A) => boolean): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A>
|
|
1174
|
-
<A>(self: NonEmptyReadonlyArray<A>, isEquivalent: (self: A, that: A) => boolean): NonEmptyArray<A>
|
|
1175
|
-
} = dual(2, <A>(self: NonEmptyReadonlyArray<A>, isEquivalent: (self: A, that: A) => boolean): NonEmptyArray<A> => {
|
|
1176
|
-
const out: NonEmptyArray<A> = [headNonEmpty(self)]
|
|
1177
|
-
const rest = tailNonEmpty(self)
|
|
1178
|
-
for (const a of rest) {
|
|
1179
|
-
if (out.every((o) => !isEquivalent(a, o))) {
|
|
1180
|
-
out.push(a)
|
|
1181
|
-
}
|
|
1182
|
-
}
|
|
1183
|
-
return out
|
|
1184
|
-
})
|
|
1185
|
-
|
|
1186
|
-
/**
|
|
1187
|
-
* Remove duplicates from a `NonEmptyReadonlyArray`, keeping the first occurrence of an element.
|
|
1188
|
-
*
|
|
1189
|
-
* @since 2.0.0
|
|
1190
|
-
*/
|
|
1191
|
-
export const dedupeNonEmpty: <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A> = dedupeNonEmptyWith(
|
|
1192
|
-
Equal.equivalence()
|
|
1193
|
-
)
|
|
1194
|
-
|
|
1195
1103
|
/**
|
|
1196
1104
|
* A useful recursion pattern for processing an `Iterable` to produce a new `Array`, often used for "chopping" up the input
|
|
1197
1105
|
* `Iterable`. Typically chop is called with some function that will consume an initial prefix of the `Iterable` and produce a
|
|
@@ -1202,7 +1110,11 @@ export const dedupeNonEmpty: <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArra
|
|
|
1202
1110
|
export const chop: {
|
|
1203
1111
|
<A, B>(
|
|
1204
1112
|
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1205
|
-
): (self:
|
|
1113
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
1114
|
+
<A, B>(
|
|
1115
|
+
self: NonEmptyReadonlyArray<A>,
|
|
1116
|
+
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1117
|
+
): NonEmptyArray<B>
|
|
1206
1118
|
<A, B>(
|
|
1207
1119
|
self: Iterable<A>,
|
|
1208
1120
|
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
@@ -1212,55 +1124,40 @@ export const chop: {
|
|
|
1212
1124
|
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1213
1125
|
): Array<B> => {
|
|
1214
1126
|
const input = fromIterable(self)
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
export const chopNonEmpty: {
|
|
1226
|
-
<A, B>(
|
|
1227
|
-
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1228
|
-
): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<B>
|
|
1229
|
-
<A, B>(
|
|
1230
|
-
self: NonEmptyReadonlyArray<A>,
|
|
1231
|
-
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1232
|
-
): NonEmptyArray<B>
|
|
1233
|
-
} = dual(2, <A, B>(
|
|
1234
|
-
self: NonEmptyReadonlyArray<A>,
|
|
1235
|
-
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1236
|
-
): NonEmptyArray<B> => {
|
|
1237
|
-
const [b, rest] = f(self)
|
|
1238
|
-
const out: NonEmptyArray<B> = [b]
|
|
1239
|
-
let next: ReadonlyArray<A> = rest
|
|
1240
|
-
while (readonlyArray.isNonEmptyArray(next)) {
|
|
1241
|
-
const [b, rest] = f(next)
|
|
1242
|
-
out.push(b)
|
|
1243
|
-
next = rest
|
|
1127
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1128
|
+
const [b, rest] = f(input)
|
|
1129
|
+
const out: NonEmptyArray<B> = [b]
|
|
1130
|
+
let next: ReadonlyArray<A> = rest
|
|
1131
|
+
while (readonlyArray.isNonEmptyArray(next)) {
|
|
1132
|
+
const [b, rest] = f(next)
|
|
1133
|
+
out.push(b)
|
|
1134
|
+
next = rest
|
|
1135
|
+
}
|
|
1136
|
+
return out
|
|
1244
1137
|
}
|
|
1245
|
-
return
|
|
1138
|
+
return []
|
|
1246
1139
|
})
|
|
1247
1140
|
|
|
1248
1141
|
/**
|
|
1249
|
-
* Splits an `Iterable` into two
|
|
1142
|
+
* Splits an `Iterable` into two segments, with the first segment containing a maximum of `n` elements.
|
|
1143
|
+
* The value of `n` can be `0`.
|
|
1250
1144
|
*
|
|
1251
1145
|
* @category getters
|
|
1252
1146
|
* @since 2.0.0
|
|
1253
1147
|
*/
|
|
1254
1148
|
export const splitAt: {
|
|
1255
|
-
(n: number): <A>(self: Iterable<A>) => [Array<A>, Array<A>]
|
|
1256
|
-
<A>(self: Iterable<A>, n: number): [Array<A>, Array<A>]
|
|
1149
|
+
(n: number): <A>(self: Iterable<A>) => [beforeIndex: Array<A>, fromIndex: Array<A>]
|
|
1150
|
+
<A>(self: Iterable<A>, n: number): [beforeIndex: Array<A>, fromIndex: Array<A>]
|
|
1257
1151
|
} = dual(2, <A>(self: Iterable<A>, n: number): [Array<A>, Array<A>] => {
|
|
1258
1152
|
const input = Array.from(self)
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1153
|
+
const _n = Math.floor(n)
|
|
1154
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1155
|
+
if (_n >= 1) {
|
|
1156
|
+
return splitNonEmptyAt(input, _n)
|
|
1157
|
+
}
|
|
1158
|
+
return [[], input]
|
|
1159
|
+
}
|
|
1160
|
+
return [input, []]
|
|
1264
1161
|
})
|
|
1265
1162
|
|
|
1266
1163
|
/**
|
|
@@ -1272,19 +1169,20 @@ export const copy: {
|
|
|
1272
1169
|
} = (<A>(self: ReadonlyArray<A>): Array<A> => self.slice()) as any
|
|
1273
1170
|
|
|
1274
1171
|
/**
|
|
1275
|
-
* Splits a `NonEmptyReadonlyArray` into two
|
|
1172
|
+
* Splits a `NonEmptyReadonlyArray` into two segments, with the first segment containing a maximum of `n` elements.
|
|
1173
|
+
* The value of `n` must be `>= 1`.
|
|
1276
1174
|
*
|
|
1277
1175
|
* @category getters
|
|
1278
1176
|
* @since 2.0.0
|
|
1279
1177
|
*/
|
|
1280
1178
|
export const splitNonEmptyAt: {
|
|
1281
|
-
(n: number): <A>(self: NonEmptyReadonlyArray<A>) => [NonEmptyArray<A>, Array<A>]
|
|
1282
|
-
<A>(self: NonEmptyReadonlyArray<A>, n: number): [NonEmptyArray<A>, Array<A>]
|
|
1179
|
+
(n: number): <A>(self: NonEmptyReadonlyArray<A>) => [beforeIndex: NonEmptyArray<A>, fromIndex: Array<A>]
|
|
1180
|
+
<A>(self: NonEmptyReadonlyArray<A>, n: number): [beforeIndex: NonEmptyArray<A>, fromIndex: Array<A>]
|
|
1283
1181
|
} = dual(2, <A>(self: NonEmptyReadonlyArray<A>, n: number): [NonEmptyArray<A>, Array<A>] => {
|
|
1284
|
-
const
|
|
1285
|
-
return
|
|
1182
|
+
const _n = Math.max(1, Math.floor(n))
|
|
1183
|
+
return _n >= self.length ?
|
|
1286
1184
|
[copy(self), []] :
|
|
1287
|
-
[prepend(self.slice(1,
|
|
1185
|
+
[prepend(self.slice(1, _n), headNonEmpty(self)), self.slice(_n)]
|
|
1288
1186
|
})
|
|
1289
1187
|
|
|
1290
1188
|
/**
|
|
@@ -1302,29 +1200,21 @@ export const splitNonEmptyAt: {
|
|
|
1302
1200
|
* @since 2.0.0
|
|
1303
1201
|
*/
|
|
1304
1202
|
export const chunksOf: {
|
|
1305
|
-
(
|
|
1203
|
+
(
|
|
1204
|
+
n: number
|
|
1205
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(
|
|
1206
|
+
self: T
|
|
1207
|
+
) => ReadonlyArray.With<T, NonEmptyArray<ReadonlyArray.Infer<T>>>
|
|
1208
|
+
<A>(self: NonEmptyReadonlyArray<A>, n: number): NonEmptyArray<NonEmptyArray<A>>
|
|
1306
1209
|
<A>(self: Iterable<A>, n: number): Array<NonEmptyArray<A>>
|
|
1307
1210
|
} = dual(2, <A>(self: Iterable<A>, n: number): Array<NonEmptyArray<A>> => {
|
|
1308
1211
|
const input = fromIterable(self)
|
|
1309
|
-
|
|
1212
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1213
|
+
return chop(input, splitNonEmptyAt(n))
|
|
1214
|
+
}
|
|
1215
|
+
return []
|
|
1310
1216
|
})
|
|
1311
1217
|
|
|
1312
|
-
/**
|
|
1313
|
-
* Splits a `NonEmptyReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of
|
|
1314
|
-
* the `NonEmptyReadonlyArray`.
|
|
1315
|
-
*
|
|
1316
|
-
* @category getters
|
|
1317
|
-
* @since 2.0.0
|
|
1318
|
-
*/
|
|
1319
|
-
export const chunksOfNonEmpty: {
|
|
1320
|
-
(n: number): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<NonEmptyArray<A>>
|
|
1321
|
-
<A>(self: NonEmptyReadonlyArray<A>, n: number): NonEmptyArray<NonEmptyArray<A>>
|
|
1322
|
-
} = dual(
|
|
1323
|
-
2,
|
|
1324
|
-
<A>(self: NonEmptyReadonlyArray<A>, n: number): NonEmptyArray<NonEmptyArray<A>> =>
|
|
1325
|
-
chopNonEmpty(self, splitNonEmptyAt(n))
|
|
1326
|
-
)
|
|
1327
|
-
|
|
1328
1218
|
/**
|
|
1329
1219
|
* Group equal, consecutive elements of a `NonEmptyReadonlyArray` into `NonEmptyArray`s using the provided `isEquivalent` function.
|
|
1330
1220
|
*
|
|
@@ -1337,7 +1227,7 @@ export const groupWith: {
|
|
|
1337
1227
|
} = dual(
|
|
1338
1228
|
2,
|
|
1339
1229
|
<A>(self: NonEmptyReadonlyArray<A>, isEquivalent: (self: A, that: A) => boolean): NonEmptyArray<NonEmptyArray<A>> =>
|
|
1340
|
-
|
|
1230
|
+
chop(self, (as) => {
|
|
1341
1231
|
const h = headNonEmpty(as)
|
|
1342
1232
|
const out: NonEmptyArray<A> = [h]
|
|
1343
1233
|
let i = 1
|
|
@@ -1389,53 +1279,48 @@ export const groupBy: {
|
|
|
1389
1279
|
/**
|
|
1390
1280
|
* @since 2.0.0
|
|
1391
1281
|
*/
|
|
1392
|
-
export const unionWith
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1282
|
+
export const unionWith: {
|
|
1283
|
+
<S extends ReadonlyArray<any> | Iterable<any>, T extends ReadonlyArray<any> | Iterable<any>>(
|
|
1284
|
+
that: T,
|
|
1285
|
+
isEquivalent: (self: ReadonlyArray.Infer<S>, that: ReadonlyArray.Infer<T>) => boolean
|
|
1286
|
+
): (self: S) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
|
|
1287
|
+
<A, B>(
|
|
1288
|
+
self: NonEmptyReadonlyArray<A>,
|
|
1289
|
+
that: Iterable<B>,
|
|
1290
|
+
isEquivalent: (self: A, that: B) => boolean
|
|
1291
|
+
): NonEmptyArray<A | B>
|
|
1292
|
+
<A, B>(
|
|
1293
|
+
self: Iterable<A>,
|
|
1294
|
+
that: NonEmptyReadonlyArray<B>,
|
|
1295
|
+
isEquivalent: (self: A, that: B) => boolean
|
|
1296
|
+
): NonEmptyArray<A | B>
|
|
1297
|
+
<A, B>(self: Iterable<A>, that: Iterable<B>, isEquivalent: (self: A, that: B) => boolean): Array<A | B>
|
|
1298
|
+
} = dual(3, <A>(self: Iterable<A>, that: Iterable<A>, isEquivalent: (self: A, that: A) => boolean): Array<A> => {
|
|
1299
|
+
const a = fromIterable(self)
|
|
1300
|
+
const b = fromIterable(that)
|
|
1301
|
+
if (isNonEmptyReadonlyArray(a)) {
|
|
1302
|
+
if (isNonEmptyReadonlyArray(b)) {
|
|
1303
|
+
const dedupe = dedupeWith(isEquivalent)
|
|
1304
|
+
return dedupe(appendAll(a, b))
|
|
1305
|
+
}
|
|
1306
|
+
return a
|
|
1307
|
+
}
|
|
1308
|
+
return b
|
|
1309
|
+
})
|
|
1405
1310
|
|
|
1406
1311
|
/**
|
|
1407
1312
|
* @since 2.0.0
|
|
1408
1313
|
*/
|
|
1409
1314
|
export const union: {
|
|
1410
|
-
<
|
|
1315
|
+
<T extends ReadonlyArray<any> | Iterable<any>>(
|
|
1316
|
+
that: T
|
|
1317
|
+
): <S extends ReadonlyArray<any> | Iterable<any>>(
|
|
1318
|
+
self: S
|
|
1319
|
+
) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
|
|
1320
|
+
<A, B>(self: NonEmptyReadonlyArray<A>, that: ReadonlyArray<B>): NonEmptyArray<A | B>
|
|
1321
|
+
<A, B>(self: ReadonlyArray<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<A | B>
|
|
1411
1322
|
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<A | B>
|
|
1412
|
-
} = unionWith(_equivalence)
|
|
1413
|
-
|
|
1414
|
-
/**
|
|
1415
|
-
* @since 2.0.0
|
|
1416
|
-
*/
|
|
1417
|
-
export const unionNonEmptyWith = <A>(isEquivalent: (self: A, that: A) => boolean): {
|
|
1418
|
-
(that: NonEmptyReadonlyArray<A>): (self: ReadonlyArray<A>) => NonEmptyArray<A>
|
|
1419
|
-
(that: ReadonlyArray<A>): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A>
|
|
1420
|
-
(self: ReadonlyArray<A>, that: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
1421
|
-
(self: NonEmptyReadonlyArray<A>, that: ReadonlyArray<A>): NonEmptyArray<A>
|
|
1422
|
-
} => {
|
|
1423
|
-
const dedupe = dedupeNonEmptyWith(isEquivalent)
|
|
1424
|
-
return dual(
|
|
1425
|
-
2,
|
|
1426
|
-
(self: NonEmptyReadonlyArray<A>, that: ReadonlyArray<A>): NonEmptyArray<A> => dedupe(appendAllNonEmpty(self, that))
|
|
1427
|
-
)
|
|
1428
|
-
}
|
|
1429
|
-
|
|
1430
|
-
/**
|
|
1431
|
-
* @since 2.0.0
|
|
1432
|
-
*/
|
|
1433
|
-
export const unionNonEmpty: {
|
|
1434
|
-
<A>(that: NonEmptyReadonlyArray<A>): (self: ReadonlyArray<A>) => NonEmptyArray<A>
|
|
1435
|
-
<A>(that: ReadonlyArray<A>): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A>
|
|
1436
|
-
<A>(self: ReadonlyArray<A>, that: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
1437
|
-
<A>(self: NonEmptyReadonlyArray<A>, that: ReadonlyArray<A>): NonEmptyArray<A>
|
|
1438
|
-
} = unionNonEmptyWith(_equivalence)
|
|
1323
|
+
} = dual(2, <A, B>(self: Iterable<A>, that: Iterable<B>): Array<A | B> => unionWith(self, that, _equivalence))
|
|
1439
1324
|
|
|
1440
1325
|
/**
|
|
1441
1326
|
* Creates an `Array` of unique values that are included in all given `Iterable`s using the provided `isEquivalent` function.
|
|
@@ -1483,7 +1368,7 @@ export const differenceWith = <A>(isEquivalent: (self: A, that: A) => boolean):
|
|
|
1483
1368
|
}
|
|
1484
1369
|
|
|
1485
1370
|
/**
|
|
1486
|
-
* Creates a `Array` of values not included in the other given `Iterable
|
|
1371
|
+
* Creates a `Array` of values not included in the other given `Iterable`.
|
|
1487
1372
|
* The order and references of result values are determined by the first `Iterable`.
|
|
1488
1373
|
*
|
|
1489
1374
|
* @since 2.0.0
|
|
@@ -1514,13 +1399,24 @@ export declare namespace ReadonlyArray {
|
|
|
1514
1399
|
/**
|
|
1515
1400
|
* @since 2.0.0
|
|
1516
1401
|
*/
|
|
1517
|
-
export type Infer<T extends ReadonlyArray<any>> = T
|
|
1402
|
+
export type Infer<T extends ReadonlyArray<any> | Iterable<any>> = T extends ReadonlyArray<infer A> ? A
|
|
1403
|
+
: T extends Iterable<infer A> ? A
|
|
1404
|
+
: never
|
|
1518
1405
|
|
|
1519
1406
|
/**
|
|
1520
1407
|
* @since 2.0.0
|
|
1521
1408
|
*/
|
|
1522
|
-
export type With<T extends ReadonlyArray<any>, A> = T extends NonEmptyReadonlyArray<any> ?
|
|
1409
|
+
export type With<T extends ReadonlyArray<any> | Iterable<any>, A> = T extends NonEmptyReadonlyArray<any> ?
|
|
1410
|
+
NonEmptyArray<A>
|
|
1523
1411
|
: Array<A>
|
|
1412
|
+
|
|
1413
|
+
/**
|
|
1414
|
+
* @since 2.0.0
|
|
1415
|
+
*/
|
|
1416
|
+
export type With2<S extends ReadonlyArray<any> | Iterable<any>, T extends ReadonlyArray<any> | Iterable<any>, A> =
|
|
1417
|
+
S extends NonEmptyReadonlyArray<any> ? NonEmptyArray<A>
|
|
1418
|
+
: T extends NonEmptyReadonlyArray<any> ? NonEmptyArray<A>
|
|
1419
|
+
: Array<A>
|
|
1524
1420
|
}
|
|
1525
1421
|
|
|
1526
1422
|
/**
|
|
@@ -1535,11 +1431,16 @@ export const map: {
|
|
|
1535
1431
|
} = dual(2, <A, B>(self: ReadonlyArray<A>, f: (a: A, i: number) => B): Array<B> => self.map(f))
|
|
1536
1432
|
|
|
1537
1433
|
/**
|
|
1434
|
+
* Applies a function to each element in an array and returns a new array containing the concatenated mapped elements.
|
|
1435
|
+
*
|
|
1538
1436
|
* @category sequencing
|
|
1539
1437
|
* @since 2.0.0
|
|
1540
1438
|
*/
|
|
1541
1439
|
export const flatMap: {
|
|
1542
|
-
<
|
|
1440
|
+
<S extends ReadonlyArray<any>, T extends ReadonlyArray<any>>(
|
|
1441
|
+
f: (a: ReadonlyArray.Infer<S>, i: number) => T
|
|
1442
|
+
): (self: S) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<T>>
|
|
1443
|
+
<A, B>(self: NonEmptyReadonlyArray<A>, f: (a: A, i: number) => NonEmptyReadonlyArray<B>): NonEmptyArray<B>
|
|
1543
1444
|
<A, B>(self: ReadonlyArray<A>, f: (a: A, i: number) => ReadonlyArray<B>): Array<B>
|
|
1544
1445
|
} = dual(
|
|
1545
1446
|
2,
|
|
@@ -1556,27 +1457,15 @@ export const flatMap: {
|
|
|
1556
1457
|
)
|
|
1557
1458
|
|
|
1558
1459
|
/**
|
|
1460
|
+
* Flattens an array of arrays into a single array by concatenating all arrays.
|
|
1461
|
+
*
|
|
1559
1462
|
* @category sequencing
|
|
1560
1463
|
* @since 2.0.0
|
|
1561
1464
|
*/
|
|
1562
|
-
export const
|
|
1563
|
-
<A
|
|
1564
|
-
<A
|
|
1565
|
-
} = flatMap as any
|
|
1566
|
-
|
|
1567
|
-
/**
|
|
1568
|
-
* @category sequencing
|
|
1569
|
-
* @since 2.0.0
|
|
1570
|
-
*/
|
|
1571
|
-
export const flatten: <A>(self: ReadonlyArray<ReadonlyArray<A>>) => Array<A> = flatMap(identity)
|
|
1572
|
-
|
|
1573
|
-
/**
|
|
1574
|
-
* @category sequencing
|
|
1575
|
-
* @since 2.0.0
|
|
1576
|
-
*/
|
|
1577
|
-
export const flattenNonEmpty: <A>(
|
|
1578
|
-
self: NonEmptyReadonlyArray<NonEmptyReadonlyArray<A>>
|
|
1579
|
-
) => NonEmptyArray<A> = flatMapNonEmpty(identity)
|
|
1465
|
+
export const flatten: {
|
|
1466
|
+
<A>(self: NonEmptyReadonlyArray<NonEmptyReadonlyArray<A>>): NonEmptyArray<A>
|
|
1467
|
+
<A>(self: ReadonlyArray<ReadonlyArray<A>>): Array<A>
|
|
1468
|
+
} = flatMap(identity) as any
|
|
1580
1469
|
|
|
1581
1470
|
/**
|
|
1582
1471
|
* @category filtering
|
|
@@ -1627,11 +1516,11 @@ export const filterMapWhile: {
|
|
|
1627
1516
|
* @since 2.0.0
|
|
1628
1517
|
*/
|
|
1629
1518
|
export const partitionMap: {
|
|
1630
|
-
<A, B, C>(f: (a: A, i: number) => Either<B, C>): (self: Iterable<A>) => [Array<B>, Array<C>]
|
|
1631
|
-
<A, B, C>(self: Iterable<A>, f: (a: A, i: number) => Either<B, C>): [Array<B>, Array<C>]
|
|
1519
|
+
<A, B, C>(f: (a: A, i: number) => Either<B, C>): (self: Iterable<A>) => [left: Array<B>, right: Array<C>]
|
|
1520
|
+
<A, B, C>(self: Iterable<A>, f: (a: A, i: number) => Either<B, C>): [left: Array<B>, right: Array<C>]
|
|
1632
1521
|
} = dual(
|
|
1633
1522
|
2,
|
|
1634
|
-
<A, B, C>(self: Iterable<A>, f: (a: A, i: number) => Either<B, C>): [Array<B>, Array<C>] => {
|
|
1523
|
+
<A, B, C>(self: Iterable<A>, f: (a: A, i: number) => Either<B, C>): [left: Array<B>, right: Array<C>] => {
|
|
1635
1524
|
const left: Array<B> = []
|
|
1636
1525
|
const right: Array<C> = []
|
|
1637
1526
|
const as = fromIterable(self)
|
|
@@ -1648,25 +1537,83 @@ export const partitionMap: {
|
|
|
1648
1537
|
)
|
|
1649
1538
|
|
|
1650
1539
|
/**
|
|
1540
|
+
* Retrieves the `Some` values from an `Iterable` of `Option`s, collecting them into an array.
|
|
1541
|
+
*
|
|
1542
|
+
* @example
|
|
1543
|
+
* import { getSomes } from "effect/ReadonlyArray"
|
|
1544
|
+
* import { some, none } from "effect/Option"
|
|
1545
|
+
*
|
|
1546
|
+
* assert.deepStrictEqual(
|
|
1547
|
+
* getSomes([some(1), none(), some(2)]),
|
|
1548
|
+
* [1, 2]
|
|
1549
|
+
* )
|
|
1550
|
+
*
|
|
1551
|
+
* @category filtering
|
|
1552
|
+
* @since 2.0.0
|
|
1553
|
+
*/
|
|
1554
|
+
export const getSomes: <A>(self: Iterable<Option<A>>) => Array<A> = filterMap(identity)
|
|
1555
|
+
|
|
1556
|
+
/**
|
|
1557
|
+
* Retrieves the `Left` values from an `Iterable` of `Either`s, collecting them into an array.
|
|
1558
|
+
*
|
|
1559
|
+
* @example
|
|
1560
|
+
* import { getLefts } from "effect/ReadonlyArray"
|
|
1561
|
+
* import { right, left } from "effect/Either"
|
|
1562
|
+
*
|
|
1563
|
+
* assert.deepStrictEqual(
|
|
1564
|
+
* getLefts([right(1), left("err"), right(2)]),
|
|
1565
|
+
* ["err"]
|
|
1566
|
+
* )
|
|
1567
|
+
*
|
|
1651
1568
|
* @category filtering
|
|
1652
1569
|
* @since 2.0.0
|
|
1653
1570
|
*/
|
|
1654
|
-
export const
|
|
1571
|
+
export const getLefts = <E, A>(self: Iterable<Either<E, A>>): Array<E> => {
|
|
1572
|
+
const out: Array<E> = []
|
|
1573
|
+
for (const a of self) {
|
|
1574
|
+
if (E.isLeft(a)) {
|
|
1575
|
+
out.push(a.left)
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
return out
|
|
1580
|
+
}
|
|
1581
|
+
|
|
1582
|
+
/**
|
|
1583
|
+
* Retrieves the `Right` values from an `Iterable` of `Either`s, collecting them into an array.
|
|
1584
|
+
*
|
|
1585
|
+
* @example
|
|
1586
|
+
* import { getRights } from "effect/ReadonlyArray"
|
|
1587
|
+
* import { right, left } from "effect/Either"
|
|
1588
|
+
*
|
|
1589
|
+
* assert.deepStrictEqual(
|
|
1590
|
+
* getRights([right(1), left("err"), right(2)]),
|
|
1591
|
+
* [1, 2]
|
|
1592
|
+
* )
|
|
1593
|
+
*
|
|
1594
|
+
* @category filtering
|
|
1595
|
+
* @since 2.0.0
|
|
1596
|
+
*/
|
|
1597
|
+
export const getRights = <E, A>(self: Iterable<Either<E, A>>): Array<A> => {
|
|
1598
|
+
const out: Array<A> = []
|
|
1599
|
+
for (const a of self) {
|
|
1600
|
+
if (E.isRight(a)) {
|
|
1601
|
+
out.push(a.right)
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1605
|
+
return out
|
|
1606
|
+
}
|
|
1655
1607
|
|
|
1656
1608
|
/**
|
|
1657
1609
|
* @category filtering
|
|
1658
1610
|
* @since 2.0.0
|
|
1659
1611
|
*/
|
|
1660
1612
|
export const filter: {
|
|
1661
|
-
<
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
<
|
|
1665
|
-
<C extends A, B extends A, A = C>(
|
|
1666
|
-
self: Iterable<C>,
|
|
1667
|
-
refinement: (a: A, i: number) => a is B
|
|
1668
|
-
): Array<B>
|
|
1669
|
-
<B extends A, A = B>(self: Iterable<B>, predicate: (a: A, i: number) => boolean): Array<B>
|
|
1613
|
+
<A, B extends A>(refinement: (a: A, i: number) => a is B): (self: Iterable<A>) => Array<B>
|
|
1614
|
+
<A, B extends A>(predicate: (b: B, i: number) => boolean): (self: Iterable<A>) => Array<A>
|
|
1615
|
+
<A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Array<B>
|
|
1616
|
+
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
|
|
1670
1617
|
} = dual(
|
|
1671
1618
|
2,
|
|
1672
1619
|
<B extends A, A = B>(self: Iterable<B>, predicate: (a: A, i: number) => boolean): Array<B> => {
|
|
@@ -1682,32 +1629,28 @@ export const filter: {
|
|
|
1682
1629
|
)
|
|
1683
1630
|
|
|
1684
1631
|
/**
|
|
1632
|
+
* Separate elements based on a predicate that also exposes the index of the element.
|
|
1633
|
+
*
|
|
1685
1634
|
* @category filtering
|
|
1686
1635
|
* @since 2.0.0
|
|
1687
1636
|
*/
|
|
1688
1637
|
export const partition: {
|
|
1689
1638
|
<C extends A, B extends A, A = C>(refinement: (a: A, i: number) => a is B): (
|
|
1690
1639
|
self: Iterable<C>
|
|
1691
|
-
) => [Array<C
|
|
1640
|
+
) => [excluded: Array<Exclude<C, B>>, satisfying: Array<B>]
|
|
1692
1641
|
<B extends A, A = B>(
|
|
1693
1642
|
predicate: (a: A, i: number) => boolean
|
|
1694
|
-
): (self: Iterable<B>) => [Array<B>, Array<B>]
|
|
1695
|
-
<
|
|
1696
|
-
self: Iterable<
|
|
1643
|
+
): (self: Iterable<B>) => [excluded: Array<B>, satisfying: Array<B>]
|
|
1644
|
+
<A, B extends A>(
|
|
1645
|
+
self: Iterable<A>,
|
|
1697
1646
|
refinement: (a: A, i: number) => a is B
|
|
1698
|
-
): [Array<
|
|
1699
|
-
<
|
|
1700
|
-
self: Iterable<B>,
|
|
1701
|
-
predicate: (a: A, i: number) => boolean
|
|
1702
|
-
): [Array<B>, Array<B>]
|
|
1647
|
+
): [excluded: Array<Exclude<A, B>>, satisfying: Array<B>]
|
|
1648
|
+
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): [excluded: Array<A>, satisfying: Array<A>]
|
|
1703
1649
|
} = dual(
|
|
1704
1650
|
2,
|
|
1705
|
-
<
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
): [Array<B>, Array<B>] => {
|
|
1709
|
-
const left: Array<B> = []
|
|
1710
|
-
const right: Array<B> = []
|
|
1651
|
+
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): [excluded: Array<A>, satisfying: Array<A>] => {
|
|
1652
|
+
const left: Array<A> = []
|
|
1653
|
+
const right: Array<A> = []
|
|
1711
1654
|
const as = fromIterable(self)
|
|
1712
1655
|
for (let i = 0; i < as.length; i++) {
|
|
1713
1656
|
if (predicate(as[i], i)) {
|
|
@@ -1759,9 +1702,9 @@ export const reduceRight: {
|
|
|
1759
1702
|
* @since 2.0.0
|
|
1760
1703
|
*/
|
|
1761
1704
|
export const liftPredicate: {
|
|
1762
|
-
<
|
|
1763
|
-
<
|
|
1764
|
-
} = <
|
|
1705
|
+
<A, B extends A>(refinement: Refinement<A, B>): (a: A) => Array<B>
|
|
1706
|
+
<A>(predicate: Predicate<A>): <B extends A>(b: B) => Array<B>
|
|
1707
|
+
} = <A>(predicate: Predicate<A>) => <B extends A>(b: B): Array<B> => predicate(b) ? [b] : []
|
|
1765
1708
|
|
|
1766
1709
|
/**
|
|
1767
1710
|
* @category lifting
|
|
@@ -1788,7 +1731,7 @@ export const liftNullable = <A extends Array<unknown>, B>(
|
|
|
1788
1731
|
(...a) => fromNullable(f(...a))
|
|
1789
1732
|
|
|
1790
1733
|
/**
|
|
1791
|
-
* @category
|
|
1734
|
+
* @category sequencing
|
|
1792
1735
|
* @since 2.0.0
|
|
1793
1736
|
*/
|
|
1794
1737
|
export const flatMapNullable: {
|
|
@@ -1836,8 +1779,8 @@ export const every: {
|
|
|
1836
1779
|
* @since 2.0.0
|
|
1837
1780
|
*/
|
|
1838
1781
|
export const some: {
|
|
1839
|
-
<A>(predicate: Predicate<A>):
|
|
1840
|
-
<
|
|
1782
|
+
<B extends A, A = B>(predicate: Predicate<A>): (self: ReadonlyArray<B>) => self is NonEmptyReadonlyArray<B>
|
|
1783
|
+
<A>(self: ReadonlyArray<A>, predicate: Predicate<A>): self is NonEmptyReadonlyArray<A>
|
|
1841
1784
|
} = dual(
|
|
1842
1785
|
2,
|
|
1843
1786
|
<A>(self: ReadonlyArray<A>, predicate: Predicate<A>): self is NonEmptyReadonlyArray<A> => self.some(predicate)
|
|
@@ -1916,27 +1859,45 @@ export const forEach: {
|
|
|
1916
1859
|
} = dual(2, <A>(self: Iterable<A>, f: (a: A, i: number) => void): void => fromIterable(self).forEach((a, i) => f(a, i)))
|
|
1917
1860
|
|
|
1918
1861
|
/**
|
|
1919
|
-
* Remove duplicates from
|
|
1862
|
+
* Remove duplicates from an `Iterable` using the provided `isEquivalent` function,
|
|
1863
|
+
* preserving the order of the first occurrence of each element.
|
|
1920
1864
|
*
|
|
1921
1865
|
* @since 2.0.0
|
|
1922
1866
|
*/
|
|
1923
1867
|
export const dedupeWith: {
|
|
1924
|
-
<A>(
|
|
1868
|
+
<A>(
|
|
1869
|
+
isEquivalent: (self: A, that: A) => boolean
|
|
1870
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
1871
|
+
<A>(self: NonEmptyReadonlyArray<A>, isEquivalent: (self: A, that: A) => boolean): NonEmptyArray<A>
|
|
1925
1872
|
<A>(self: Iterable<A>, isEquivalent: (self: A, that: A) => boolean): Array<A>
|
|
1926
1873
|
} = dual(
|
|
1927
1874
|
2,
|
|
1928
1875
|
<A>(self: Iterable<A>, isEquivalent: (self: A, that: A) => boolean): Array<A> => {
|
|
1929
1876
|
const input = fromIterable(self)
|
|
1930
|
-
|
|
1877
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1878
|
+
const out: NonEmptyArray<A> = [headNonEmpty(input)]
|
|
1879
|
+
const rest = tailNonEmpty(input)
|
|
1880
|
+
for (const r of rest) {
|
|
1881
|
+
if (out.every((a) => !isEquivalent(r, a))) {
|
|
1882
|
+
out.push(r)
|
|
1883
|
+
}
|
|
1884
|
+
}
|
|
1885
|
+
return out
|
|
1886
|
+
}
|
|
1887
|
+
return []
|
|
1931
1888
|
}
|
|
1932
1889
|
)
|
|
1933
1890
|
|
|
1934
1891
|
/**
|
|
1935
|
-
* Remove duplicates from
|
|
1892
|
+
* Remove duplicates from an `Iterable`, preserving the order of the first occurrence of each element.
|
|
1893
|
+
* The equivalence used to compare elements is provided by `Equal.equivalence()` from the `Equal` module.
|
|
1936
1894
|
*
|
|
1937
1895
|
* @since 2.0.0
|
|
1938
1896
|
*/
|
|
1939
|
-
export const dedupe:
|
|
1897
|
+
export const dedupe: {
|
|
1898
|
+
<A>(self: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
1899
|
+
<A>(self: Iterable<A>): Array<A>
|
|
1900
|
+
} = dedupeWith(Equal.equivalence()) as any
|
|
1940
1901
|
|
|
1941
1902
|
/**
|
|
1942
1903
|
* Deduplicates adjacent elements that are identical using the provided `isEquivalent` function.
|
|
@@ -1983,9 +1944,9 @@ export const join: {
|
|
|
1983
1944
|
* @category folding
|
|
1984
1945
|
*/
|
|
1985
1946
|
export const mapAccum: {
|
|
1986
|
-
<S, A, B>(s: S, f: (s: S, a: A) => readonly [S, B]): (self: Iterable<A>) => [S, Array<B>]
|
|
1987
|
-
<S, A, B>(self: Iterable<A>, s: S, f: (s: S, a: A) => readonly [S, B]): [S, Array<B>]
|
|
1988
|
-
} = dual(3, <S, A, B>(self: Iterable<A>, s: S, f: (s: S, a: A) => [S, B]) => {
|
|
1947
|
+
<S, A, B>(s: S, f: (s: S, a: A) => readonly [S, B]): (self: Iterable<A>) => [state: S, mappedArray: Array<B>]
|
|
1948
|
+
<S, A, B>(self: Iterable<A>, s: S, f: (s: S, a: A) => readonly [S, B]): [state: S, mappedArray: Array<B>]
|
|
1949
|
+
} = dual(3, <S, A, B>(self: Iterable<A>, s: S, f: (s: S, a: A) => [S, B]): [state: S, mappedArray: Array<B>] => {
|
|
1989
1950
|
let s1 = s
|
|
1990
1951
|
const out: Array<B> = []
|
|
1991
1952
|
for (const a of self) {
|