@clayroach/effect 3.19.14-source-capture.6 → 3.19.14-source-capture.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Utils.js +1 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/clock.js +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/esm/Utils.js +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/internal/clock.js +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/package.json +1 -1
- package/src/Arbitrary.ts +0 -1101
- package/src/Array.ts +0 -3589
- package/src/BigDecimal.ts +0 -1349
- package/src/BigInt.ts +0 -643
- package/src/Boolean.ts +0 -287
- package/src/Brand.ts +0 -360
- package/src/Cache.ts +0 -281
- package/src/Cause.ts +0 -1555
- package/src/Channel.ts +0 -2355
- package/src/ChildExecutorDecision.ts +0 -146
- package/src/Chunk.ts +0 -1495
- package/src/Clock.ts +0 -111
- package/src/Config.ts +0 -542
- package/src/ConfigError.ts +0 -270
- package/src/ConfigProvider.ts +0 -333
- package/src/ConfigProviderPathPatch.ts +0 -100
- package/src/Console.ts +0 -226
- package/src/Context.ts +0 -585
- package/src/Cron.ts +0 -706
- package/src/Data.ts +0 -596
- package/src/DateTime.ts +0 -1686
- package/src/DefaultServices.ts +0 -34
- package/src/Deferred.ts +0 -301
- package/src/Differ.ts +0 -450
- package/src/Duration.ts +0 -1000
- package/src/Effect.ts +0 -14839
- package/src/Effectable.ts +0 -107
- package/src/Either.ts +0 -1040
- package/src/Encoding.ts +0 -195
- package/src/Equal.ts +0 -98
- package/src/Equivalence.ts +0 -235
- package/src/ExecutionPlan.ts +0 -308
- package/src/ExecutionStrategy.ts +0 -119
- package/src/Exit.ts +0 -467
- package/src/FastCheck.ts +0 -9
- package/src/Fiber.ts +0 -744
- package/src/FiberHandle.ts +0 -540
- package/src/FiberId.ts +0 -195
- package/src/FiberMap.ts +0 -656
- package/src/FiberRef.ts +0 -431
- package/src/FiberRefs.ts +0 -204
- package/src/FiberRefsPatch.ts +0 -105
- package/src/FiberSet.ts +0 -491
- package/src/FiberStatus.ts +0 -108
- package/src/Function.ts +0 -1222
- package/src/GlobalValue.ts +0 -53
- package/src/Graph.ts +0 -3732
- package/src/GroupBy.ts +0 -103
- package/src/HKT.ts +0 -45
- package/src/Hash.ts +0 -195
- package/src/HashMap.ts +0 -519
- package/src/HashRing.ts +0 -317
- package/src/HashSet.ts +0 -2346
- package/src/Inspectable.ts +0 -287
- package/src/Iterable.ts +0 -1119
- package/src/JSONSchema.ts +0 -1044
- package/src/KeyedPool.ts +0 -167
- package/src/Layer.ts +0 -1251
- package/src/LayerMap.ts +0 -436
- package/src/List.ts +0 -977
- package/src/LogLevel.ts +0 -285
- package/src/LogSpan.ts +0 -25
- package/src/Logger.ts +0 -702
- package/src/Mailbox.ts +0 -268
- package/src/ManagedRuntime.ts +0 -180
- package/src/Match.ts +0 -1477
- package/src/MergeDecision.ts +0 -95
- package/src/MergeState.ts +0 -172
- package/src/MergeStrategy.ts +0 -107
- package/src/Metric.ts +0 -780
- package/src/MetricBoundaries.ts +0 -69
- package/src/MetricHook.ts +0 -151
- package/src/MetricKey.ts +0 -224
- package/src/MetricKeyType.ts +0 -262
- package/src/MetricLabel.ts +0 -47
- package/src/MetricPair.ts +0 -71
- package/src/MetricPolling.ts +0 -148
- package/src/MetricRegistry.ts +0 -48
- package/src/MetricState.ts +0 -257
- package/src/Micro.ts +0 -4405
- package/src/ModuleVersion.ts +0 -18
- package/src/MutableHashMap.ts +0 -411
- package/src/MutableHashSet.ts +0 -706
- package/src/MutableList.ts +0 -297
- package/src/MutableQueue.ts +0 -227
- package/src/MutableRef.ts +0 -202
- package/src/NonEmptyIterable.ts +0 -32
- package/src/Number.ts +0 -1071
- package/src/Option.ts +0 -2170
- package/src/Order.ts +0 -373
- package/src/Ordering.ts +0 -111
- package/src/ParseResult.ts +0 -2031
- package/src/PartitionedSemaphore.ts +0 -200
- package/src/Pipeable.ts +0 -566
- package/src/Pool.ts +0 -204
- package/src/Predicate.ts +0 -1405
- package/src/Pretty.ts +0 -205
- package/src/PrimaryKey.ts +0 -23
- package/src/PubSub.ts +0 -182
- package/src/Queue.ts +0 -644
- package/src/Random.ts +0 -204
- package/src/RateLimiter.ts +0 -138
- package/src/RcMap.ts +0 -141
- package/src/RcRef.ts +0 -122
- package/src/Readable.ts +0 -93
- package/src/Record.ts +0 -1274
- package/src/RedBlackTree.ts +0 -421
- package/src/Redacted.ts +0 -144
- package/src/Ref.ts +0 -180
- package/src/RegExp.ts +0 -38
- package/src/Reloadable.ts +0 -127
- package/src/Request.ts +0 -347
- package/src/RequestBlock.ts +0 -118
- package/src/RequestResolver.ts +0 -366
- package/src/Resource.ts +0 -119
- package/src/Runtime.ts +0 -383
- package/src/RuntimeFlags.ts +0 -368
- package/src/RuntimeFlagsPatch.ts +0 -183
- package/src/STM.ts +0 -2045
- package/src/Schedule.ts +0 -2219
- package/src/ScheduleDecision.ts +0 -62
- package/src/ScheduleInterval.ts +0 -151
- package/src/ScheduleIntervals.ts +0 -122
- package/src/Scheduler.ts +0 -353
- package/src/Schema.ts +0 -10914
- package/src/SchemaAST.ts +0 -3043
- package/src/Scope.ts +0 -204
- package/src/ScopedCache.ts +0 -151
- package/src/ScopedRef.ts +0 -117
- package/src/Secret.ts +0 -88
- package/src/SingleProducerAsyncInput.ts +0 -67
- package/src/Sink.ts +0 -1461
- package/src/SortedMap.ts +0 -287
- package/src/SortedSet.ts +0 -390
- package/src/Stream.ts +0 -6468
- package/src/StreamEmit.ts +0 -136
- package/src/StreamHaltStrategy.ts +0 -123
- package/src/Streamable.ts +0 -45
- package/src/String.ts +0 -778
- package/src/Struct.ts +0 -243
- package/src/Subscribable.ts +0 -100
- package/src/SubscriptionRef.ts +0 -298
- package/src/Supervisor.ts +0 -240
- package/src/Symbol.ts +0 -29
- package/src/SynchronizedRef.ts +0 -270
- package/src/TArray.ts +0 -495
- package/src/TDeferred.ts +0 -100
- package/src/TMap.ts +0 -515
- package/src/TPriorityQueue.ts +0 -223
- package/src/TPubSub.ts +0 -200
- package/src/TQueue.ts +0 -432
- package/src/TRandom.ts +0 -129
- package/src/TReentrantLock.ts +0 -224
- package/src/TRef.ts +0 -178
- package/src/TSemaphore.ts +0 -129
- package/src/TSet.ts +0 -365
- package/src/TSubscriptionRef.ts +0 -192
- package/src/Take.ts +0 -258
- package/src/TestAnnotation.ts +0 -158
- package/src/TestAnnotationMap.ts +0 -119
- package/src/TestAnnotations.ts +0 -117
- package/src/TestClock.ts +0 -556
- package/src/TestConfig.ts +0 -47
- package/src/TestContext.ts +0 -36
- package/src/TestLive.ts +0 -53
- package/src/TestServices.ts +0 -390
- package/src/TestSized.ts +0 -55
- package/src/Tracer.ts +0 -198
- package/src/Trie.ts +0 -840
- package/src/Tuple.ts +0 -305
- package/src/Types.ts +0 -353
- package/src/Unify.ts +0 -113
- package/src/UpstreamPullRequest.ts +0 -117
- package/src/UpstreamPullStrategy.ts +0 -121
- package/src/Utils.ts +0 -809
- package/src/index.ts +0 -1561
- package/src/internal/array.ts +0 -8
- package/src/internal/blockedRequests.ts +0 -520
- package/src/internal/cache.ts +0 -733
- package/src/internal/cause.ts +0 -1050
- package/src/internal/channel/channelExecutor.ts +0 -1200
- package/src/internal/channel/channelState.ts +0 -134
- package/src/internal/channel/childExecutorDecision.ts +0 -96
- package/src/internal/channel/continuation.ts +0 -200
- package/src/internal/channel/mergeDecision.ts +0 -113
- package/src/internal/channel/mergeState.ts +0 -120
- package/src/internal/channel/mergeStrategy.ts +0 -72
- package/src/internal/channel/singleProducerAsyncInput.ts +0 -259
- package/src/internal/channel/subexecutor.ts +0 -229
- package/src/internal/channel/upstreamPullRequest.ts +0 -84
- package/src/internal/channel/upstreamPullStrategy.ts +0 -87
- package/src/internal/channel.ts +0 -2603
- package/src/internal/clock.ts +0 -95
- package/src/internal/completedRequestMap.ts +0 -9
- package/src/internal/concurrency.ts +0 -54
- package/src/internal/config.ts +0 -716
- package/src/internal/configError.ts +0 -304
- package/src/internal/configProvider/pathPatch.ts +0 -97
- package/src/internal/configProvider.ts +0 -799
- package/src/internal/console.ts +0 -153
- package/src/internal/context.ts +0 -337
- package/src/internal/core-effect.ts +0 -2293
- package/src/internal/core-stream.ts +0 -998
- package/src/internal/core.ts +0 -3273
- package/src/internal/data.ts +0 -36
- package/src/internal/dataSource.ts +0 -327
- package/src/internal/dateTime.ts +0 -1277
- package/src/internal/defaultServices/console.ts +0 -100
- package/src/internal/defaultServices.ts +0 -163
- package/src/internal/deferred.ts +0 -46
- package/src/internal/differ/chunkPatch.ts +0 -211
- package/src/internal/differ/contextPatch.ts +0 -232
- package/src/internal/differ/hashMapPatch.ts +0 -220
- package/src/internal/differ/hashSetPatch.ts +0 -176
- package/src/internal/differ/orPatch.ts +0 -311
- package/src/internal/differ/readonlyArrayPatch.ts +0 -210
- package/src/internal/differ.ts +0 -200
- package/src/internal/doNotation.ts +0 -80
- package/src/internal/effect/circular.ts +0 -905
- package/src/internal/effectable.ts +0 -131
- package/src/internal/either.ts +0 -110
- package/src/internal/encoding/base64.ts +0 -286
- package/src/internal/encoding/base64Url.ts +0 -29
- package/src/internal/encoding/common.ts +0 -51
- package/src/internal/encoding/hex.ts +0 -315
- package/src/internal/errors.ts +0 -7
- package/src/internal/executionPlan.ts +0 -114
- package/src/internal/executionStrategy.ts +0 -74
- package/src/internal/fiber.ts +0 -388
- package/src/internal/fiberId.ts +0 -267
- package/src/internal/fiberMessage.ts +0 -82
- package/src/internal/fiberRefs/patch.ts +0 -144
- package/src/internal/fiberRefs.ts +0 -297
- package/src/internal/fiberRuntime.ts +0 -3915
- package/src/internal/fiberScope.ts +0 -71
- package/src/internal/fiberStatus.ts +0 -119
- package/src/internal/groupBy.ts +0 -530
- package/src/internal/hashMap/array.ts +0 -49
- package/src/internal/hashMap/bitwise.ts +0 -32
- package/src/internal/hashMap/config.ts +0 -14
- package/src/internal/hashMap/keySet.ts +0 -8
- package/src/internal/hashMap/node.ts +0 -391
- package/src/internal/hashMap.ts +0 -586
- package/src/internal/hashSet.ts +0 -323
- package/src/internal/keyedPool.ts +0 -244
- package/src/internal/layer/circular.ts +0 -228
- package/src/internal/layer.ts +0 -1487
- package/src/internal/logSpan.ts +0 -20
- package/src/internal/logger-circular.ts +0 -24
- package/src/internal/logger.ts +0 -485
- package/src/internal/mailbox.ts +0 -561
- package/src/internal/managedRuntime/circular.ts +0 -6
- package/src/internal/managedRuntime.ts +0 -134
- package/src/internal/matcher.ts +0 -652
- package/src/internal/metric/boundaries.ts +0 -75
- package/src/internal/metric/hook.ts +0 -483
- package/src/internal/metric/key.ts +0 -167
- package/src/internal/metric/keyType.ts +0 -238
- package/src/internal/metric/label.ts +0 -41
- package/src/internal/metric/pair.ts +0 -48
- package/src/internal/metric/polling.ts +0 -149
- package/src/internal/metric/registry.ts +0 -187
- package/src/internal/metric/state.ts +0 -290
- package/src/internal/metric.ts +0 -577
- package/src/internal/opCodes/cause.ts +0 -35
- package/src/internal/opCodes/channel.ts +0 -83
- package/src/internal/opCodes/channelChildExecutorDecision.ts +0 -17
- package/src/internal/opCodes/channelMergeDecision.ts +0 -11
- package/src/internal/opCodes/channelMergeState.ts +0 -17
- package/src/internal/opCodes/channelMergeStrategy.ts +0 -11
- package/src/internal/opCodes/channelState.ts +0 -23
- package/src/internal/opCodes/channelUpstreamPullRequest.ts +0 -11
- package/src/internal/opCodes/channelUpstreamPullStrategy.ts +0 -11
- package/src/internal/opCodes/config.ts +0 -65
- package/src/internal/opCodes/configError.ts +0 -35
- package/src/internal/opCodes/continuation.ts +0 -11
- package/src/internal/opCodes/deferred.ts +0 -11
- package/src/internal/opCodes/effect.ts +0 -89
- package/src/internal/opCodes/layer.ts +0 -59
- package/src/internal/opCodes/streamHaltStrategy.ts +0 -23
- package/src/internal/option.ts +0 -80
- package/src/internal/pool.ts +0 -432
- package/src/internal/pubsub.ts +0 -1762
- package/src/internal/query.ts +0 -204
- package/src/internal/queue.ts +0 -766
- package/src/internal/random.ts +0 -161
- package/src/internal/rateLimiter.ts +0 -93
- package/src/internal/rcMap.ts +0 -285
- package/src/internal/rcRef.ts +0 -192
- package/src/internal/redBlackTree/iterator.ts +0 -200
- package/src/internal/redBlackTree/node.ts +0 -68
- package/src/internal/redBlackTree.ts +0 -1245
- package/src/internal/redacted.ts +0 -73
- package/src/internal/ref.ts +0 -171
- package/src/internal/reloadable.ts +0 -140
- package/src/internal/request.ts +0 -177
- package/src/internal/resource.ts +0 -76
- package/src/internal/ringBuffer.ts +0 -68
- package/src/internal/runtime.ts +0 -558
- package/src/internal/runtimeFlags.ts +0 -188
- package/src/internal/runtimeFlagsPatch.ts +0 -103
- package/src/internal/schedule/decision.ts +0 -47
- package/src/internal/schedule/interval.ts +0 -101
- package/src/internal/schedule/intervals.ts +0 -180
- package/src/internal/schedule.ts +0 -2199
- package/src/internal/schema/errors.ts +0 -191
- package/src/internal/schema/schemaId.ts +0 -106
- package/src/internal/schema/util.ts +0 -50
- package/src/internal/scopedCache.ts +0 -644
- package/src/internal/scopedRef.ts +0 -118
- package/src/internal/secret.ts +0 -89
- package/src/internal/singleShotGen.ts +0 -35
- package/src/internal/sink.ts +0 -2120
- package/src/internal/stack.ts +0 -10
- package/src/internal/stm/core.ts +0 -817
- package/src/internal/stm/entry.ts +0 -59
- package/src/internal/stm/journal.ts +0 -123
- package/src/internal/stm/opCodes/stm.ts +0 -71
- package/src/internal/stm/opCodes/stmState.ts +0 -17
- package/src/internal/stm/opCodes/strategy.ts +0 -17
- package/src/internal/stm/opCodes/tExit.ts +0 -29
- package/src/internal/stm/opCodes/tryCommit.ts +0 -11
- package/src/internal/stm/stm.ts +0 -1453
- package/src/internal/stm/stmState.ts +0 -136
- package/src/internal/stm/tArray.ts +0 -550
- package/src/internal/stm/tDeferred.ts +0 -81
- package/src/internal/stm/tExit.ts +0 -190
- package/src/internal/stm/tMap.ts +0 -824
- package/src/internal/stm/tPriorityQueue.ts +0 -267
- package/src/internal/stm/tPubSub.ts +0 -551
- package/src/internal/stm/tQueue.ts +0 -393
- package/src/internal/stm/tRandom.ts +0 -140
- package/src/internal/stm/tReentrantLock.ts +0 -352
- package/src/internal/stm/tRef.ts +0 -195
- package/src/internal/stm/tSemaphore.ts +0 -113
- package/src/internal/stm/tSet.ts +0 -259
- package/src/internal/stm/tSubscriptionRef.ts +0 -286
- package/src/internal/stm/tryCommit.ts +0 -34
- package/src/internal/stm/txnId.ts +0 -14
- package/src/internal/stm/versioned.ts +0 -4
- package/src/internal/stream/debounceState.ts +0 -57
- package/src/internal/stream/emit.ts +0 -123
- package/src/internal/stream/haltStrategy.ts +0 -94
- package/src/internal/stream/handoff.ts +0 -187
- package/src/internal/stream/handoffSignal.ts +0 -59
- package/src/internal/stream/pull.ts +0 -34
- package/src/internal/stream/sinkEndReason.ts +0 -30
- package/src/internal/stream/zipAllState.ts +0 -88
- package/src/internal/stream/zipChunksState.ts +0 -56
- package/src/internal/stream.ts +0 -8801
- package/src/internal/string-utils.ts +0 -107
- package/src/internal/subscriptionRef.ts +0 -138
- package/src/internal/supervisor/patch.ts +0 -190
- package/src/internal/supervisor.ts +0 -303
- package/src/internal/synchronizedRef.ts +0 -114
- package/src/internal/take.ts +0 -199
- package/src/internal/testing/sleep.ts +0 -27
- package/src/internal/testing/suspendedWarningData.ts +0 -85
- package/src/internal/testing/warningData.ts +0 -94
- package/src/internal/tracer.ts +0 -293
- package/src/internal/trie.ts +0 -722
- package/src/internal/version.ts +0 -7
package/src/Struct.ts
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This module provides utility functions for working with structs in TypeScript.
|
|
3
|
-
*
|
|
4
|
-
* @since 2.0.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import * as Equivalence from "./Equivalence.js"
|
|
8
|
-
import { dual } from "./Function.js"
|
|
9
|
-
import * as order from "./Order.js"
|
|
10
|
-
import * as Predicate from "./Predicate.js"
|
|
11
|
-
import type { MatchRecord, Simplify } from "./Types.js"
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Create a new object by picking properties of an existing object.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* import * as assert from "node:assert"
|
|
19
|
-
* import { pipe, Struct } from "effect"
|
|
20
|
-
*
|
|
21
|
-
* assert.deepStrictEqual(pipe({ a: "a", b: 1, c: true }, Struct.pick("a", "b")), { a: "a", b: 1 })
|
|
22
|
-
* assert.deepStrictEqual(Struct.pick({ a: "a", b: 1, c: true }, "a", "b"), { a: "a", b: 1 })
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* @since 2.0.0
|
|
26
|
-
*/
|
|
27
|
-
export const pick: {
|
|
28
|
-
<Keys extends Array<PropertyKey>>(
|
|
29
|
-
...keys: Keys
|
|
30
|
-
): <S extends { [K in Keys[number]]?: any }>(
|
|
31
|
-
s: S
|
|
32
|
-
) => MatchRecord<S, { [K in Keys[number]]?: S[K] }, Simplify<Pick<S, Keys[number]>>>
|
|
33
|
-
<S extends object, Keys extends Array<keyof S>>(
|
|
34
|
-
s: S,
|
|
35
|
-
...keys: Keys
|
|
36
|
-
): MatchRecord<S, { [K in Keys[number]]?: S[K] }, Simplify<Pick<S, Keys[number]>>>
|
|
37
|
-
} = dual(
|
|
38
|
-
(args) => Predicate.isObject(args[0]),
|
|
39
|
-
<S extends object, Keys extends Array<keyof S>>(s: S, ...keys: Keys) => {
|
|
40
|
-
const out: any = {}
|
|
41
|
-
for (const k of keys) {
|
|
42
|
-
if (k in s) {
|
|
43
|
-
out[k] = (s as any)[k]
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return out
|
|
47
|
-
}
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Create a new object by omitting properties of an existing object.
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
* ```ts
|
|
55
|
-
* import * as assert from "node:assert"
|
|
56
|
-
* import { pipe, Struct } from "effect"
|
|
57
|
-
*
|
|
58
|
-
* assert.deepStrictEqual(pipe({ a: "a", b: 1, c: true }, Struct.omit("c")), { a: "a", b: 1 })
|
|
59
|
-
* assert.deepStrictEqual(Struct.omit({ a: "a", b: 1, c: true }, "c"), { a: "a", b: 1 })
|
|
60
|
-
* ```
|
|
61
|
-
*
|
|
62
|
-
* @since 2.0.0
|
|
63
|
-
*/
|
|
64
|
-
export const omit: {
|
|
65
|
-
<Keys extends Array<PropertyKey>>(
|
|
66
|
-
...keys: Keys
|
|
67
|
-
): <S extends { [K in Keys[number]]?: any }>(s: S) => Simplify<Omit<S, Keys[number]>>
|
|
68
|
-
<S extends object, Keys extends Array<keyof S>>(
|
|
69
|
-
s: S,
|
|
70
|
-
...keys: Keys
|
|
71
|
-
): Simplify<Omit<S, Keys[number]>>
|
|
72
|
-
} = dual(
|
|
73
|
-
(args) => Predicate.isObject(args[0]),
|
|
74
|
-
<S extends object, Keys extends Array<keyof S>>(s: S, ...keys: Keys) => {
|
|
75
|
-
const out: any = { ...s }
|
|
76
|
-
for (const k of keys) {
|
|
77
|
-
delete out[k]
|
|
78
|
-
}
|
|
79
|
-
return out
|
|
80
|
-
}
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Given a struct of `Equivalence`s returns a new `Equivalence` that compares values of a struct
|
|
85
|
-
* by applying each `Equivalence` to the corresponding property of the struct.
|
|
86
|
-
*
|
|
87
|
-
* Alias of {@link Equivalence.struct}.
|
|
88
|
-
*
|
|
89
|
-
* @example
|
|
90
|
-
* ```ts
|
|
91
|
-
* import * as assert from "node:assert"
|
|
92
|
-
* import { Struct, String, Number } from "effect"
|
|
93
|
-
*
|
|
94
|
-
* const PersonEquivalence = Struct.getEquivalence({
|
|
95
|
-
* name: String.Equivalence,
|
|
96
|
-
* age: Number.Equivalence
|
|
97
|
-
* })
|
|
98
|
-
*
|
|
99
|
-
* assert.deepStrictEqual(
|
|
100
|
-
* PersonEquivalence({ name: "John", age: 25 }, { name: "John", age: 25 }),
|
|
101
|
-
* true
|
|
102
|
-
* )
|
|
103
|
-
* assert.deepStrictEqual(
|
|
104
|
-
* PersonEquivalence({ name: "John", age: 25 }, { name: "John", age: 40 }),
|
|
105
|
-
* false
|
|
106
|
-
* )
|
|
107
|
-
* ```
|
|
108
|
-
*
|
|
109
|
-
* @category combinators
|
|
110
|
-
* @since 2.0.0
|
|
111
|
-
*/
|
|
112
|
-
export const getEquivalence: <R extends Record<string, Equivalence.Equivalence<any>>>(
|
|
113
|
-
isEquivalents: R
|
|
114
|
-
) => Equivalence.Equivalence<
|
|
115
|
-
{ readonly [K in keyof R]: [R[K]] extends [Equivalence.Equivalence<infer A>] ? A : never }
|
|
116
|
-
> = Equivalence.struct
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* This function creates and returns a new `Order` for a struct of values based on the given `Order`s
|
|
120
|
-
* for each property in the struct.
|
|
121
|
-
*
|
|
122
|
-
* Alias of {@link order.struct}.
|
|
123
|
-
*
|
|
124
|
-
* @category combinators
|
|
125
|
-
* @since 2.0.0
|
|
126
|
-
*/
|
|
127
|
-
export const getOrder: <R extends { readonly [x: string]: order.Order<any> }>(
|
|
128
|
-
fields: R
|
|
129
|
-
) => order.Order<{ [K in keyof R]: [R[K]] extends [order.Order<infer A>] ? A : never }> = order.struct
|
|
130
|
-
|
|
131
|
-
type Transformed<O, T> =
|
|
132
|
-
& unknown
|
|
133
|
-
& {
|
|
134
|
-
[K in keyof O]: K extends keyof T ? (T[K] extends (...a: any) => any ? ReturnType<T[K]> : O[K]) : O[K]
|
|
135
|
-
}
|
|
136
|
-
type PartialTransform<O, T> = {
|
|
137
|
-
[K in keyof T]: T[K] extends (a: O[K & keyof O]) => any ? T[K] : (a: O[K & keyof O]) => unknown
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Transforms the values of a Struct provided a transformation function for each key.
|
|
141
|
-
* If no transformation function is provided for a key, it will return the original value for that key.
|
|
142
|
-
*
|
|
143
|
-
* @example
|
|
144
|
-
* ```ts
|
|
145
|
-
* import * as assert from "node:assert"
|
|
146
|
-
* import { pipe, Struct } from "effect"
|
|
147
|
-
*
|
|
148
|
-
* assert.deepStrictEqual(
|
|
149
|
-
* pipe(
|
|
150
|
-
* { a: 'a', b: 1, c: 3 },
|
|
151
|
-
* Struct.evolve({
|
|
152
|
-
* a: (a) => a.length,
|
|
153
|
-
* b: (b) => b * 2
|
|
154
|
-
* })
|
|
155
|
-
* ),
|
|
156
|
-
* { a: 1, b: 2, c: 3 }
|
|
157
|
-
* )
|
|
158
|
-
* ```
|
|
159
|
-
*
|
|
160
|
-
* @since 2.0.0
|
|
161
|
-
*/
|
|
162
|
-
export const evolve: {
|
|
163
|
-
<O, T>(t: PartialTransform<O, T>): (obj: O) => Transformed<O, T>
|
|
164
|
-
<O, T>(obj: O, t: PartialTransform<O, T>): Transformed<O, T>
|
|
165
|
-
} = dual(
|
|
166
|
-
2,
|
|
167
|
-
<O, T>(obj: O, t: PartialTransform<O, T>): Transformed<O, T> => {
|
|
168
|
-
const out = { ...obj }
|
|
169
|
-
for (const k in t) {
|
|
170
|
-
if (Object.prototype.hasOwnProperty.call(obj, k)) {
|
|
171
|
-
// @ts-expect-error
|
|
172
|
-
out[k] = t[k](obj[k])
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return out as any
|
|
176
|
-
}
|
|
177
|
-
)
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Retrieves the value associated with the specified key from a struct.
|
|
181
|
-
*
|
|
182
|
-
* @example
|
|
183
|
-
* ```ts
|
|
184
|
-
* import * as assert from "node:assert"
|
|
185
|
-
* import { pipe, Struct } from "effect"
|
|
186
|
-
*
|
|
187
|
-
* const value = pipe({ a: 1, b: 2 }, Struct.get("a"))
|
|
188
|
-
*
|
|
189
|
-
* assert.deepStrictEqual(value, 1)
|
|
190
|
-
* ```
|
|
191
|
-
*
|
|
192
|
-
* @since 2.0.0
|
|
193
|
-
*/
|
|
194
|
-
export const get =
|
|
195
|
-
<K extends PropertyKey>(key: K) => <S extends { [P in K]?: any }>(s: S): MatchRecord<S, S[K] | undefined, S[K]> =>
|
|
196
|
-
s[key]
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Retrieves the object keys that are strings in a typed manner
|
|
200
|
-
*
|
|
201
|
-
* @example
|
|
202
|
-
* ```ts
|
|
203
|
-
* import * as assert from "node:assert"
|
|
204
|
-
* import { Struct } from "effect"
|
|
205
|
-
*
|
|
206
|
-
* const symbol: unique symbol = Symbol()
|
|
207
|
-
*
|
|
208
|
-
* const value = {
|
|
209
|
-
* a: 1,
|
|
210
|
-
* b: 2,
|
|
211
|
-
* [symbol]: 3
|
|
212
|
-
* }
|
|
213
|
-
*
|
|
214
|
-
* const keys: Array<"a" | "b"> = Struct.keys(value)
|
|
215
|
-
*
|
|
216
|
-
* assert.deepStrictEqual(keys, ["a", "b"])
|
|
217
|
-
* ```
|
|
218
|
-
*
|
|
219
|
-
* @since 3.6.0
|
|
220
|
-
*/
|
|
221
|
-
export const keys = <T extends {}>(o: T): Array<(keyof T) & string> => Object.keys(o) as Array<(keyof T) & string>
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Retrieves the entries (key-value pairs) of an object, where keys are strings,
|
|
225
|
-
* in a type-safe manner. Symbol keys are excluded from the result.
|
|
226
|
-
*
|
|
227
|
-
* @example
|
|
228
|
-
* ```ts
|
|
229
|
-
* import * as assert from "node:assert"
|
|
230
|
-
* import { Struct } from "effect"
|
|
231
|
-
*
|
|
232
|
-
* const c = Symbol("c")
|
|
233
|
-
* const value = { a: "foo", b: 1, [c]: true }
|
|
234
|
-
*
|
|
235
|
-
* const entries: Array<["a" | "b", string | number]> = Struct.entries(value)
|
|
236
|
-
*
|
|
237
|
-
* assert.deepStrictEqual(entries, [["a", "foo"], ["b", 1]])
|
|
238
|
-
* ```
|
|
239
|
-
*
|
|
240
|
-
* @since 3.17.0
|
|
241
|
-
*/
|
|
242
|
-
export const entries = <const R>(obj: R): Array<[keyof R & string, R[keyof R & string]]> =>
|
|
243
|
-
Object.entries(obj as any) as any
|
package/src/Subscribable.ts
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 2.0.0
|
|
3
|
-
*/
|
|
4
|
-
import * as Effect from "./Effect.js"
|
|
5
|
-
import { dual } from "./Function.js"
|
|
6
|
-
import { pipeArguments } from "./Pipeable.js"
|
|
7
|
-
import { hasProperty } from "./Predicate.js"
|
|
8
|
-
import * as Readable from "./Readable.js"
|
|
9
|
-
import * as Stream from "./Stream.js"
|
|
10
|
-
import type { NoInfer } from "./Types.js"
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @since 2.0.0
|
|
14
|
-
* @category type ids
|
|
15
|
-
*/
|
|
16
|
-
export const TypeId: unique symbol = Symbol.for("effect/Subscribable")
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @since 2.0.0
|
|
20
|
-
* @category type ids
|
|
21
|
-
*/
|
|
22
|
-
export type TypeId = typeof TypeId
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @since 2.0.0
|
|
26
|
-
* @category models
|
|
27
|
-
*/
|
|
28
|
-
export interface Subscribable<A, E = never, R = never> extends Readable.Readable<A, E, R> {
|
|
29
|
-
readonly [TypeId]: TypeId
|
|
30
|
-
readonly changes: Stream.Stream<A, E, R>
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @since 2.0.0
|
|
35
|
-
* @category refinements
|
|
36
|
-
*/
|
|
37
|
-
export const isSubscribable = (u: unknown): u is Subscribable<unknown, unknown, unknown> => hasProperty(u, TypeId)
|
|
38
|
-
|
|
39
|
-
const Proto: Omit<Subscribable<any>, "get" | "changes"> = {
|
|
40
|
-
[Readable.TypeId]: Readable.TypeId,
|
|
41
|
-
[TypeId]: TypeId,
|
|
42
|
-
pipe() {
|
|
43
|
-
return pipeArguments(this, arguments)
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* @since 2.0.0
|
|
49
|
-
* @category constructors
|
|
50
|
-
*/
|
|
51
|
-
export const make = <A, E, R>(options: {
|
|
52
|
-
readonly get: Effect.Effect<A, E, R>
|
|
53
|
-
readonly changes: Stream.Stream<A, E, R>
|
|
54
|
-
}): Subscribable<A, E, R> => Object.assign(Object.create(Proto), options)
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* @since 2.0.0
|
|
58
|
-
* @category combinators
|
|
59
|
-
*/
|
|
60
|
-
export const map: {
|
|
61
|
-
<A, B>(f: (a: NoInfer<A>) => B): <E, R>(fa: Subscribable<A, E, R>) => Subscribable<B, E, R>
|
|
62
|
-
<A, E, R, B>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => B): Subscribable<B, E, R>
|
|
63
|
-
} = dual(2, <A, E, R, B>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => B): Subscribable<B, E, R> =>
|
|
64
|
-
make({
|
|
65
|
-
get: Effect.map(self.get, f),
|
|
66
|
-
changes: Stream.map(self.changes, f)
|
|
67
|
-
}))
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* @since 2.0.0
|
|
71
|
-
* @category combinators
|
|
72
|
-
*/
|
|
73
|
-
export const mapEffect: {
|
|
74
|
-
<A, B, E2, R2>(
|
|
75
|
-
f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
|
|
76
|
-
): <E, R>(fa: Subscribable<A, E, R>) => Subscribable<B, E | E2, R | R2>
|
|
77
|
-
<A, E, R, B, E2, R2>(
|
|
78
|
-
self: Subscribable<A, E, R>,
|
|
79
|
-
f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
|
|
80
|
-
): Subscribable<B, E | E2, R | R2>
|
|
81
|
-
} = dual(2, <A, E, R, B, E2, R2>(
|
|
82
|
-
self: Subscribable<A, E, R>,
|
|
83
|
-
f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
|
|
84
|
-
): Subscribable<B, E | E2, R | R2> =>
|
|
85
|
-
make({
|
|
86
|
-
get: Effect.flatMap(self.get, f),
|
|
87
|
-
changes: Stream.mapEffect(self.changes, f)
|
|
88
|
-
}))
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* @since 2.0.0
|
|
92
|
-
* @category constructors
|
|
93
|
-
*/
|
|
94
|
-
export const unwrap = <A, E, R, E1, R1>(
|
|
95
|
-
effect: Effect.Effect<Subscribable<A, E, R>, E1, R1>
|
|
96
|
-
): Subscribable<A, E | E1, R | R1> =>
|
|
97
|
-
make({
|
|
98
|
-
get: Effect.flatMap(effect, (s) => s.get),
|
|
99
|
-
changes: Stream.unwrap(Effect.map(effect, (s) => s.changes))
|
|
100
|
-
})
|
package/src/SubscriptionRef.ts
DELETED
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 2.0.0
|
|
3
|
-
*/
|
|
4
|
-
import type * as Effect from "./Effect.js"
|
|
5
|
-
import * as internal from "./internal/subscriptionRef.js"
|
|
6
|
-
import type * as Option from "./Option.js"
|
|
7
|
-
import type * as PubSub from "./PubSub.js"
|
|
8
|
-
import * as Ref from "./Ref.js"
|
|
9
|
-
import type * as Stream from "./Stream.js"
|
|
10
|
-
import type { Subscribable } from "./Subscribable.js"
|
|
11
|
-
import * as Synchronized from "./SynchronizedRef.js"
|
|
12
|
-
import type * as Types from "./Types.js"
|
|
13
|
-
import type * as Unify from "./Unify.js"
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @since 2.0.0
|
|
17
|
-
* @category symbols
|
|
18
|
-
*/
|
|
19
|
-
export const SubscriptionRefTypeId: unique symbol = internal.SubscriptionRefTypeId
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @since 2.0.0
|
|
23
|
-
* @category symbols
|
|
24
|
-
*/
|
|
25
|
-
export type SubscriptionRefTypeId = typeof SubscriptionRefTypeId
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* A `SubscriptionRef<A>` is a `Ref` that can be subscribed to in order to
|
|
29
|
-
* receive the current value as well as all changes to the value.
|
|
30
|
-
*
|
|
31
|
-
* @since 2.0.0
|
|
32
|
-
* @category models
|
|
33
|
-
*/
|
|
34
|
-
export interface SubscriptionRef<in out A>
|
|
35
|
-
extends SubscriptionRef.Variance<A>, Synchronized.SynchronizedRef<A>, Subscribable<A>
|
|
36
|
-
{
|
|
37
|
-
/** @internal */
|
|
38
|
-
readonly ref: Ref.Ref<A>
|
|
39
|
-
/** @internal */
|
|
40
|
-
readonly pubsub: PubSub.PubSub<A>
|
|
41
|
-
/** @internal */
|
|
42
|
-
readonly semaphore: Effect.Semaphore
|
|
43
|
-
/**
|
|
44
|
-
* A stream containing the current value of the `Ref` as well as all changes
|
|
45
|
-
* to that value.
|
|
46
|
-
*/
|
|
47
|
-
readonly changes: Stream.Stream<A>
|
|
48
|
-
readonly [Unify.typeSymbol]?: unknown
|
|
49
|
-
readonly [Unify.unifySymbol]?: SubscriptionRefUnify<this>
|
|
50
|
-
readonly [Unify.ignoreSymbol]?: SubscriptionRefUnifyIgnore
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* @category models
|
|
55
|
-
* @since 3.8.0
|
|
56
|
-
*/
|
|
57
|
-
export interface SubscriptionRefUnify<A extends { [Unify.typeSymbol]?: any }>
|
|
58
|
-
extends Synchronized.SynchronizedRefUnify<A>
|
|
59
|
-
{
|
|
60
|
-
SubscriptionRef?: () => Extract<A[Unify.typeSymbol], SubscriptionRef<any>>
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* @category models
|
|
65
|
-
* @since 3.8.0
|
|
66
|
-
*/
|
|
67
|
-
export interface SubscriptionRefUnifyIgnore extends Synchronized.SynchronizedRefUnifyIgnore {
|
|
68
|
-
SynchronizedRef?: true
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* @since 2.0.0
|
|
73
|
-
*/
|
|
74
|
-
export declare namespace SubscriptionRef {
|
|
75
|
-
/**
|
|
76
|
-
* @since 2.0.0
|
|
77
|
-
* @category models
|
|
78
|
-
*/
|
|
79
|
-
export interface Variance<in out A> {
|
|
80
|
-
readonly [SubscriptionRefTypeId]: {
|
|
81
|
-
readonly _A: Types.Invariant<A>
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @since 2.0.0
|
|
88
|
-
* @category getters
|
|
89
|
-
*/
|
|
90
|
-
export const get: <A>(self: SubscriptionRef<A>) => Effect.Effect<A> = internal.get
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* @since 2.0.0
|
|
94
|
-
* @category utils
|
|
95
|
-
*/
|
|
96
|
-
export const getAndSet: {
|
|
97
|
-
<A>(value: A): (self: SubscriptionRef<A>) => Effect.Effect<A>
|
|
98
|
-
<A>(self: SubscriptionRef<A>, value: A): Effect.Effect<A>
|
|
99
|
-
} = Ref.getAndSet
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* @since 2.0.0
|
|
103
|
-
* @category utils
|
|
104
|
-
*/
|
|
105
|
-
export const getAndUpdate: {
|
|
106
|
-
<A>(f: (a: A) => A): (self: SubscriptionRef<A>) => Effect.Effect<A>
|
|
107
|
-
<A>(self: SubscriptionRef<A>, f: (a: A) => A): Effect.Effect<A>
|
|
108
|
-
} = Ref.getAndUpdate
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* @since 2.0.0
|
|
112
|
-
* @category utils
|
|
113
|
-
*/
|
|
114
|
-
export const getAndUpdateEffect: {
|
|
115
|
-
<A, R, E>(f: (a: A) => Effect.Effect<A, E, R>): (self: SubscriptionRef<A>) => Effect.Effect<A, E, R>
|
|
116
|
-
<A, R, E>(self: SubscriptionRef<A>, f: (a: A) => Effect.Effect<A, E, R>): Effect.Effect<A, E, R>
|
|
117
|
-
} = Synchronized.getAndUpdateEffect
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* @since 2.0.0
|
|
121
|
-
* @category utils
|
|
122
|
-
*/
|
|
123
|
-
export const getAndUpdateSome: {
|
|
124
|
-
<A>(pf: (a: A) => Option.Option<A>): (self: SubscriptionRef<A>) => Effect.Effect<A>
|
|
125
|
-
<A>(self: SubscriptionRef<A>, pf: (a: A) => Option.Option<A>): Effect.Effect<A>
|
|
126
|
-
} = Ref.getAndUpdateSome
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* @since 2.0.0
|
|
130
|
-
* @category utils
|
|
131
|
-
*/
|
|
132
|
-
export const getAndUpdateSomeEffect: {
|
|
133
|
-
<A, R, E>(
|
|
134
|
-
pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>
|
|
135
|
-
): (self: SubscriptionRef<A>) => Effect.Effect<A, E, R>
|
|
136
|
-
<A, R, E>(
|
|
137
|
-
self: SubscriptionRef<A>,
|
|
138
|
-
pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>
|
|
139
|
-
): Effect.Effect<A, E, R>
|
|
140
|
-
} = Synchronized.getAndUpdateSomeEffect
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Creates a new `SubscriptionRef` with the specified value.
|
|
144
|
-
*
|
|
145
|
-
* @since 2.0.0
|
|
146
|
-
* @category constructors
|
|
147
|
-
*/
|
|
148
|
-
export const make: <A>(value: A) => Effect.Effect<SubscriptionRef<A>> = internal.make
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* @since 2.0.0
|
|
152
|
-
* @category utils
|
|
153
|
-
*/
|
|
154
|
-
export const modify: {
|
|
155
|
-
<A, B>(f: (a: A) => readonly [B, A]): (self: SubscriptionRef<A>) => Effect.Effect<B>
|
|
156
|
-
<A, B>(self: SubscriptionRef<A>, f: (a: A) => readonly [B, A]): Effect.Effect<B>
|
|
157
|
-
} = internal.modify
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* @since 2.0.0
|
|
161
|
-
* @category utils
|
|
162
|
-
*/
|
|
163
|
-
export const modifyEffect: {
|
|
164
|
-
<B, A, E, R>(f: (a: A) => Effect.Effect<readonly [B, A], E, R>): (self: SubscriptionRef<A>) => Effect.Effect<B, E, R>
|
|
165
|
-
<A, B, E, R>(self: SubscriptionRef<A>, f: (a: A) => Effect.Effect<readonly [B, A], E, R>): Effect.Effect<B, E, R>
|
|
166
|
-
} = internal.modifyEffect
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* @since 2.0.0
|
|
170
|
-
* @category utils
|
|
171
|
-
*/
|
|
172
|
-
export const modifySome: {
|
|
173
|
-
<B, A>(
|
|
174
|
-
fallback: B,
|
|
175
|
-
pf: (a: A) => Option.Option<readonly [B, A]>
|
|
176
|
-
): (self: SubscriptionRef<A>) => Effect.Effect<B>
|
|
177
|
-
<A, B>(
|
|
178
|
-
self: SubscriptionRef<A>,
|
|
179
|
-
fallback: B,
|
|
180
|
-
pf: (a: A) => Option.Option<readonly [B, A]>
|
|
181
|
-
): Effect.Effect<B>
|
|
182
|
-
} = Ref.modifySome
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* @since 2.0.0
|
|
186
|
-
* @category utils
|
|
187
|
-
*/
|
|
188
|
-
export const modifySomeEffect: {
|
|
189
|
-
<A, B, R, E>(
|
|
190
|
-
fallback: B,
|
|
191
|
-
pf: (a: A) => Option.Option<Effect.Effect<readonly [B, A], E, R>>
|
|
192
|
-
): (self: Synchronized.SynchronizedRef<A>) => Effect.Effect<B, E, R>
|
|
193
|
-
<A, B, R, E>(
|
|
194
|
-
self: Synchronized.SynchronizedRef<A>,
|
|
195
|
-
fallback: B,
|
|
196
|
-
pf: (a: A) => Option.Option<Effect.Effect<readonly [B, A], E, R>>
|
|
197
|
-
): Effect.Effect<B, E, R>
|
|
198
|
-
} = Synchronized.modifySomeEffect
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* @since 2.0.0
|
|
202
|
-
* @category utils
|
|
203
|
-
*/
|
|
204
|
-
export const set: {
|
|
205
|
-
<A>(value: A): (self: SubscriptionRef<A>) => Effect.Effect<void>
|
|
206
|
-
<A>(self: SubscriptionRef<A>, value: A): Effect.Effect<void>
|
|
207
|
-
} = internal.set
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* @since 2.0.0
|
|
211
|
-
* @category utils
|
|
212
|
-
*/
|
|
213
|
-
export const setAndGet: {
|
|
214
|
-
<A>(value: A): (self: SubscriptionRef<A>) => Effect.Effect<A>
|
|
215
|
-
<A>(self: SubscriptionRef<A>, value: A): Effect.Effect<A>
|
|
216
|
-
} = Ref.setAndGet
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* @since 2.0.0
|
|
220
|
-
* @category utils
|
|
221
|
-
*/
|
|
222
|
-
export const update: {
|
|
223
|
-
<A>(f: (a: A) => A): (self: SubscriptionRef<A>) => Effect.Effect<void>
|
|
224
|
-
<A>(self: SubscriptionRef<A>, f: (a: A) => A): Effect.Effect<void>
|
|
225
|
-
} = Ref.update
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* @since 2.0.0
|
|
229
|
-
* @category utils
|
|
230
|
-
*/
|
|
231
|
-
export const updateEffect: {
|
|
232
|
-
<A, R, E>(f: (a: A) => Effect.Effect<A, E, R>): (self: Synchronized.SynchronizedRef<A>) => Effect.Effect<void, E, R>
|
|
233
|
-
<A, R, E>(self: Synchronized.SynchronizedRef<A>, f: (a: A) => Effect.Effect<A, E, R>): Effect.Effect<void, E, R>
|
|
234
|
-
} = Synchronized.updateEffect
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* @since 2.0.0
|
|
238
|
-
* @category utils
|
|
239
|
-
*/
|
|
240
|
-
export const updateAndGet: {
|
|
241
|
-
<A>(f: (a: A) => A): (self: SubscriptionRef<A>) => Effect.Effect<A>
|
|
242
|
-
<A>(self: SubscriptionRef<A>, f: (a: A) => A): Effect.Effect<A>
|
|
243
|
-
} = Ref.updateAndGet
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* @since 2.0.0
|
|
247
|
-
* @category utils
|
|
248
|
-
*/
|
|
249
|
-
export const updateAndGetEffect: {
|
|
250
|
-
<A, R, E>(f: (a: A) => Effect.Effect<A, E, R>): (self: SubscriptionRef<A>) => Effect.Effect<A, E, R>
|
|
251
|
-
<A, R, E>(self: SubscriptionRef<A>, f: (a: A) => Effect.Effect<A, E, R>): Effect.Effect<A, E, R>
|
|
252
|
-
} = Synchronized.updateAndGetEffect
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* @since 2.0.0
|
|
256
|
-
* @category utils
|
|
257
|
-
*/
|
|
258
|
-
export const updateSome: {
|
|
259
|
-
<A>(f: (a: A) => Option.Option<A>): (self: SubscriptionRef<A>) => Effect.Effect<void>
|
|
260
|
-
<A>(self: SubscriptionRef<A>, f: (a: A) => Option.Option<A>): Effect.Effect<void>
|
|
261
|
-
} = Ref.updateSome
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* @since 2.0.0
|
|
265
|
-
* @category utils
|
|
266
|
-
*/
|
|
267
|
-
export const updateSomeEffect: {
|
|
268
|
-
<A, R, E>(
|
|
269
|
-
pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>
|
|
270
|
-
): (self: Synchronized.SynchronizedRef<A>) => Effect.Effect<void, E, R>
|
|
271
|
-
<A, R, E>(
|
|
272
|
-
self: Synchronized.SynchronizedRef<A>,
|
|
273
|
-
pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>
|
|
274
|
-
): Effect.Effect<void, E, R>
|
|
275
|
-
} = Synchronized.updateSomeEffect
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* @since 2.0.0
|
|
279
|
-
* @category utils
|
|
280
|
-
*/
|
|
281
|
-
export const updateSomeAndGet: {
|
|
282
|
-
<A>(pf: (a: A) => Option.Option<A>): (self: SubscriptionRef<A>) => Effect.Effect<A>
|
|
283
|
-
<A>(self: SubscriptionRef<A>, pf: (a: A) => Option.Option<A>): Effect.Effect<A>
|
|
284
|
-
} = Ref.updateSomeAndGet
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* @since 2.0.0
|
|
288
|
-
* @category utils
|
|
289
|
-
*/
|
|
290
|
-
export const updateSomeAndGetEffect: {
|
|
291
|
-
<A, R, E>(
|
|
292
|
-
pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>
|
|
293
|
-
): (self: SubscriptionRef<A>) => Effect.Effect<A, E, R>
|
|
294
|
-
<A, R, E>(
|
|
295
|
-
self: SubscriptionRef<A>,
|
|
296
|
-
pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>
|
|
297
|
-
): Effect.Effect<A, E, R>
|
|
298
|
-
} = Synchronized.updateSomeAndGetEffect
|