@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
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
import { pipe } from "../../Function.js"
|
|
2
|
-
import type * as MetricHook from "../../MetricHook.js"
|
|
3
|
-
import type * as MetricKey from "../../MetricKey.js"
|
|
4
|
-
import type * as MetricKeyType from "../../MetricKeyType.js"
|
|
5
|
-
import type * as MetricPair from "../../MetricPair.js"
|
|
6
|
-
import type * as MetricRegistry from "../../MetricRegistry.js"
|
|
7
|
-
import * as MutableHashMap from "../../MutableHashMap.js"
|
|
8
|
-
import * as Option from "../../Option.js"
|
|
9
|
-
import * as metricHook from "./hook.js"
|
|
10
|
-
import * as metricKeyType from "./keyType.js"
|
|
11
|
-
import * as metricPair from "./pair.js"
|
|
12
|
-
|
|
13
|
-
/** @internal */
|
|
14
|
-
const MetricRegistrySymbolKey = "effect/MetricRegistry"
|
|
15
|
-
|
|
16
|
-
/** @internal */
|
|
17
|
-
export const MetricRegistryTypeId: MetricRegistry.MetricRegistryTypeId = Symbol.for(
|
|
18
|
-
MetricRegistrySymbolKey
|
|
19
|
-
) as MetricRegistry.MetricRegistryTypeId
|
|
20
|
-
|
|
21
|
-
/** @internal */
|
|
22
|
-
class MetricRegistryImpl implements MetricRegistry.MetricRegistry {
|
|
23
|
-
readonly [MetricRegistryTypeId]: MetricRegistry.MetricRegistryTypeId = MetricRegistryTypeId
|
|
24
|
-
|
|
25
|
-
private map = MutableHashMap.empty<
|
|
26
|
-
MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
|
|
27
|
-
MetricHook.MetricHook.Root
|
|
28
|
-
>()
|
|
29
|
-
|
|
30
|
-
snapshot(): Array<MetricPair.MetricPair.Untyped> {
|
|
31
|
-
const result: Array<MetricPair.MetricPair.Untyped> = []
|
|
32
|
-
for (const [key, hook] of this.map) {
|
|
33
|
-
result.push(metricPair.unsafeMake(key, hook.get()))
|
|
34
|
-
}
|
|
35
|
-
return result
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
get<Type extends MetricKeyType.MetricKeyType<any, any>>(
|
|
39
|
-
key: MetricKey.MetricKey<Type>
|
|
40
|
-
): MetricHook.MetricHook<
|
|
41
|
-
MetricKeyType.MetricKeyType.InType<typeof key["keyType"]>,
|
|
42
|
-
MetricKeyType.MetricKeyType.OutType<typeof key["keyType"]>
|
|
43
|
-
> {
|
|
44
|
-
const hook = pipe(
|
|
45
|
-
this.map,
|
|
46
|
-
MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
|
|
47
|
-
Option.getOrUndefined
|
|
48
|
-
)
|
|
49
|
-
if (hook == null) {
|
|
50
|
-
if (metricKeyType.isCounterKey(key.keyType)) {
|
|
51
|
-
return this.getCounter(key as unknown as MetricKey.MetricKey.Counter<any>) as any
|
|
52
|
-
}
|
|
53
|
-
if (metricKeyType.isGaugeKey(key.keyType)) {
|
|
54
|
-
return this.getGauge(key as unknown as MetricKey.MetricKey.Gauge<any>) as any
|
|
55
|
-
}
|
|
56
|
-
if (metricKeyType.isFrequencyKey(key.keyType)) {
|
|
57
|
-
return this.getFrequency(key as unknown as MetricKey.MetricKey.Frequency) as any
|
|
58
|
-
}
|
|
59
|
-
if (metricKeyType.isHistogramKey(key.keyType)) {
|
|
60
|
-
return this.getHistogram(key as unknown as MetricKey.MetricKey.Histogram) as any
|
|
61
|
-
}
|
|
62
|
-
if (metricKeyType.isSummaryKey(key.keyType)) {
|
|
63
|
-
return this.getSummary(key as unknown as MetricKey.MetricKey.Summary) as any
|
|
64
|
-
}
|
|
65
|
-
throw new Error(
|
|
66
|
-
"BUG: MetricRegistry.get - unknown MetricKeyType - please report an issue at https://github.com/Effect-TS/effect/issues"
|
|
67
|
-
)
|
|
68
|
-
} else {
|
|
69
|
-
return hook as any
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
getCounter<A extends (number | bigint)>(key: MetricKey.MetricKey.Counter<A>): MetricHook.MetricHook.Counter<A> {
|
|
74
|
-
let value = pipe(
|
|
75
|
-
this.map,
|
|
76
|
-
MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
|
|
77
|
-
Option.getOrUndefined
|
|
78
|
-
)
|
|
79
|
-
if (value == null) {
|
|
80
|
-
const counter = metricHook.counter(key)
|
|
81
|
-
if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
|
|
82
|
-
pipe(
|
|
83
|
-
this.map,
|
|
84
|
-
MutableHashMap.set(
|
|
85
|
-
key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
|
|
86
|
-
counter as MetricHook.MetricHook.Root
|
|
87
|
-
)
|
|
88
|
-
)
|
|
89
|
-
}
|
|
90
|
-
value = counter
|
|
91
|
-
}
|
|
92
|
-
return value as MetricHook.MetricHook.Counter<A>
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
getFrequency(key: MetricKey.MetricKey.Frequency): MetricHook.MetricHook.Frequency {
|
|
96
|
-
let value = pipe(
|
|
97
|
-
this.map,
|
|
98
|
-
MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
|
|
99
|
-
Option.getOrUndefined
|
|
100
|
-
)
|
|
101
|
-
if (value == null) {
|
|
102
|
-
const frequency = metricHook.frequency(key)
|
|
103
|
-
if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
|
|
104
|
-
pipe(
|
|
105
|
-
this.map,
|
|
106
|
-
MutableHashMap.set(
|
|
107
|
-
key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
|
|
108
|
-
frequency as MetricHook.MetricHook.Root
|
|
109
|
-
)
|
|
110
|
-
)
|
|
111
|
-
}
|
|
112
|
-
value = frequency
|
|
113
|
-
}
|
|
114
|
-
return value as MetricHook.MetricHook.Frequency
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
getGauge<A extends (number | bigint)>(key: MetricKey.MetricKey.Gauge<A>): MetricHook.MetricHook.Gauge<A> {
|
|
118
|
-
let value = pipe(
|
|
119
|
-
this.map,
|
|
120
|
-
MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
|
|
121
|
-
Option.getOrUndefined
|
|
122
|
-
)
|
|
123
|
-
if (value == null) {
|
|
124
|
-
const gauge = metricHook.gauge(key as any, key.keyType.bigint ? BigInt(0) as any : 0)
|
|
125
|
-
if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
|
|
126
|
-
pipe(
|
|
127
|
-
this.map,
|
|
128
|
-
MutableHashMap.set(
|
|
129
|
-
key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
|
|
130
|
-
gauge as MetricHook.MetricHook.Root
|
|
131
|
-
)
|
|
132
|
-
)
|
|
133
|
-
}
|
|
134
|
-
value = gauge
|
|
135
|
-
}
|
|
136
|
-
return value as MetricHook.MetricHook.Gauge<A>
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
getHistogram(key: MetricKey.MetricKey.Histogram): MetricHook.MetricHook.Histogram {
|
|
140
|
-
let value = pipe(
|
|
141
|
-
this.map,
|
|
142
|
-
MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
|
|
143
|
-
Option.getOrUndefined
|
|
144
|
-
)
|
|
145
|
-
if (value == null) {
|
|
146
|
-
const histogram = metricHook.histogram(key)
|
|
147
|
-
if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
|
|
148
|
-
pipe(
|
|
149
|
-
this.map,
|
|
150
|
-
MutableHashMap.set(
|
|
151
|
-
key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
|
|
152
|
-
histogram as MetricHook.MetricHook.Root
|
|
153
|
-
)
|
|
154
|
-
)
|
|
155
|
-
}
|
|
156
|
-
value = histogram
|
|
157
|
-
}
|
|
158
|
-
return value as MetricHook.MetricHook.Histogram
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
getSummary(key: MetricKey.MetricKey.Summary): MetricHook.MetricHook.Summary {
|
|
162
|
-
let value = pipe(
|
|
163
|
-
this.map,
|
|
164
|
-
MutableHashMap.get(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>),
|
|
165
|
-
Option.getOrUndefined
|
|
166
|
-
)
|
|
167
|
-
if (value == null) {
|
|
168
|
-
const summary = metricHook.summary(key)
|
|
169
|
-
if (!pipe(this.map, MutableHashMap.has(key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>))) {
|
|
170
|
-
pipe(
|
|
171
|
-
this.map,
|
|
172
|
-
MutableHashMap.set(
|
|
173
|
-
key as MetricKey.MetricKey<MetricKeyType.MetricKeyType.Untyped>,
|
|
174
|
-
summary as MetricHook.MetricHook.Root
|
|
175
|
-
)
|
|
176
|
-
)
|
|
177
|
-
}
|
|
178
|
-
value = summary
|
|
179
|
-
}
|
|
180
|
-
return value as MetricHook.MetricHook.Summary
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/** @internal */
|
|
185
|
-
export const make = (): MetricRegistry.MetricRegistry => {
|
|
186
|
-
return new MetricRegistryImpl()
|
|
187
|
-
}
|
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
import * as Arr from "../../Array.js"
|
|
2
|
-
import * as Equal from "../../Equal.js"
|
|
3
|
-
import { pipe } from "../../Function.js"
|
|
4
|
-
import * as Hash from "../../Hash.js"
|
|
5
|
-
import type * as MetricState from "../../MetricState.js"
|
|
6
|
-
import type * as Option from "../../Option.js"
|
|
7
|
-
import { pipeArguments } from "../../Pipeable.js"
|
|
8
|
-
import { hasProperty } from "../../Predicate.js"
|
|
9
|
-
|
|
10
|
-
/** @internal */
|
|
11
|
-
const MetricStateSymbolKey = "effect/MetricState"
|
|
12
|
-
|
|
13
|
-
/** @internal */
|
|
14
|
-
export const MetricStateTypeId: MetricState.MetricStateTypeId = Symbol.for(
|
|
15
|
-
MetricStateSymbolKey
|
|
16
|
-
) as MetricState.MetricStateTypeId
|
|
17
|
-
|
|
18
|
-
/** @internal */
|
|
19
|
-
const CounterStateSymbolKey = "effect/MetricState/Counter"
|
|
20
|
-
|
|
21
|
-
/** @internal */
|
|
22
|
-
export const CounterStateTypeId: MetricState.CounterStateTypeId = Symbol.for(
|
|
23
|
-
CounterStateSymbolKey
|
|
24
|
-
) as MetricState.CounterStateTypeId
|
|
25
|
-
|
|
26
|
-
/** @internal */
|
|
27
|
-
const FrequencyStateSymbolKey = "effect/MetricState/Frequency"
|
|
28
|
-
|
|
29
|
-
/** @internal */
|
|
30
|
-
export const FrequencyStateTypeId: MetricState.FrequencyStateTypeId = Symbol.for(
|
|
31
|
-
FrequencyStateSymbolKey
|
|
32
|
-
) as MetricState.FrequencyStateTypeId
|
|
33
|
-
|
|
34
|
-
/** @internal */
|
|
35
|
-
const GaugeStateSymbolKey = "effect/MetricState/Gauge"
|
|
36
|
-
|
|
37
|
-
/** @internal */
|
|
38
|
-
export const GaugeStateTypeId: MetricState.GaugeStateTypeId = Symbol.for(
|
|
39
|
-
GaugeStateSymbolKey
|
|
40
|
-
) as MetricState.GaugeStateTypeId
|
|
41
|
-
|
|
42
|
-
/** @internal */
|
|
43
|
-
const HistogramStateSymbolKey = "effect/MetricState/Histogram"
|
|
44
|
-
|
|
45
|
-
/** @internal */
|
|
46
|
-
export const HistogramStateTypeId: MetricState.HistogramStateTypeId = Symbol.for(
|
|
47
|
-
HistogramStateSymbolKey
|
|
48
|
-
) as MetricState.HistogramStateTypeId
|
|
49
|
-
|
|
50
|
-
/** @internal */
|
|
51
|
-
const SummaryStateSymbolKey = "effect/MetricState/Summary"
|
|
52
|
-
|
|
53
|
-
/** @internal */
|
|
54
|
-
export const SummaryStateTypeId: MetricState.SummaryStateTypeId = Symbol.for(
|
|
55
|
-
SummaryStateSymbolKey
|
|
56
|
-
) as MetricState.SummaryStateTypeId
|
|
57
|
-
|
|
58
|
-
const metricStateVariance = {
|
|
59
|
-
/* c8 ignore next */
|
|
60
|
-
_A: (_: unknown) => _
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/** @internal */
|
|
64
|
-
class CounterState<A extends (number | bigint)> implements MetricState.MetricState.Counter<A> {
|
|
65
|
-
readonly [MetricStateTypeId] = metricStateVariance
|
|
66
|
-
readonly [CounterStateTypeId]: MetricState.CounterStateTypeId = CounterStateTypeId
|
|
67
|
-
constructor(readonly count: A) {}
|
|
68
|
-
[Hash.symbol](): number {
|
|
69
|
-
return pipe(
|
|
70
|
-
Hash.hash(CounterStateSymbolKey),
|
|
71
|
-
Hash.combine(Hash.hash(this.count)),
|
|
72
|
-
Hash.cached(this)
|
|
73
|
-
)
|
|
74
|
-
}
|
|
75
|
-
[Equal.symbol](that: unknown): boolean {
|
|
76
|
-
return isCounterState(that) && this.count === that.count
|
|
77
|
-
}
|
|
78
|
-
pipe() {
|
|
79
|
-
return pipeArguments(this, arguments)
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const arrayEquals = Arr.getEquivalence(Equal.equals)
|
|
84
|
-
|
|
85
|
-
/** @internal */
|
|
86
|
-
class FrequencyState implements MetricState.MetricState.Frequency {
|
|
87
|
-
readonly [MetricStateTypeId] = metricStateVariance
|
|
88
|
-
readonly [FrequencyStateTypeId]: MetricState.FrequencyStateTypeId = FrequencyStateTypeId
|
|
89
|
-
constructor(readonly occurrences: ReadonlyMap<string, number>) {}
|
|
90
|
-
_hash: number | undefined;
|
|
91
|
-
[Hash.symbol](): number {
|
|
92
|
-
return pipe(
|
|
93
|
-
Hash.string(FrequencyStateSymbolKey),
|
|
94
|
-
Hash.combine(Hash.array(Arr.fromIterable(this.occurrences.entries()))),
|
|
95
|
-
Hash.cached(this)
|
|
96
|
-
)
|
|
97
|
-
}
|
|
98
|
-
[Equal.symbol](that: unknown): boolean {
|
|
99
|
-
return isFrequencyState(that) && arrayEquals(
|
|
100
|
-
Arr.fromIterable(this.occurrences.entries()),
|
|
101
|
-
Arr.fromIterable(that.occurrences.entries())
|
|
102
|
-
)
|
|
103
|
-
}
|
|
104
|
-
pipe() {
|
|
105
|
-
return pipeArguments(this, arguments)
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/** @internal */
|
|
110
|
-
class GaugeState<A extends (number | bigint)> implements MetricState.MetricState.Gauge<A> {
|
|
111
|
-
readonly [MetricStateTypeId] = metricStateVariance
|
|
112
|
-
readonly [GaugeStateTypeId]: MetricState.GaugeStateTypeId = GaugeStateTypeId
|
|
113
|
-
constructor(readonly value: A) {}
|
|
114
|
-
[Hash.symbol](): number {
|
|
115
|
-
return pipe(
|
|
116
|
-
Hash.hash(GaugeStateSymbolKey),
|
|
117
|
-
Hash.combine(Hash.hash(this.value)),
|
|
118
|
-
Hash.cached(this)
|
|
119
|
-
)
|
|
120
|
-
}
|
|
121
|
-
[Equal.symbol](u: unknown): boolean {
|
|
122
|
-
return isGaugeState(u) && this.value === u.value
|
|
123
|
-
}
|
|
124
|
-
pipe() {
|
|
125
|
-
return pipeArguments(this, arguments)
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/** @internal */
|
|
130
|
-
export class HistogramState implements MetricState.MetricState.Histogram {
|
|
131
|
-
readonly [MetricStateTypeId] = metricStateVariance
|
|
132
|
-
readonly [HistogramStateTypeId]: MetricState.HistogramStateTypeId = HistogramStateTypeId
|
|
133
|
-
constructor(
|
|
134
|
-
readonly buckets: ReadonlyArray<readonly [number, number]>,
|
|
135
|
-
readonly count: number,
|
|
136
|
-
readonly min: number,
|
|
137
|
-
readonly max: number,
|
|
138
|
-
readonly sum: number
|
|
139
|
-
) {}
|
|
140
|
-
[Hash.symbol](): number {
|
|
141
|
-
return pipe(
|
|
142
|
-
Hash.hash(HistogramStateSymbolKey),
|
|
143
|
-
Hash.combine(Hash.hash(this.buckets)),
|
|
144
|
-
Hash.combine(Hash.hash(this.count)),
|
|
145
|
-
Hash.combine(Hash.hash(this.min)),
|
|
146
|
-
Hash.combine(Hash.hash(this.max)),
|
|
147
|
-
Hash.combine(Hash.hash(this.sum)),
|
|
148
|
-
Hash.cached(this)
|
|
149
|
-
)
|
|
150
|
-
}
|
|
151
|
-
[Equal.symbol](that: unknown): boolean {
|
|
152
|
-
return isHistogramState(that) &&
|
|
153
|
-
Equal.equals(this.buckets, that.buckets) &&
|
|
154
|
-
this.count === that.count &&
|
|
155
|
-
this.min === that.min &&
|
|
156
|
-
this.max === that.max &&
|
|
157
|
-
this.sum === that.sum
|
|
158
|
-
}
|
|
159
|
-
pipe() {
|
|
160
|
-
return pipeArguments(this, arguments)
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/** @internal */
|
|
165
|
-
export class SummaryState implements MetricState.MetricState.Summary {
|
|
166
|
-
readonly [MetricStateTypeId] = metricStateVariance
|
|
167
|
-
readonly [SummaryStateTypeId]: MetricState.SummaryStateTypeId = SummaryStateTypeId
|
|
168
|
-
constructor(
|
|
169
|
-
readonly error: number,
|
|
170
|
-
readonly quantiles: ReadonlyArray<readonly [number, Option.Option<number>]>,
|
|
171
|
-
readonly count: number,
|
|
172
|
-
readonly min: number,
|
|
173
|
-
readonly max: number,
|
|
174
|
-
readonly sum: number
|
|
175
|
-
) {}
|
|
176
|
-
[Hash.symbol](): number {
|
|
177
|
-
return pipe(
|
|
178
|
-
Hash.hash(SummaryStateSymbolKey),
|
|
179
|
-
Hash.combine(Hash.hash(this.error)),
|
|
180
|
-
Hash.combine(Hash.hash(this.quantiles)),
|
|
181
|
-
Hash.combine(Hash.hash(this.count)),
|
|
182
|
-
Hash.combine(Hash.hash(this.min)),
|
|
183
|
-
Hash.combine(Hash.hash(this.max)),
|
|
184
|
-
Hash.combine(Hash.hash(this.sum)),
|
|
185
|
-
Hash.cached(this)
|
|
186
|
-
)
|
|
187
|
-
}
|
|
188
|
-
[Equal.symbol](that: unknown): boolean {
|
|
189
|
-
return isSummaryState(that) &&
|
|
190
|
-
this.error === that.error &&
|
|
191
|
-
Equal.equals(this.quantiles, that.quantiles) &&
|
|
192
|
-
this.count === that.count &&
|
|
193
|
-
this.min === that.min &&
|
|
194
|
-
this.max === that.max &&
|
|
195
|
-
this.sum === that.sum
|
|
196
|
-
}
|
|
197
|
-
pipe() {
|
|
198
|
-
return pipeArguments(this, arguments)
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/** @internal */
|
|
203
|
-
export const counter: {
|
|
204
|
-
(count: number): MetricState.MetricState.Counter<number>
|
|
205
|
-
(count: bigint): MetricState.MetricState.Counter<bigint>
|
|
206
|
-
} = (count) => new CounterState(count) as any
|
|
207
|
-
|
|
208
|
-
/** @internal */
|
|
209
|
-
export const frequency = (occurrences: ReadonlyMap<string, number>): MetricState.MetricState.Frequency => {
|
|
210
|
-
return new FrequencyState(occurrences)
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/** @internal */
|
|
214
|
-
export const gauge: {
|
|
215
|
-
(count: number): MetricState.MetricState.Gauge<number>
|
|
216
|
-
(count: bigint): MetricState.MetricState.Gauge<bigint>
|
|
217
|
-
} = (count) => new GaugeState(count) as any
|
|
218
|
-
|
|
219
|
-
/** @internal */
|
|
220
|
-
export const histogram = (
|
|
221
|
-
options: {
|
|
222
|
-
readonly buckets: ReadonlyArray<readonly [number, number]>
|
|
223
|
-
readonly count: number
|
|
224
|
-
readonly min: number
|
|
225
|
-
readonly max: number
|
|
226
|
-
readonly sum: number
|
|
227
|
-
}
|
|
228
|
-
): MetricState.MetricState.Histogram =>
|
|
229
|
-
new HistogramState(
|
|
230
|
-
options.buckets,
|
|
231
|
-
options.count,
|
|
232
|
-
options.min,
|
|
233
|
-
options.max,
|
|
234
|
-
options.sum
|
|
235
|
-
)
|
|
236
|
-
|
|
237
|
-
/** @internal */
|
|
238
|
-
export const summary = (
|
|
239
|
-
options: {
|
|
240
|
-
readonly error: number
|
|
241
|
-
readonly quantiles: ReadonlyArray<readonly [number, Option.Option<number>]>
|
|
242
|
-
readonly count: number
|
|
243
|
-
readonly min: number
|
|
244
|
-
readonly max: number
|
|
245
|
-
readonly sum: number
|
|
246
|
-
}
|
|
247
|
-
): MetricState.MetricState.Summary =>
|
|
248
|
-
new SummaryState(
|
|
249
|
-
options.error,
|
|
250
|
-
options.quantiles,
|
|
251
|
-
options.count,
|
|
252
|
-
options.min,
|
|
253
|
-
options.max,
|
|
254
|
-
options.sum
|
|
255
|
-
)
|
|
256
|
-
|
|
257
|
-
/** @internal */
|
|
258
|
-
export const isMetricState = (u: unknown): u is MetricState.MetricState.Counter<number | bigint> =>
|
|
259
|
-
hasProperty(u, MetricStateTypeId)
|
|
260
|
-
|
|
261
|
-
/** @internal */
|
|
262
|
-
export const isCounterState = (u: unknown): u is MetricState.MetricState.Counter<number | bigint> =>
|
|
263
|
-
hasProperty(u, CounterStateTypeId)
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* @since 2.0.0
|
|
267
|
-
* @category refinements
|
|
268
|
-
*/
|
|
269
|
-
export const isFrequencyState = (u: unknown): u is MetricState.MetricState.Frequency =>
|
|
270
|
-
hasProperty(u, FrequencyStateTypeId)
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* @since 2.0.0
|
|
274
|
-
* @category refinements
|
|
275
|
-
*/
|
|
276
|
-
export const isGaugeState = (u: unknown): u is MetricState.MetricState.Gauge<number | bigint> =>
|
|
277
|
-
hasProperty(u, GaugeStateTypeId)
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* @since 2.0.0
|
|
281
|
-
* @category refinements
|
|
282
|
-
*/
|
|
283
|
-
export const isHistogramState = (u: unknown): u is MetricState.MetricState.Histogram =>
|
|
284
|
-
hasProperty(u, HistogramStateTypeId)
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* @since 2.0.0
|
|
288
|
-
* @category refinements
|
|
289
|
-
*/
|
|
290
|
-
export const isSummaryState = (u: unknown): u is MetricState.MetricState.Summary => hasProperty(u, SummaryStateTypeId)
|