@livestore/utils 0.4.0 → 0.5.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/NoopTracer.d.ts +7 -8
- package/dist/NoopTracer.d.ts.map +1 -1
- package/dist/NoopTracer.js +3 -18
- package/dist/NoopTracer.js.map +1 -1
- package/dist/NoopTracer.test.d.ts +2 -0
- package/dist/NoopTracer.test.d.ts.map +1 -0
- package/dist/NoopTracer.test.js +29 -0
- package/dist/NoopTracer.test.js.map +1 -0
- package/dist/base64.d.ts.map +1 -1
- package/dist/binary.d.ts.map +1 -1
- package/dist/browser/Opfs/Opfs.d.ts +179 -29
- package/dist/browser/Opfs/Opfs.d.ts.map +1 -1
- package/dist/browser/Opfs/Opfs.js +134 -309
- package/dist/browser/Opfs/Opfs.js.map +1 -1
- package/dist/browser/Opfs/debug-utils.d.ts.map +1 -1
- package/dist/browser/Opfs/debug-utils.js +6 -5
- package/dist/browser/Opfs/debug-utils.js.map +1 -1
- package/dist/browser/Opfs/mod.js +3 -3
- package/dist/browser/Opfs/utils.d.ts +8 -8
- package/dist/browser/Opfs/utils.d.ts.map +1 -1
- package/dist/browser/Opfs/utils.js +35 -26
- package/dist/browser/Opfs/utils.js.map +1 -1
- package/dist/browser/QuotaExceededError.d.ts +10 -9
- package/dist/browser/QuotaExceededError.d.ts.map +1 -1
- package/dist/browser/WebChannelBrowser.d.ts.map +1 -1
- package/dist/browser/WebChannelBrowser.js +25 -14
- package/dist/browser/WebChannelBrowser.js.map +1 -1
- package/dist/browser/WebError.d.ts +55 -87
- package/dist/browser/WebError.d.ts.map +1 -1
- package/dist/browser/WebError.js +92 -85
- package/dist/browser/WebError.js.map +1 -1
- package/dist/browser/WebError.test.js +7 -7
- package/dist/browser/WebError.test.js.map +1 -1
- package/dist/browser/WebLock.d.ts +1 -1
- package/dist/browser/WebLock.d.ts.map +1 -1
- package/dist/browser/WebLock.js +13 -13
- package/dist/browser/WebLock.js.map +1 -1
- package/dist/browser/mod.js +6 -6
- package/dist/cuid/cuid.browser.d.ts.map +1 -1
- package/dist/cuid/cuid.node.d.ts.map +1 -1
- package/dist/effect/Debug.d.ts +4 -7
- package/dist/effect/Debug.d.ts.map +1 -1
- package/dist/effect/Debug.js +34 -40
- package/dist/effect/Debug.js.map +1 -1
- package/dist/effect/Effect.d.ts +31 -22
- package/dist/effect/Effect.d.ts.map +1 -1
- package/dist/effect/Effect.js +54 -50
- package/dist/effect/Effect.js.map +1 -1
- package/dist/effect/Effect.test.d.ts +2 -0
- package/dist/effect/Effect.test.d.ts.map +1 -0
- package/dist/effect/Effect.test.js +72 -0
- package/dist/effect/Effect.test.js.map +1 -0
- package/dist/effect/Error.d.ts +4 -6
- package/dist/effect/Error.d.ts.map +1 -1
- package/dist/effect/Logger.d.ts +0 -6
- package/dist/effect/Logger.d.ts.map +1 -1
- package/dist/effect/Logger.js +0 -32
- package/dist/effect/Logger.js.map +1 -1
- package/dist/effect/OtelTracer.d.ts +1 -1
- package/dist/effect/OtelTracer.d.ts.map +1 -1
- package/dist/effect/OtelTracer.js +2 -3
- package/dist/effect/OtelTracer.js.map +1 -1
- package/dist/effect/RpcClient.d.ts +9 -9
- package/dist/effect/RpcClient.d.ts.map +1 -1
- package/dist/effect/RpcClient.js +113 -84
- package/dist/effect/RpcClient.js.map +1 -1
- package/dist/effect/Schedule.d.ts +1 -1
- package/dist/effect/Schedule.d.ts.map +1 -1
- package/dist/effect/Schedule.js +2 -2
- package/dist/effect/Schedule.js.map +1 -1
- package/dist/effect/Schema/debug-diff.d.ts +1 -1
- package/dist/effect/Schema/debug-diff.d.ts.map +1 -1
- package/dist/effect/Schema/debug-diff.js +5 -7
- package/dist/effect/Schema/debug-diff.js.map +1 -1
- package/dist/effect/Schema/debug-diff.test.js +8 -5
- package/dist/effect/Schema/debug-diff.test.js.map +1 -1
- package/dist/effect/Schema/index.d.ts +28 -20
- package/dist/effect/Schema/index.d.ts.map +1 -1
- package/dist/effect/Schema/index.js +56 -29
- package/dist/effect/Schema/index.js.map +1 -1
- package/dist/effect/Stream.d.ts +13 -5
- package/dist/effect/Stream.d.ts.map +1 -1
- package/dist/effect/Stream.js +19 -12
- package/dist/effect/Stream.js.map +1 -1
- package/dist/effect/Stream.test.js +10 -10
- package/dist/effect/Stream.test.js.map +1 -1
- package/dist/effect/Subscribable.d.ts +9 -3
- package/dist/effect/Subscribable.d.ts.map +1 -1
- package/dist/effect/Subscribable.js +20 -35
- package/dist/effect/Subscribable.js.map +1 -1
- package/dist/effect/SubscriptionRef.d.ts +5 -6
- package/dist/effect/SubscriptionRef.d.ts.map +1 -1
- package/dist/effect/SubscriptionRef.js +2 -3
- package/dist/effect/SubscriptionRef.js.map +1 -1
- package/dist/effect/TaskTracing.d.ts +1 -1
- package/dist/effect/TaskTracing.d.ts.map +1 -1
- package/dist/effect/TaskTracing.js +12 -16
- package/dist/effect/TaskTracing.js.map +1 -1
- package/dist/effect/WebChannel/WebChannel.d.ts +7 -7
- package/dist/effect/WebChannel/WebChannel.d.ts.map +1 -1
- package/dist/effect/WebChannel/WebChannel.js +69 -48
- package/dist/effect/WebChannel/WebChannel.js.map +1 -1
- package/dist/effect/WebChannel/WebChannel.test.js +16 -16
- package/dist/effect/WebChannel/WebChannel.test.js.map +1 -1
- package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts.map +1 -1
- package/dist/effect/WebChannel/broadcastChannelWithAck.js +18 -11
- package/dist/effect/WebChannel/broadcastChannelWithAck.js.map +1 -1
- package/dist/effect/WebChannel/common.d.ts +16 -17
- package/dist/effect/WebChannel/common.d.ts.map +1 -1
- package/dist/effect/WebChannel/common.js +6 -6
- package/dist/effect/WebChannel/common.js.map +1 -1
- package/dist/effect/WebChannel/mod.js +3 -3
- package/dist/effect/WebSocket.d.ts +4 -6
- package/dist/effect/WebSocket.d.ts.map +1 -1
- package/dist/effect/WebSocket.js +4 -4
- package/dist/effect/WebSocket.js.map +1 -1
- package/dist/effect/WebSocket.test.js +3 -3
- package/dist/effect/WebSocket.test.js.map +1 -1
- package/dist/effect/mod.browser-build.test.d.ts +2 -0
- package/dist/effect/mod.browser-build.test.d.ts.map +1 -0
- package/dist/effect/mod.browser-build.test.js +18 -0
- package/dist/effect/mod.browser-build.test.js.map +1 -0
- package/dist/effect/mod.d.ts +13 -15
- package/dist/effect/mod.d.ts.map +1 -1
- package/dist/effect/mod.js +28 -33
- package/dist/effect/mod.js.map +1 -1
- package/dist/effect/spanEvent.d.ts.map +1 -1
- package/dist/effect/spanEvent.js +2 -2
- package/dist/effect/spanEvent.js.map +1 -1
- package/dist/effect/spanEvent.test.js +11 -14
- package/dist/effect/spanEvent.test.js.map +1 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +1 -1
- package/dist/env.js.map +1 -1
- package/dist/fast-deep-equal.d.ts.map +1 -1
- package/dist/fast-deep-equal.js +1 -2
- package/dist/fast-deep-equal.js.map +1 -1
- package/dist/misc.d.ts.map +1 -1
- package/dist/misc.js +3 -3
- package/dist/misc.js.map +1 -1
- package/dist/mod.d.ts +1 -36
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +19 -27
- package/dist/mod.js.map +1 -1
- package/dist/node/mod.d.ts +11 -36
- package/dist/node/mod.d.ts.map +1 -1
- package/dist/node/mod.js +17 -42
- package/dist/node/mod.js.map +1 -1
- package/dist/object/index.d.ts +0 -9
- package/dist/object/index.d.ts.map +1 -1
- package/dist/object/index.js +1 -10
- package/dist/object/index.js.map +1 -1
- package/dist/object/stringify-object.d.ts.map +1 -1
- package/dist/object/stringify-object.test.js +1 -1
- package/dist/promise.d.ts.map +1 -1
- package/dist/qr.d.ts.map +1 -1
- package/dist/set.d.ts.map +1 -1
- package/dist/string.d.ts +0 -2
- package/dist/string.d.ts.map +1 -1
- package/dist/string.js +0 -2
- package/dist/string.js.map +1 -1
- package/package.json +38 -56
- package/src/NoopTracer.test.ts +36 -0
- package/src/NoopTracer.ts +18 -41
- package/src/browser/Opfs/Opfs.ts +304 -277
- package/src/browser/Opfs/debug-utils.ts +7 -6
- package/src/browser/Opfs/utils.ts +36 -26
- package/src/browser/QuotaExceededError.ts +13 -10
- package/src/browser/WebChannelBrowser.ts +25 -11
- package/src/browser/WebError.test.ts +6 -6
- package/src/browser/WebError.ts +107 -133
- package/src/browser/WebLock.ts +13 -14
- package/src/effect/Debug.ts +69 -78
- package/src/effect/Effect.test.ts +117 -0
- package/src/effect/Effect.ts +86 -73
- package/src/effect/Logger.ts +0 -48
- package/src/effect/OtelTracer.ts +2 -3
- package/src/effect/RpcClient.ts +126 -93
- package/src/effect/Schedule.ts +4 -5
- package/src/effect/Schema/debug-diff.test.ts +6 -6
- package/src/effect/Schema/debug-diff.ts +6 -8
- package/src/effect/Schema/index.ts +122 -61
- package/src/effect/Stream.test.ts +9 -9
- package/src/effect/Stream.ts +23 -16
- package/src/effect/Subscribable.ts +31 -42
- package/src/effect/SubscriptionRef.ts +8 -12
- package/src/effect/TaskTracing.ts +13 -16
- package/src/effect/WebChannel/WebChannel.test.ts +23 -23
- package/src/effect/WebChannel/WebChannel.ts +87 -56
- package/src/effect/WebChannel/broadcastChannelWithAck.ts +21 -11
- package/src/effect/WebChannel/common.ts +14 -15
- package/src/effect/WebSocket.test.ts +2 -2
- package/src/effect/WebSocket.ts +9 -6
- package/src/effect/mod.browser-build.test.ts +19 -0
- package/src/effect/mod.ts +37 -69
- package/src/effect/spanEvent.test.ts +10 -13
- package/src/effect/spanEvent.ts +5 -3
- package/src/fast-deep-equal.ts +4 -5
- package/src/misc.ts +3 -3
- package/src/mod.ts +5 -41
- package/src/node/mod.ts +20 -46
- package/src/object/index.ts +0 -24
- package/src/string.ts +0 -3
- package/dist/effect/BucketQueue.d.ts +0 -20
- package/dist/effect/BucketQueue.d.ts.map +0 -1
- package/dist/effect/BucketQueue.js +0 -34
- package/dist/effect/BucketQueue.js.map +0 -1
- package/dist/effect/Scheduler.d.ts +0 -4
- package/dist/effect/Scheduler.d.ts.map +0 -1
- package/dist/effect/Scheduler.js +0 -9
- package/dist/effect/Scheduler.js.map +0 -1
- package/dist/effect/ServiceContext.d.ts +0 -37
- package/dist/effect/ServiceContext.d.ts.map +0 -1
- package/dist/effect/ServiceContext.js +0 -55
- package/dist/effect/ServiceContext.js.map +0 -1
- package/dist/guards.d.ts +0 -20
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -20
- package/dist/guards.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts +0 -4
- package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunner.js +0 -128
- package/dist/node/ChildProcessRunner/ChildProcessRunner.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts +0 -10
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +0 -217
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +0 -84
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js +0 -68
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts +0 -2
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +0 -52
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts +0 -23
- package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts.map +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessWorker.js +0 -138
- package/dist/node/ChildProcessRunner/ChildProcessWorker.js.map +0 -1
- package/dist/object/omit.d.ts +0 -3
- package/dist/object/omit.d.ts.map +0 -1
- package/dist/object/omit.js +0 -14
- package/dist/object/omit.js.map +0 -1
- package/dist/object/pick.d.ts +0 -14
- package/dist/object/pick.d.ts.map +0 -1
- package/dist/object/pick.js +0 -17
- package/dist/object/pick.js.map +0 -1
- package/dist/time.d.ts +0 -12
- package/dist/time.d.ts.map +0 -1
- package/dist/time.js +0 -22
- package/dist/time.js.map +0 -1
- package/src/effect/BucketQueue.ts +0 -49
- package/src/effect/Scheduler.ts +0 -13
- package/src/effect/ServiceContext.ts +0 -108
- package/src/guards.ts +0 -23
- package/src/node/ChildProcessRunner/ChildProcessRunner.ts +0 -148
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +0 -311
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts +0 -78
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +0 -65
- package/src/node/ChildProcessRunner/ChildProcessWorker.ts +0 -169
- package/src/object/omit.ts +0 -17
- package/src/object/pick.ts +0 -27
- package/src/time.ts +0 -25
package/package.json
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
"$genie": {
|
|
3
|
+
"source": "package.json.genie.ts",
|
|
4
|
+
"warning": "DO NOT EDIT - changes will be overwritten",
|
|
5
|
+
"workspaceClosureDirs": [
|
|
6
|
+
"packages/@livestore/utils"
|
|
7
|
+
]
|
|
8
8
|
},
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
"package.json",
|
|
12
|
-
"src"
|
|
13
|
-
],
|
|
9
|
+
"name": "@livestore/utils",
|
|
10
|
+
"version": "0.5.0-dev.1",
|
|
14
11
|
"type": "module",
|
|
15
12
|
"sideEffects": [
|
|
16
13
|
"./src/global.ts",
|
|
17
14
|
"./dist/global.js"
|
|
18
15
|
],
|
|
19
|
-
"
|
|
16
|
+
"license": "Apache-2.0",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/livestorejs/livestore.git"
|
|
20
|
+
},
|
|
20
21
|
"exports": {
|
|
21
22
|
".": {
|
|
22
23
|
"types": "./dist/mod.d.ts",
|
|
@@ -53,33 +54,25 @@
|
|
|
53
54
|
"default": "./dist/bun/mod.js"
|
|
54
55
|
}
|
|
55
56
|
},
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
|
|
57
|
+
"files": [
|
|
58
|
+
"dist",
|
|
59
|
+
"package.json",
|
|
60
|
+
"src"
|
|
61
|
+
],
|
|
59
62
|
"dependencies": {
|
|
60
|
-
"@effect/platform-node": "0.
|
|
63
|
+
"@effect/platform-node": "4.0.3",
|
|
61
64
|
"@standard-schema/spec": "1.1.0",
|
|
62
65
|
"nanoid": "5.0.9",
|
|
63
66
|
"pretty-bytes": "7.0.1",
|
|
64
67
|
"qrcode-generator": "2.0.4"
|
|
65
68
|
},
|
|
66
69
|
"devDependencies": {
|
|
67
|
-
"@effect/
|
|
68
|
-
"@effect/
|
|
69
|
-
"@effect/
|
|
70
|
-
"@effect/
|
|
71
|
-
"@effect/
|
|
72
|
-
"@effect/
|
|
73
|
-
"@effect/platform-browser": "0.76.0",
|
|
74
|
-
"@effect/platform-bun": "0.89.0",
|
|
75
|
-
"@effect/platform-node": "0.106.0",
|
|
76
|
-
"@effect/printer": "0.49.0",
|
|
77
|
-
"@effect/printer-ansi": "0.49.0",
|
|
78
|
-
"@effect/rpc": "0.75.1",
|
|
79
|
-
"@effect/sql": "0.51.1",
|
|
80
|
-
"@effect/typeclass": "0.40.0",
|
|
81
|
-
"@effect/vitest": "0.29.0",
|
|
82
|
-
"@effect/workflow": "0.18.0",
|
|
70
|
+
"@effect/opentelemetry": "4.0.3",
|
|
71
|
+
"@effect/platform-browser": "4.0.3",
|
|
72
|
+
"@effect/platform-bun": "4.0.3",
|
|
73
|
+
"@effect/platform-node": "4.0.3",
|
|
74
|
+
"@effect/platform-node-shared": "4.0.3",
|
|
75
|
+
"@effect/vitest": "4.0.3",
|
|
83
76
|
"@opentelemetry/api": "1.9.0",
|
|
84
77
|
"@opentelemetry/resources": "2.2.0",
|
|
85
78
|
"@standard-schema/spec": "1.1.0",
|
|
@@ -87,38 +80,27 @@
|
|
|
87
80
|
"@types/jsdom": "21.1.7",
|
|
88
81
|
"@types/node": "25.3.3",
|
|
89
82
|
"@types/web": "0.0.264",
|
|
90
|
-
"effect": "
|
|
83
|
+
"effect": "4.0.3",
|
|
84
|
+
"esbuild": "0.28.0",
|
|
91
85
|
"jsdom": "26.1.0",
|
|
92
|
-
"vitest": "
|
|
86
|
+
"vitest": "4.1.9"
|
|
93
87
|
},
|
|
94
88
|
"peerDependencies": {
|
|
95
|
-
"@effect/
|
|
96
|
-
"@effect/
|
|
97
|
-
"@effect/
|
|
98
|
-
"@effect/
|
|
99
|
-
"@effect/
|
|
100
|
-
"@effect/
|
|
101
|
-
"@effect/platform-browser": "^0.76.0",
|
|
102
|
-
"@effect/platform-bun": "^0.89.0",
|
|
103
|
-
"@effect/platform-node": "^0.106.0",
|
|
104
|
-
"@effect/printer": "^0.49.0",
|
|
105
|
-
"@effect/printer-ansi": "^0.49.0",
|
|
106
|
-
"@effect/rpc": "^0.75.1",
|
|
107
|
-
"@effect/sql": "^0.51.1",
|
|
108
|
-
"@effect/typeclass": "^0.40.0",
|
|
109
|
-
"@effect/vitest": "^0.29.0",
|
|
89
|
+
"@effect/opentelemetry": "^4.0.3",
|
|
90
|
+
"@effect/platform-browser": "^4.0.3",
|
|
91
|
+
"@effect/platform-bun": "^4.0.3",
|
|
92
|
+
"@effect/platform-node": "^4.0.3",
|
|
93
|
+
"@effect/platform-node-shared": "^4.0.3",
|
|
94
|
+
"@effect/vitest": "^4.0.3",
|
|
110
95
|
"@opentelemetry/api": "^1.9.0",
|
|
111
96
|
"@opentelemetry/resources": "^2.2.0",
|
|
112
97
|
"@standard-schema/spec": "^1.1.0",
|
|
113
|
-
"effect": "^
|
|
98
|
+
"effect": "^4.0.3"
|
|
114
99
|
},
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"warning": "DO NOT EDIT - changes will be overwritten",
|
|
118
|
-
"workspaceClosureDirs": [
|
|
119
|
-
"packages/@livestore/utils"
|
|
120
|
-
]
|
|
100
|
+
"publishConfig": {
|
|
101
|
+
"access": "public"
|
|
121
102
|
},
|
|
103
|
+
"react-native": "./dist/index.js",
|
|
122
104
|
"scripts": {
|
|
123
105
|
"test": "vitest"
|
|
124
106
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { INVALID_SPAN_CONTEXT, isSpanContextValid, ROOT_CONTEXT } from '@opentelemetry/api'
|
|
2
|
+
import { Effect, FileSystem, type Layer } from 'effect'
|
|
3
|
+
import { describe, expect, it } from 'vitest'
|
|
4
|
+
|
|
5
|
+
import { NodeFileSystemWithWatch, NodeRecursiveWatchLayer } from '@livestore/utils/node'
|
|
6
|
+
|
|
7
|
+
import { makeNoopSpan, makeNoopTracer } from './NoopTracer.ts'
|
|
8
|
+
|
|
9
|
+
describe('NoopTracer', () => {
|
|
10
|
+
it('returns the canonical invalid OpenTelemetry span context', () => {
|
|
11
|
+
const spanContext = makeNoopSpan().spanContext()
|
|
12
|
+
|
|
13
|
+
expect(spanContext).toBe(INVALID_SPAN_CONTEXT)
|
|
14
|
+
expect(isSpanContextValid(spanContext)).toBe(false)
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
it('runs active-span callbacks for every tracer overload', () => {
|
|
18
|
+
const tracer = makeNoopTracer()
|
|
19
|
+
expect(tracer.startActiveSpan('two arguments', () => 'two')).toBe('two')
|
|
20
|
+
expect(tracer.startActiveSpan('three arguments', {}, () => 'three')).toBe('three')
|
|
21
|
+
expect(tracer.startActiveSpan('four arguments', {}, ROOT_CONTEXT, () => 'four')).toBe('four')
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
describe('@livestore/utils/node recursive watch compatibility', () => {
|
|
26
|
+
it('keeps the public layers type-compatible and runnable', async () => {
|
|
27
|
+
const watchLayer: Layer.Layer<FileSystem.WatchBackend> = NodeRecursiveWatchLayer
|
|
28
|
+
const fileSystemLayer: Layer.Layer<FileSystem.FileSystem> = NodeFileSystemWithWatch
|
|
29
|
+
|
|
30
|
+
const watchBackend = await Effect.runPromise(FileSystem.WatchBackend.pipe(Effect.provide(watchLayer)))
|
|
31
|
+
const fileSystem = await Effect.runPromise(FileSystem.FileSystem.pipe(Effect.provide(fileSystemLayer)))
|
|
32
|
+
|
|
33
|
+
expect(typeof watchBackend.register).toBe('function')
|
|
34
|
+
expect(typeof fileSystem.watch).toBe('function')
|
|
35
|
+
})
|
|
36
|
+
})
|
package/src/NoopTracer.ts
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import type * as otel from '@opentelemetry/api'
|
|
4
|
-
|
|
5
|
-
import { cuid } from '@livestore/utils/cuid'
|
|
1
|
+
import { INVALID_SPAN_CONTEXT, type Context, type Span, type SpanOptions, type Tracer } from '@opentelemetry/api'
|
|
6
2
|
|
|
7
3
|
export const makeNoopSpan = () => {
|
|
8
|
-
const performanceStartTime = performance.now()
|
|
9
|
-
|
|
10
4
|
const spanImpl = {
|
|
11
|
-
_performanceStartTime: performanceStartTime,
|
|
12
5
|
setAttribute: () => null,
|
|
13
6
|
setAttributes: () => null,
|
|
14
7
|
addEvent: () => null,
|
|
@@ -16,54 +9,38 @@ export const makeNoopSpan = () => {
|
|
|
16
9
|
setStatus: () => null,
|
|
17
10
|
updateName: () => null,
|
|
18
11
|
recordException: () => null,
|
|
19
|
-
end: () =>
|
|
20
|
-
|
|
21
|
-
const duration = endTime - performanceStartTime
|
|
22
|
-
const durationSecs = duration / 1000
|
|
23
|
-
const durationRestNs = (duration % 1000) * 1_000_000
|
|
24
|
-
spanImpl._duration = [durationSecs, durationRestNs] as [number, number]
|
|
25
|
-
},
|
|
26
|
-
spanContext: () => {
|
|
27
|
-
return {
|
|
28
|
-
traceId: `livestore-noop-trace-id${cuid()}`,
|
|
29
|
-
spanId: `livestore-noop-span-id${cuid()}`,
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
_duration: [0, 0] as [number, number],
|
|
12
|
+
end: () => null,
|
|
13
|
+
spanContext: () => INVALID_SPAN_CONTEXT,
|
|
33
14
|
}
|
|
34
15
|
|
|
35
16
|
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- noop otel.Span implementation; only implements the subset needed by LiveStore
|
|
36
|
-
return spanImpl as unknown as
|
|
17
|
+
return spanImpl as unknown as Span
|
|
37
18
|
}
|
|
38
19
|
|
|
39
20
|
export const makeNoopTracer = () => {
|
|
40
21
|
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- noop otel.Tracer implementation; only implements the subset needed by LiveStore
|
|
41
|
-
return new NoopTracer() as unknown as
|
|
22
|
+
return new NoopTracer() as unknown as Tracer
|
|
42
23
|
}
|
|
43
24
|
|
|
44
25
|
export class NoopTracer {
|
|
45
26
|
startSpan = () => makeNoopSpan()
|
|
46
27
|
|
|
47
|
-
startActiveSpan<F extends (span:
|
|
48
|
-
startActiveSpan<F extends (span:
|
|
49
|
-
|
|
50
|
-
opts: otel.SpanOptions,
|
|
51
|
-
fn: F,
|
|
52
|
-
): ReturnType<F>
|
|
53
|
-
startActiveSpan<F extends (span: otel.Span) => ReturnType<F>>(
|
|
28
|
+
startActiveSpan<F extends (span: Span) => ReturnType<F>>(name: string, fn: F): ReturnType<F>
|
|
29
|
+
startActiveSpan<F extends (span: Span) => ReturnType<F>>(name: string, opts: SpanOptions, fn: F): ReturnType<F>
|
|
30
|
+
startActiveSpan<F extends (span: Span) => ReturnType<F>>(
|
|
54
31
|
name: string,
|
|
55
|
-
opts:
|
|
56
|
-
ctx:
|
|
32
|
+
opts: SpanOptions,
|
|
33
|
+
ctx: Context,
|
|
57
34
|
fn: F,
|
|
58
35
|
): ReturnType<F>
|
|
59
|
-
startActiveSpan<F extends (span:
|
|
36
|
+
startActiveSpan<F extends (span: Span) => ReturnType<F>>(
|
|
60
37
|
_name: string,
|
|
61
|
-
arg2?: F |
|
|
62
|
-
arg3?: F |
|
|
38
|
+
arg2?: F | SpanOptions,
|
|
39
|
+
arg3?: F | Context,
|
|
63
40
|
arg4?: F,
|
|
64
41
|
): ReturnType<F> | undefined {
|
|
65
|
-
let _opts:
|
|
66
|
-
let _ctx:
|
|
42
|
+
let _opts: SpanOptions | undefined
|
|
43
|
+
let _ctx: Context | undefined
|
|
67
44
|
let fn: F
|
|
68
45
|
|
|
69
46
|
if (arguments.length < 2) {
|
|
@@ -73,14 +50,14 @@ export class NoopTracer {
|
|
|
73
50
|
fn = arg2 as F
|
|
74
51
|
} else if (arguments.length === 3) {
|
|
75
52
|
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 3 args, arg2 is SpanOptions
|
|
76
|
-
_opts = arg2 as
|
|
53
|
+
_opts = arg2 as SpanOptions | undefined
|
|
77
54
|
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 3 args, arg3 is the callback
|
|
78
55
|
fn = arg3 as F
|
|
79
56
|
} else {
|
|
80
57
|
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 4 args, arg2 is SpanOptions
|
|
81
|
-
_opts = arg2 as
|
|
58
|
+
_opts = arg2 as SpanOptions | undefined
|
|
82
59
|
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 4 args, arg3 is Context
|
|
83
|
-
_ctx = arg3 as
|
|
60
|
+
_ctx = arg3 as Context | undefined
|
|
84
61
|
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- arguments-based overload dispatch: with 4 args, arg4 is the callback
|
|
85
62
|
fn = arg4 as F
|
|
86
63
|
}
|