@livestore/utils 0.4.0 → 0.5.0-dev.0
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/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 +17 -0
- package/dist/NoopTracer.test.js.map +1 -0
- 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 +132 -307
- 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 +5 -4
- package/dist/browser/Opfs/debug-utils.js.map +1 -1
- 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 +21 -10
- package/dist/browser/WebChannelBrowser.js.map +1 -1
- package/dist/browser/WebError.d.ts +54 -86
- package/dist/browser/WebError.d.ts.map +1 -1
- package/dist/browser/WebError.js +91 -84
- package/dist/browser/WebError.js.map +1 -1
- package/dist/browser/WebError.test.js +6 -6
- package/dist/browser/WebError.test.js.map +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/effect/Debug.d.ts +4 -7
- package/dist/effect/Debug.d.ts.map +1 -1
- package/dist/effect/Debug.js +32 -36
- 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 +51 -47
- 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 +7 -7
- package/dist/effect/RpcClient.d.ts.map +1 -1
- package/dist/effect/RpcClient.js +72 -52
- 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 +7 -4
- 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 +55 -28
- 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 +9 -9
- 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 +64 -43
- package/dist/effect/WebChannel/WebChannel.js.map +1 -1
- package/dist/effect/WebChannel/WebChannel.test.js +15 -15
- 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 +16 -9
- 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/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 +2 -2
- 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 +13 -18
- 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 +10 -13
- package/dist/effect/spanEvent.test.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.js +2 -2
- package/dist/misc.js.map +1 -1
- package/dist/mod.d.ts +0 -35
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +0 -8
- package/dist/mod.js.map +1 -1
- package/dist/node/mod.d.ts +17 -11
- package/dist/node/mod.d.ts.map +1 -1
- package/dist/node/mod.js +23 -16
- 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 +0 -9
- package/dist/object/index.js.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 +18 -36
- package/src/NoopTracer.test.ts +20 -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 +66 -59
- package/src/effect/Effect.test.ts +117 -0
- package/src/effect/Effect.ts +84 -71
- package/src/effect/Logger.ts +0 -48
- package/src/effect/OtelTracer.ts +2 -3
- package/src/effect/RpcClient.ts +80 -61
- 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 -55
- 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 +35 -69
- package/src/effect/spanEvent.test.ts +10 -13
- package/src/effect/spanEvent.ts +5 -3
- package/src/fast-deep-equal.ts +1 -2
- package/src/misc.ts +2 -2
- package/src/mod.ts +0 -36
- package/src/node/mod.ts +26 -20
- 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/dist/effect/Effect.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import * as OtelTracer from '@effect/opentelemetry/
|
|
2
|
-
import { Cause, Deferred, Duration, Effect, Fiber, pipe, Scope, } from 'effect';
|
|
3
|
-
import {
|
|
4
|
-
import { dual } from 'effect/Function';
|
|
5
|
-
import { isDevEnv, isPromise, objectToString } from "../mod.js";
|
|
6
|
-
import { UnknownError } from "./Error.js";
|
|
1
|
+
import * as OtelTracer from '@effect/opentelemetry/OtelTracer';
|
|
2
|
+
import { Cause, Console, Deferred, Duration, Effect, Function, Fiber, pipe, Predicate, Scope, } from 'effect';
|
|
3
|
+
import { isDevEnv, objectToString } from "../misc.js";
|
|
7
4
|
export * from 'effect/Effect';
|
|
8
5
|
export { spanEvent } from "./spanEvent.js";
|
|
9
6
|
// export const log = <A>(message: A, ...rest: any[]): Effect.Effect<void> =>
|
|
@@ -18,29 +15,36 @@ export { spanEvent } from "./spanEvent.js";
|
|
|
18
15
|
// Effect.sync(() => {
|
|
19
16
|
// console.error(message, ...rest)
|
|
20
17
|
// })
|
|
21
|
-
/** Same as `Effect.scopeWith` but with a
|
|
18
|
+
/** Same as `Effect.scopeWith` but with a closeable `Scope`. */
|
|
22
19
|
export const scopeWithCloseable = (fn) => Effect.gen(function* () {
|
|
23
|
-
// const parentScope = yield* Scope.Scope
|
|
24
|
-
// const scope = yield* Scope.fork(parentScope, ExecutionStrategy.sequential)
|
|
25
20
|
const scope = yield* Scope.make();
|
|
26
21
|
yield* Effect.addFinalizer((exit) => Scope.close(scope, exit));
|
|
27
|
-
return yield* fn(scope).pipe(Scope.
|
|
22
|
+
return yield* fn(scope).pipe(Scope.provide(scope));
|
|
28
23
|
});
|
|
29
|
-
export
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
export function trySyncOrPromiseOrEffect(operation) {
|
|
25
|
+
return Effect.try({
|
|
26
|
+
try: () => {
|
|
27
|
+
const result = operation();
|
|
28
|
+
if (Effect.isEffect(result) === true) {
|
|
29
|
+
// @effect-diagnostics-next-line anyUnknownInErrorContext:off -- dynamic implementation boundary; the public overload preserves exact Effect error and requirement channels
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
if (Predicate.isPromiseLike(result) === true) {
|
|
33
|
+
return Effect.tryPromise(() => result);
|
|
34
|
+
}
|
|
35
|
+
return Effect.succeed(result);
|
|
36
|
+
},
|
|
37
|
+
catch: (cause) => new Cause.UnknownError(cause),
|
|
38
|
+
}).pipe(Effect.flatten);
|
|
39
|
+
}
|
|
34
40
|
export const acquireReleaseLog = (label) => Effect.acquireRelease(Effect.log(`${label} acquire`), (_, ex) => Effect.log(`${label} release`, ex));
|
|
35
41
|
export const addFinalizerLog = (...msgs) => Effect.addFinalizer((exit) => Effect.log(...msgs, exit._tag === 'Success' ? 'with success' : `with failure: ${Cause.pretty(exit.cause)}`));
|
|
36
42
|
export const logBefore = (...msgs) => (eff) => Effect.andThen(Effect.log(...msgs), eff);
|
|
37
43
|
/** Logs both on errors and defects */
|
|
38
|
-
export const tapCauseLogPretty = (eff) => Effect.
|
|
39
|
-
if (Cause.
|
|
40
|
-
// console.log('interrupted', Cause.pretty(err), err)
|
|
44
|
+
export const tapCauseLogPretty = (eff) => Effect.tapCause(eff, (cause) => Effect.gen(function* () {
|
|
45
|
+
if (Cause.hasInterruptsOnly(cause) === true)
|
|
41
46
|
return;
|
|
42
|
-
|
|
43
|
-
const span = yield* OtelTracer.currentOtelSpan.pipe(Effect.catchTag('NoSuchElementException', (_) => Effect.succeed(undefined)));
|
|
47
|
+
const span = yield* OtelTracer.currentOtelSpan.pipe(Effect.catchTag('NoSuchElementError', (_) => Effect.void));
|
|
44
48
|
const firstErrLine = cause.toString().split('\n')[0];
|
|
45
49
|
yield* Effect.logError(firstErrLine, cause).pipe((_) => span === undefined
|
|
46
50
|
? _
|
|
@@ -61,7 +65,7 @@ export const dieDebugger = (msg, ...args) => Effect.suspend(() => {
|
|
|
61
65
|
debugger;
|
|
62
66
|
void args; // Keeps the variable in scope so it's inspectable when the debugger pauses
|
|
63
67
|
}
|
|
64
|
-
return Effect.
|
|
68
|
+
return Effect.die(new Error(msg));
|
|
65
69
|
});
|
|
66
70
|
/**
|
|
67
71
|
* Converts a failure into a defect, pausing at a breakpoint in development.
|
|
@@ -74,30 +78,30 @@ export const dieDebugger = (msg, ...args) => Effect.suspend(() => {
|
|
|
74
78
|
export const orDieDebugger = (self) => Effect.matchEffect(self, {
|
|
75
79
|
onFailure: (error) =>
|
|
76
80
|
// Keep the debugger hook so that `debugger` runs only when the wrapped effect actually fails, not while building the wrapper.
|
|
77
|
-
Effect.
|
|
81
|
+
Effect.suspend(() => {
|
|
78
82
|
if (isDevEnv() === true) {
|
|
79
83
|
// oxlint-disable-next-line eslint(no-debugger) -- intentional breakpoint for impossible states during development
|
|
80
84
|
debugger;
|
|
81
85
|
}
|
|
82
|
-
return error;
|
|
86
|
+
return Effect.die(error);
|
|
83
87
|
}),
|
|
84
88
|
onSuccess: Effect.succeed,
|
|
85
89
|
});
|
|
86
|
-
export const ignoreIf = dual(2, (self, predicate) => self.pipe(Effect.catchIf(predicate, () => Effect.void)));
|
|
90
|
+
export const ignoreIf = Function.dual(2, (self, predicate) => self.pipe(Effect.catchIf(predicate, () => Effect.void)));
|
|
87
91
|
export const eventListener = (target, type, handler, options) => Effect.gen(function* () {
|
|
88
|
-
const
|
|
89
|
-
const handlerFn = (event) => handler(event).pipe(Effect.
|
|
92
|
+
const services = yield* Effect.context();
|
|
93
|
+
const handlerFn = (event) => handler(event).pipe(Effect.runForkWith(services));
|
|
90
94
|
target.addEventListener(type, handlerFn, { once: options?.once ?? false });
|
|
91
95
|
yield* Effect.addFinalizer(() => Effect.sync(() => target.removeEventListener(type, handlerFn)));
|
|
92
96
|
});
|
|
93
97
|
export const logWarnIfTakesLongerThan = ({ label, duration }) => (eff) => Effect.gen(function* () {
|
|
94
|
-
const
|
|
98
|
+
const services = yield* Effect.context();
|
|
95
99
|
let tookLongerThanTimer = false;
|
|
96
100
|
const timeoutFiber = Effect.sleep(duration).pipe(Effect.tap(() => {
|
|
97
101
|
tookLongerThanTimer = true;
|
|
98
102
|
// TODO include span info
|
|
99
103
|
return Effect.logWarning(`${label}: Took longer than ${objectToString(duration)}ms`);
|
|
100
|
-
}), Effect.
|
|
104
|
+
}), Effect.runForkWith(services));
|
|
101
105
|
const start = Date.now();
|
|
102
106
|
const res = yield* eff.pipe(Effect.exit, Effect.onInterrupt(Effect.fn(function* () {
|
|
103
107
|
const end = Date.now();
|
|
@@ -118,11 +122,11 @@ export const logDuration = (label) => (eff) => Effect.gen(function* () {
|
|
|
118
122
|
const start = Date.now();
|
|
119
123
|
const res = yield* eff;
|
|
120
124
|
const end = Date.now();
|
|
121
|
-
yield* Effect.log(`${label}: ${Duration.format(end - start)}`);
|
|
125
|
+
yield* Effect.log(`${label}: ${Duration.format(Duration.millis(end - start))}`);
|
|
122
126
|
return res;
|
|
123
127
|
});
|
|
124
128
|
export const tapSync = (tapFn) => (eff) => Effect.tap(eff, (a) => Effect.sync(() => tapFn(a)));
|
|
125
|
-
export const debugLogEnv = (msg) => pipe(Effect.context(), Effect.tap((env) => log(msg ?? 'debugLogEnv', env)));
|
|
129
|
+
export const debugLogEnv = (msg) => pipe(Effect.context(), Effect.tap((env) => Console.log(msg ?? 'debugLogEnv', env)));
|
|
126
130
|
/**
|
|
127
131
|
* Enforces a time limit on an effect, triggering a defect on timeout.
|
|
128
132
|
*
|
|
@@ -130,23 +134,23 @@ export const debugLogEnv = (msg) => pipe(Effect.context(), Effect.tap((env) => l
|
|
|
130
134
|
*
|
|
131
135
|
* This function allows you to enforce a time limit on the execution of an
|
|
132
136
|
* effect. If the effect does not complete within the given duration, it dies
|
|
133
|
-
* with a {@link Cause.
|
|
134
|
-
* {@link Effect.timeout}, which adds `
|
|
137
|
+
* with a {@link Cause.TimeoutError} as an unchecked defect. Unlike
|
|
138
|
+
* {@link Effect.timeout}, which adds `TimeoutError` to the error channel,
|
|
135
139
|
* this function keeps the error channel unchanged by treating the timeout as
|
|
136
140
|
* a defect.
|
|
137
141
|
*
|
|
138
142
|
* The returned effect will either:
|
|
139
143
|
* - Succeed with the original effect's result if it completes within the
|
|
140
144
|
* specified duration.
|
|
141
|
-
* - Die with a {@link Cause.
|
|
145
|
+
* - Die with a {@link Cause.TimeoutError} defect if the time limit is exceeded.
|
|
142
146
|
*
|
|
143
147
|
* @see {@link timeoutOrDieMessage} for a version with a custom message.
|
|
144
|
-
* @see {@link Effect.timeout} for a version that raises a `
|
|
145
|
-
* @see {@link Effect.
|
|
148
|
+
* @see {@link Effect.timeout} for a version that raises a `TimeoutError` as a typed error.
|
|
149
|
+
* @see {@link Effect.timeoutOrElse} for a version with a custom timeout branch.
|
|
146
150
|
*/
|
|
147
|
-
export const timeoutOrDie = (duration) => (self) => Effect.
|
|
151
|
+
export const timeoutOrDie = (duration) => (self) => Effect.timeoutOrElse(self, {
|
|
148
152
|
duration,
|
|
149
|
-
|
|
153
|
+
orElse: () => Effect.die(new Cause.TimeoutError()),
|
|
150
154
|
});
|
|
151
155
|
/**
|
|
152
156
|
* Enforces a time limit on an effect, triggering a defect with a custom
|
|
@@ -155,23 +159,23 @@ export const timeoutOrDie = (duration) => (self) => Effect.timeoutFailCause(self
|
|
|
155
159
|
* @remarks
|
|
156
160
|
*
|
|
157
161
|
* This function behaves like {@link timeoutOrDie}, but allows you to provide
|
|
158
|
-
* a custom message for the {@link Cause.
|
|
162
|
+
* a custom message for the {@link Cause.TimeoutError} defect. This is useful
|
|
159
163
|
* for adding context about which operation timed out, making it easier to
|
|
160
164
|
* diagnose issues in logs or error reports.
|
|
161
165
|
*
|
|
162
166
|
* The returned effect will either:
|
|
163
167
|
* - Succeed with the original effect's result if it completes within the
|
|
164
168
|
* specified duration.
|
|
165
|
-
* - Die with a {@link Cause.
|
|
169
|
+
* - Die with a {@link Cause.TimeoutError} defect containing the provided
|
|
166
170
|
* message if the time limit is exceeded.
|
|
167
171
|
*
|
|
168
172
|
* @see {@link timeoutOrDie} for a version without a custom message.
|
|
169
|
-
* @see {@link Effect.timeout} for a version that raises a `
|
|
170
|
-
* @see {@link Effect.
|
|
173
|
+
* @see {@link Effect.timeout} for a version that raises a `TimeoutError` as a typed error.
|
|
174
|
+
* @see {@link Effect.timeoutOrElse} for a version with a custom timeout branch.
|
|
171
175
|
*/
|
|
172
|
-
export const timeoutOrDieMessage = (duration, message) => (self) => Effect.
|
|
176
|
+
export const timeoutOrDieMessage = (duration, message) => (self) => Effect.timeoutOrElse(self, {
|
|
173
177
|
duration,
|
|
174
|
-
|
|
178
|
+
orElse: () => Effect.die(new Cause.TimeoutError(message)),
|
|
175
179
|
});
|
|
176
180
|
export const toForkedDeferred = (eff) => pipe(Deferred.make(), Effect.tap((deferred) => pipe(Effect.exit(eff), Effect.flatMap((ex) => Deferred.done(deferred, ex)), tapCauseLogPretty, Effect.forkScoped)));
|
|
177
181
|
export const withPerformanceMeasure = (meaureLabel) => (eff) => Effect.acquireUseRelease(Effect.sync(() => globalThis.performance.mark(`${meaureLabel}:start`)), () => eff, () => Effect.sync(() => {
|
|
@@ -179,15 +183,15 @@ export const withPerformanceMeasure = (meaureLabel) => (eff) => Effect.acquireUs
|
|
|
179
183
|
globalThis.performance.measure(meaureLabel, `${meaureLabel}:start`, `${meaureLabel}:end`);
|
|
180
184
|
}));
|
|
181
185
|
const getSpanTrace = () => {
|
|
182
|
-
const
|
|
183
|
-
if (
|
|
186
|
+
const fiber = Fiber.getCurrent();
|
|
187
|
+
if (fiber === undefined || fiber.currentSpan === undefined) {
|
|
184
188
|
return 'No current fiber';
|
|
185
189
|
}
|
|
186
190
|
return '';
|
|
187
191
|
// const msg = Effect.runSync(
|
|
188
192
|
// Effect.fail({ message: '' }).pipe(
|
|
189
|
-
// Effect.withParentSpan(
|
|
190
|
-
// Effect.
|
|
193
|
+
// Effect.withParentSpan(fiber.currentSpan),
|
|
194
|
+
// Effect.catchCause((cause) => Effect.succeed(cause.toString())),
|
|
191
195
|
// ),
|
|
192
196
|
// )
|
|
193
197
|
// // remove the first line
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/effect/Effect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EACL,KAAK,EACL,OAAO,EAEP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,SAAS,EACT,KAAK,GAEN,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAErD,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,6EAA6E;AAC7E,wBAAwB;AACxB,oCAAoC;AACpC,OAAO;AAEP,iFAAiF;AACjF,wBAAwB;AACxB,qCAAqC;AACrC,OAAO;AAEP,kFAAkF;AAClF,wBAAwB;AACxB,sCAAsC;AACtC,OAAO;AAEP,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,EAAoE,EAC9B,EAAE,CACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACjC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IAC9D,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AACpD,CAAC,CAAC,CAAA;AAyBJ,MAAM,UAAU,wBAAwB,CAAC,SAAwB;IAC/D,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE;YACR,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;YAE1B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrC,2KAA2K;gBAC3K,OAAO,MAAM,CAAA;YACf,CAAC;YAED,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7C,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;YACxC,CAAC;YAED,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;KAChD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,EAAE,CACjD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,UAAU,EAAE,EAAE,CAAC,CAAC,CAAA;AAEtG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAChD,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAC5G,CAAA;AAEH,MAAM,CAAC,MAAM,SAAS,GACpB,CAAC,GAAG,IAAW,EAAE,EAAE,CACnB,CAAU,GAA2B,EAA0B,EAAE,CAC/D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;AAE5C,sCAAsC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAU,GAA2B,EAA0B,EAAE,CAChG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAC7B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,IAAI;QAAE,OAAM;IAEnD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAE9G,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,IAAI,KAAK,SAAS;QAChB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CACvG,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,GAAG,IAA4B,EAAwB,EAAE,CAChG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;QACxB,4FAA4F;QAC5F,QAAQ,CAAA;QACR,KAAK,IAAI,CAAA,CAAC,2EAA2E;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;AACnC,CAAC,CAAC,CAAA;AAEJ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAU,IAA4B,EAA8B,EAAE,CACjG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;IACvB,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;IACnB,8HAA8H;IAC9H,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;YACxB,kHAAkH;YAClH,QAAQ,CAAA;QACV,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC,CAAC;IACJ,SAAS,EAAE,MAAM,CAAC,OAAO;CAC1B,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,QAAQ,GAUjB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAU,IAA4B,EAAE,SAAiC,EAAE,EAAE,CAChG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CACxD,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAoC,EACpC,IAAY,EACZ,OAA+C,EAC/C,OAA4B,EAC5B,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAExC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEtF,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC,CAAA;IAE1E,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;AAClG,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,wBAAwB,GACnC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAA+C,EAAE,EAAE,CACrE,CAAU,GAA2B,EAA0B,EAAE,CAC/D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAExC,IAAI,mBAAmB,GAAG,KAAK,CAAA;IAE/B,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;QACd,mBAAmB,GAAG,IAAI,CAAA;QAC1B,yBAAyB;QACzB,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,sBAAsB,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtF,CAAC,CAAC,EACF,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAC7B,CAAA;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CACzB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAEpC,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;YACjC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,uBAAuB,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAA;IAED,kHAAkH;IAClH,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,sBAAsB,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA;IACzE,CAAC;IAED,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IAEpC,OAAO,KAAK,CAAC,CAAC,GAAG,CAAA;AACnB,CAAC,CAAC,CAAA;AAEN,MAAM,CAAC,MAAM,WAAW,GACtB,CAAC,KAAa,EAAE,EAAE,CAClB,CAAU,GAA2B,EAA0B,EAAE,CAC/D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAA;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;IAC/E,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,CAAA;AAEN,MAAM,CAAC,MAAM,OAAO,GAClB,CAAI,KAAwB,EAAE,EAAE,CAChC,CAAO,GAA2B,EAA0B,EAAE,CAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAY,EAAyC,EAAE,CACjF,IAAI,CACF,MAAM,CAAC,OAAO,EAAS,EACvB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,aAAa,EAAE,GAAG,CAAC,CAAC,CAC5D,CAAA;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,YAAY,GACvB,CAAC,QAAwB,EAAE,EAAE,CAC7B,CAAU,IAA4B,EAA0B,EAAE,CAChE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE;IACzB,QAAQ;IACR,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;CACnD,CAAC,CAAA;AAEN;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,CAAC,QAAwB,EAAE,OAAe,EAAE,EAAE,CAC9C,CAAU,IAA4B,EAA0B,EAAE,CAChE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE;IACzB,QAAQ;IACR,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;CAC1D,CAAC,CAAA;AAEN,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,GAA2B,EACqC,EAAE,CAClE,IAAI,CACF,QAAQ,CAAC,IAAI,EAAQ,EACrB,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtB,IAAI,CACF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAChB,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EACnD,iBAAiB,EACjB,MAAM,CAAC,UAAU,CAClB,CACF,CACF,CAAA;AAEH,MAAM,CAAC,MAAM,sBAAsB,GACjC,CAAC,WAAmB,EAAE,EAAE,CACxB,CAAU,GAA2B,EAA0B,EAAE,CAC/D,MAAM,CAAC,iBAAiB,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,QAAQ,CAAC,CAAC,EACtE,GAAG,EAAE,CAAC,GAAG,EACT,GAAG,EAAE,CACH,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,MAAM,CAAC,CAAA;IACjD,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,WAAW,QAAQ,EAAE,GAAG,WAAW,MAAM,CAAC,CAAA;AAC3F,CAAC,CAAC,CACL,CAAA;AAEL,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,CAAA;IAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC3D,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IAED,OAAO,EAAE,CAAA;IACT,8BAA8B;IAC9B,uCAAuC;IACvC,gDAAgD;IAChD,sEAAsE;IACtE,OAAO;IACP,IAAI;IAEJ,2BAA2B;IAC3B,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,6CAA6C;IAC7C,gBAAgB;AAClB,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAA;AAStD,UAAU,CAAC,YAAY,GAAG,YAAY,CAAA;AACtC,UAAU,CAAC,YAAY,GAAG,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Effect.test.d.ts","sourceRoot":"","sources":["../../src/effect/Effect.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { describe, expect, expectTypeOf, it } from '@effect/vitest';
|
|
2
|
+
import { Cause, Effect } from 'effect';
|
|
3
|
+
import { trySyncOrPromiseOrEffect } from "./Effect.js";
|
|
4
|
+
describe('trySyncOrPromiseOrEffect', () => {
|
|
5
|
+
it.effect('returns a plain value', () => Effect.gen(function* () {
|
|
6
|
+
const result = yield* trySyncOrPromiseOrEffect(() => 42);
|
|
7
|
+
expect(result).toBe(42);
|
|
8
|
+
}));
|
|
9
|
+
it.effect('evaluates the operation lazily for each execution', () => Effect.gen(function* () {
|
|
10
|
+
let executions = 0;
|
|
11
|
+
const effect = trySyncOrPromiseOrEffect(() => ++executions);
|
|
12
|
+
expect(executions).toBe(0);
|
|
13
|
+
expect(yield* effect).toBe(1);
|
|
14
|
+
expect(yield* effect).toBe(2);
|
|
15
|
+
}));
|
|
16
|
+
it.effect('maps a synchronous throw to an UnknownError', () => Effect.gen(function* () {
|
|
17
|
+
const thrown = new Error('thrown');
|
|
18
|
+
const failure = yield* trySyncOrPromiseOrEffect(() => {
|
|
19
|
+
throw thrown;
|
|
20
|
+
}).pipe(Effect.flip);
|
|
21
|
+
expect(failure).toBeInstanceOf(Cause.UnknownError);
|
|
22
|
+
if (failure instanceof Cause.UnknownError) {
|
|
23
|
+
expect(failure.cause).toBe(thrown);
|
|
24
|
+
}
|
|
25
|
+
}));
|
|
26
|
+
it.effect('awaits a resolving Promise', () => Effect.gen(function* () {
|
|
27
|
+
const result = yield* trySyncOrPromiseOrEffect(() => Promise.resolve('resolved'));
|
|
28
|
+
expect(result).toBe('resolved');
|
|
29
|
+
}));
|
|
30
|
+
it.effect('maps a rejected Promise to an UnknownError', () => Effect.gen(function* () {
|
|
31
|
+
const rejected = new Error('rejected');
|
|
32
|
+
const failure = yield* trySyncOrPromiseOrEffect(() => Promise.reject(rejected)).pipe(Effect.flip);
|
|
33
|
+
expect(failure).toBeInstanceOf(Cause.UnknownError);
|
|
34
|
+
if (failure instanceof Cause.UnknownError) {
|
|
35
|
+
expect(failure.cause).toBe(rejected);
|
|
36
|
+
}
|
|
37
|
+
}));
|
|
38
|
+
it.effect('maps a throwing Promise-like then getter to an UnknownError', () => Effect.gen(function* () {
|
|
39
|
+
const thrown = new Error('throwing then getter');
|
|
40
|
+
const thenable = {
|
|
41
|
+
// oxlint-disable-next-line eslint-plugin-unicorn(no-thenable) -- intentionally exercises Promise-like classification
|
|
42
|
+
get then() {
|
|
43
|
+
throw thrown;
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
const failure = yield* trySyncOrPromiseOrEffect(() => thenable).pipe(Effect.flip);
|
|
47
|
+
expect(failure).toBeInstanceOf(Cause.UnknownError);
|
|
48
|
+
if (failure instanceof Cause.UnknownError) {
|
|
49
|
+
expect(failure.cause).toBe(thrown);
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
it.effect('executes and returns the value of a returned Effect', () => Effect.gen(function* () {
|
|
53
|
+
const result = yield* trySyncOrPromiseOrEffect(() => Effect.succeed('effect-value'));
|
|
54
|
+
expect(result).toBe('effect-value');
|
|
55
|
+
}));
|
|
56
|
+
it.effect('preserves a returned Effect failure', () => Effect.gen(function* () {
|
|
57
|
+
const expected = { _tag: 'ExpectedError' };
|
|
58
|
+
const failure = yield* trySyncOrPromiseOrEffect(() => Effect.fail(expected)).pipe(Effect.flip);
|
|
59
|
+
expect(failure).toBe(expected);
|
|
60
|
+
}));
|
|
61
|
+
it('preserves returned Effect success, error, and requirements types', () => {
|
|
62
|
+
const normalized = trySyncOrPromiseOrEffect(() => contextualEffect);
|
|
63
|
+
expectTypeOf(normalized).toEqualTypeOf();
|
|
64
|
+
});
|
|
65
|
+
it('returns an Effect when the operation only throws', () => {
|
|
66
|
+
const normalized = trySyncOrPromiseOrEffect(() => {
|
|
67
|
+
throw new Error('thrown');
|
|
68
|
+
});
|
|
69
|
+
expectTypeOf(normalized).toEqualTypeOf();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=Effect.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Effect.test.js","sourceRoot":"","sources":["../../src/effect/Effect.test.ts"],"names":[],"mappings":"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"}
|
package/dist/effect/Error.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { Schema } from 'effect';
|
|
2
|
-
declare const UnknownError_base: Schema.
|
|
3
|
-
readonly
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
payload: Schema.optional<typeof Schema.Any>;
|
|
7
|
-
}>;
|
|
2
|
+
declare const UnknownError_base: Schema.Class<UnknownError, Schema.TaggedStruct<"UnknownError", {
|
|
3
|
+
readonly cause: Schema.Any;
|
|
4
|
+
readonly payload: Schema.optional<Schema.Any>;
|
|
5
|
+
}>, import("effect/Cause").YieldableError>;
|
|
8
6
|
export declare class UnknownError extends UnknownError_base {
|
|
9
7
|
}
|
|
10
8
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/effect/Error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA
|
|
1
|
+
{"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/effect/Error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;;;;;AAE/B,qBAAa,YAAa,SAAQ,iBAGhC;CAAG"}
|
package/dist/effect/Logger.d.ts
CHANGED
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
import { Logger } from 'effect';
|
|
2
1
|
export * from 'effect/Logger';
|
|
3
|
-
export declare const prettyWithThread: (threadName: string, options?: {
|
|
4
|
-
mode?: "tty" | "browser";
|
|
5
|
-
}) => import("effect/Layer").Layer<never, never, never>;
|
|
6
|
-
export declare const consoleLogger: (threadName: string) => Logger.Logger<unknown, void>;
|
|
7
|
-
export declare const consoleWithThread: (threadName: string) => import("effect/Layer").Layer<never, never, never>;
|
|
8
2
|
//# sourceMappingURL=Logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/effect/Logger.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/effect/Logger.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
package/dist/effect/Logger.js
CHANGED
|
@@ -1,34 +1,2 @@
|
|
|
1
|
-
import { Cause, HashMap, Logger, LogLevel } from 'effect';
|
|
2
1
|
export * from 'effect/Logger';
|
|
3
|
-
const defaultDateFormat = (date) => `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date
|
|
4
|
-
.getSeconds()
|
|
5
|
-
.toString()
|
|
6
|
-
.padStart(2, '0')}.${date.getMilliseconds().toString().padStart(3, '0')}`;
|
|
7
|
-
export const prettyWithThread = (threadName, options = {}) => Logger.replace(Logger.defaultLogger, Logger.prettyLogger({
|
|
8
|
-
formatDate: (date) => `${defaultDateFormat(date)} ${threadName}`,
|
|
9
|
-
mode: options.mode,
|
|
10
|
-
}));
|
|
11
|
-
export const consoleLogger = (threadName) => Logger.make(({ message, annotations, date, logLevel, cause }) => {
|
|
12
|
-
const isCloudflareWorker = typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers';
|
|
13
|
-
const consoleFn = logLevel === LogLevel.Debug
|
|
14
|
-
? // Cloudflare Workers doesn't support console.debug 🤷
|
|
15
|
-
isCloudflareWorker === true
|
|
16
|
-
? console.log
|
|
17
|
-
: console.debug
|
|
18
|
-
: logLevel === LogLevel.Info
|
|
19
|
-
? console.info
|
|
20
|
-
: logLevel === LogLevel.Warning
|
|
21
|
-
? console.warn
|
|
22
|
-
: console.error;
|
|
23
|
-
const annotationsObj = Object.fromEntries(HashMap.entries(annotations));
|
|
24
|
-
const messages = Array.isArray(message) === true ? message : [message];
|
|
25
|
-
if (Cause.isEmpty(cause) === false) {
|
|
26
|
-
messages.push(Cause.pretty(cause, { renderErrorCause: true }));
|
|
27
|
-
}
|
|
28
|
-
if (Object.keys(annotationsObj).length > 0) {
|
|
29
|
-
messages.push(annotationsObj);
|
|
30
|
-
}
|
|
31
|
-
consoleFn(`[${defaultDateFormat(date)} ${threadName}]`, ...messages);
|
|
32
|
-
});
|
|
33
|
-
export const consoleWithThread = (threadName) => Logger.replace(Logger.defaultLogger, consoleLogger(threadName));
|
|
34
2
|
//# sourceMappingURL=Logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/effect/Logger.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/effect/Logger.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Link as OtelSpanLink } from '@opentelemetry/api';
|
|
2
2
|
import type { SpanLink as EffectSpanLink } from 'effect/Tracer';
|
|
3
|
-
export * from '@effect/opentelemetry/
|
|
3
|
+
export * from '@effect/opentelemetry/OtelTracer';
|
|
4
4
|
export declare const makeSpanLink: (otelSpanLink: OtelSpanLink) => EffectSpanLink;
|
|
5
5
|
//# sourceMappingURL=OtelTracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtelTracer.d.ts","sourceRoot":"","sources":["../../src/effect/OtelTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAE/D,cAAc,
|
|
1
|
+
{"version":3,"file":"OtelTracer.d.ts","sourceRoot":"","sources":["../../src/effect/OtelTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAE/D,cAAc,kCAAkC,CAAA;AAEhD,eAAO,MAAM,YAAY,GAAI,cAAc,YAAY,KAAG,cAGxD,CAAA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { makeExternalSpan } from '@effect/opentelemetry/
|
|
2
|
-
export * from '@effect/opentelemetry/
|
|
1
|
+
import { makeExternalSpan } from '@effect/opentelemetry/OtelTracer';
|
|
2
|
+
export * from '@effect/opentelemetry/OtelTracer';
|
|
3
3
|
export const makeSpanLink = (otelSpanLink) => ({
|
|
4
|
-
_tag: 'SpanLink',
|
|
5
4
|
span: makeExternalSpan(otelSpanLink.context),
|
|
6
5
|
attributes: otelSpanLink.attributes ?? {},
|
|
7
6
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtelTracer.js","sourceRoot":"","sources":["../../src/effect/OtelTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"OtelTracer.js","sourceRoot":"","sources":["../../src/effect/OtelTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAInE,cAAc,kCAAkC,CAAA;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,YAA0B,EAAkB,EAAE,CAAC,CAAC;IAC3E,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC;IAC5C,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,EAAE;CAC1C,CAAC,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
import { Socket } from '@effect/platform';
|
|
3
|
-
import { RpcClient, RpcSerialization } from '@effect/rpc';
|
|
4
|
-
import { Protocol } from '@effect/rpc/RpcClient';
|
|
1
|
+
export * from 'effect/unstable/rpc/RpcClient';
|
|
5
2
|
import { Effect, Layer, Schedule, type Scope } from 'effect';
|
|
3
|
+
import { RpcClient, RpcSerialization } from 'effect/unstable/rpc';
|
|
4
|
+
import { Protocol } from 'effect/unstable/rpc/RpcClient';
|
|
5
|
+
import { Socket } from 'effect/unstable/socket';
|
|
6
6
|
import * as SubscriptionRef from './SubscriptionRef.ts';
|
|
7
7
|
export declare const layerProtocolSocketWithIsConnected: (options: {
|
|
8
8
|
readonly url: string;
|
|
@@ -15,15 +15,15 @@ export declare const makeProtocolSocketWithIsConnected: (options: {
|
|
|
15
15
|
readonly retryTransientErrors?: Schedule.Schedule<unknown> | undefined;
|
|
16
16
|
readonly isConnected: SubscriptionRef.SubscriptionRef<boolean>;
|
|
17
17
|
readonly pingSchedule?: Schedule.Schedule<unknown> | undefined;
|
|
18
|
-
}) => Effect.Effect<Protocol["
|
|
18
|
+
}) => Effect.Effect<Protocol["Service"], never, Scope.Scope | RpcSerialization.RpcSerialization | Socket.Socket>;
|
|
19
19
|
export declare const SocketPinger: Effect.Effect<{
|
|
20
20
|
readonly timeout: Effect.Effect<void, never, never>;
|
|
21
21
|
readonly reset: () => void;
|
|
22
22
|
readonly onPong: () => void;
|
|
23
23
|
readonly ping: Effect.Effect<void, never, never>;
|
|
24
24
|
}, never, RpcClient.Protocol>;
|
|
25
|
-
export type SocketPinger = Effect.
|
|
26
|
-
declare const makePinger: <A, E, R>(writePing: Effect.Effect<A, E, R>, pingSchedule?: Schedule.Schedule<unknown, unknown, never> | undefined) => Effect.Effect<{
|
|
25
|
+
export type SocketPinger = Effect.Success<ReturnType<typeof makePinger>>;
|
|
26
|
+
declare const makePinger: <A, E, R>(writePing: Effect.Effect<A, E, R>, pingSchedule?: Schedule.Schedule<unknown, unknown, never, never> | undefined) => Effect.Effect<{
|
|
27
27
|
readonly timeout: Effect.Effect<void, never, never>;
|
|
28
28
|
readonly reset: () => void;
|
|
29
29
|
readonly onPong: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RpcClient.d.ts","sourceRoot":"","sources":["../../src/effect/RpcClient.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"RpcClient.d.ts","sourceRoot":"","sources":["../../src/effect/RpcClient.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAE7C,OAAO,EAAmB,MAAM,EAAmB,KAAK,EAAsB,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAA;AAClH,OAAO,EAAE,SAAS,EAAkB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAOvD,eAAO,MAAM,kCAAkC,GAAI,SAAS;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;CAC/D,KAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CACd,CAAA;AAEpE,eAAO,MAAM,iCAAiC,GAAI,SAAS;IACzD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IAEtE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAE9D,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;CAC/D,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAwJ1G,CAAA;AAEH,eAAO,MAAM,YAAY;;;;;6BAAyF,CAAA;AAElH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAA;AAExE,QAAA,MAAM,UAAU,GAAgC,CAAC,EAAE,CAAC,EAAE,CAAC;;;;;0BA2CrD,CAAA"}
|