effect 3.0.8 → 3.1.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/cjs/Channel.js.map +1 -1
- package/dist/cjs/Data.js +15 -1
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Effect.js +43 -6
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/SortedMap.js +24 -1
- package/dist/cjs/SortedMap.js.map +1 -1
- package/dist/cjs/Stream.js +8 -3
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/Tracer.js.map +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +1 -1
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core.js +1 -0
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +7 -1
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +15 -1
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/layer/circular.js.map +1 -1
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/stream.js +23 -3
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/tracer.js +4 -2
- package/dist/cjs/internal/tracer.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Channel.d.ts +2 -14
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +20 -5
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +53 -52
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +3 -18
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/SortedMap.d.ts +13 -0
- package/dist/dts/SortedMap.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +7 -14
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Tracer.d.ts +19 -1
- package/dist/dts/Tracer.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +18 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/internal/fiberRuntime.d.ts +6 -1
- package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Data.js +14 -0
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Effect.js +39 -2
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/SortedMap.js +22 -0
- package/dist/esm/SortedMap.js.map +1 -1
- package/dist/esm/Stream.js +5 -0
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/Tracer.js.map +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/core-effect.js +1 -1
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core.js +1 -0
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +6 -0
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +13 -0
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/layer/circular.js.map +1 -1
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/stream.js +19 -0
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/tracer.js +4 -2
- package/dist/esm/internal/tracer.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Channel.ts +2 -14
- package/src/Data.ts +39 -3
- package/src/Effect.ts +55 -52
- package/src/Layer.ts +3 -18
- package/src/SortedMap.ts +35 -0
- package/src/Stream.ts +12 -14
- package/src/Tracer.ts +22 -1
- package/src/Types.ts +21 -0
- package/src/internal/channel.ts +2 -14
- package/src/internal/core-effect.ts +19 -43
- package/src/internal/core.ts +1 -0
- package/src/internal/effect/circular.ts +16 -0
- package/src/internal/fiberRuntime.ts +33 -21
- package/src/internal/layer/circular.ts +1 -6
- package/src/internal/layer.ts +17 -20
- package/src/internal/stream.ts +27 -14
- package/src/internal/tracer.ts +5 -3
- package/src/internal/version.ts +1 -1
package/src/internal/core.ts
CHANGED
|
@@ -467,6 +467,22 @@ export const timeoutFailCause = dual<
|
|
|
467
467
|
duration
|
|
468
468
|
})))
|
|
469
469
|
|
|
470
|
+
/** @internal */
|
|
471
|
+
export const timeoutOption = dual<
|
|
472
|
+
(
|
|
473
|
+
duration: Duration.DurationInput
|
|
474
|
+
) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Option.Option<A>, E, R>,
|
|
475
|
+
<A, E, R>(
|
|
476
|
+
self: Effect.Effect<A, E, R>,
|
|
477
|
+
duration: Duration.DurationInput
|
|
478
|
+
) => Effect.Effect<Option.Option<A>, E, R>
|
|
479
|
+
>(2, (self, duration) =>
|
|
480
|
+
timeoutTo(self, {
|
|
481
|
+
duration,
|
|
482
|
+
onSuccess: Option.some,
|
|
483
|
+
onTimeout: Option.none
|
|
484
|
+
}))
|
|
485
|
+
|
|
470
486
|
/** @internal */
|
|
471
487
|
export const timeoutTo = dual<
|
|
472
488
|
<A, B, B1>(
|
|
@@ -1502,6 +1502,29 @@ export const batchedLogger = dual<
|
|
|
1502
1502
|
)
|
|
1503
1503
|
}))
|
|
1504
1504
|
|
|
1505
|
+
export const annotateLogsScoped: {
|
|
1506
|
+
(key: string, value: unknown): Effect.Effect<void, never, Scope.Scope>
|
|
1507
|
+
(values: Record<string, unknown>): Effect.Effect<void, never, Scope.Scope>
|
|
1508
|
+
} = function() {
|
|
1509
|
+
if (typeof arguments[0] === "string") {
|
|
1510
|
+
return fiberRefLocallyScopedWith(
|
|
1511
|
+
core.currentLogAnnotations,
|
|
1512
|
+
HashMap.set(arguments[0], arguments[1])
|
|
1513
|
+
)
|
|
1514
|
+
}
|
|
1515
|
+
const entries = Object.entries(arguments[0])
|
|
1516
|
+
return fiberRefLocallyScopedWith(
|
|
1517
|
+
core.currentLogAnnotations,
|
|
1518
|
+
HashMap.mutate((annotations) => {
|
|
1519
|
+
for (let i = 0; i < entries.length; i++) {
|
|
1520
|
+
const [key, value] = entries[i]
|
|
1521
|
+
HashMap.set(annotations, key, value)
|
|
1522
|
+
}
|
|
1523
|
+
return annotations
|
|
1524
|
+
})
|
|
1525
|
+
)
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1505
1528
|
// circular with Effect
|
|
1506
1529
|
|
|
1507
1530
|
/* @internal */
|
|
@@ -3598,13 +3621,7 @@ export const interruptWhenPossible = dual<
|
|
|
3598
3621
|
/** @internal */
|
|
3599
3622
|
export const makeSpanScoped = (
|
|
3600
3623
|
name: string,
|
|
3601
|
-
options?:
|
|
3602
|
-
readonly attributes?: Record<string, unknown> | undefined
|
|
3603
|
-
readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
|
|
3604
|
-
readonly parent?: Tracer.AnySpan | undefined
|
|
3605
|
-
readonly root?: boolean | undefined
|
|
3606
|
-
readonly context?: Context.Context<never> | undefined
|
|
3607
|
-
} | undefined
|
|
3624
|
+
options?: Tracer.SpanOptions | undefined
|
|
3608
3625
|
): Effect.Effect<Tracer.Span, never, Scope.Scope> =>
|
|
3609
3626
|
core.uninterruptible(
|
|
3610
3627
|
core.withFiberRuntime((fiber) => {
|
|
@@ -3631,20 +3648,15 @@ export const withTracerScoped = (value: Tracer.Tracer): Effect.Effect<void, neve
|
|
|
3631
3648
|
|
|
3632
3649
|
/** @internal */
|
|
3633
3650
|
export const withSpanScoped = dual<
|
|
3634
|
-
(
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
|
|
3644
|
-
readonly parent?: Tracer.AnySpan | undefined
|
|
3645
|
-
readonly root?: boolean | undefined
|
|
3646
|
-
readonly context?: Context.Context<never> | undefined
|
|
3647
|
-
}) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan> | Scope.Scope>
|
|
3651
|
+
(
|
|
3652
|
+
name: string,
|
|
3653
|
+
options?: Tracer.SpanOptions
|
|
3654
|
+
) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan> | Scope.Scope>,
|
|
3655
|
+
<A, E, R>(
|
|
3656
|
+
self: Effect.Effect<A, E, R>,
|
|
3657
|
+
name: string,
|
|
3658
|
+
options?: Tracer.SpanOptions
|
|
3659
|
+
) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan> | Scope.Scope>
|
|
3648
3660
|
>(
|
|
3649
3661
|
(args) => typeof args[0] !== "string",
|
|
3650
3662
|
(self, name, options) =>
|
|
@@ -191,12 +191,7 @@ export const parentSpan = (span: Tracer.AnySpan): Layer.Layer<Tracer.ParentSpan>
|
|
|
191
191
|
/** @internal */
|
|
192
192
|
export const span = (
|
|
193
193
|
name: string,
|
|
194
|
-
options?: {
|
|
195
|
-
readonly attributes?: Record<string, unknown> | undefined
|
|
196
|
-
readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
|
|
197
|
-
readonly parent?: Tracer.AnySpan | undefined
|
|
198
|
-
readonly root?: boolean | undefined
|
|
199
|
-
readonly context?: Context.Context<never> | undefined
|
|
194
|
+
options?: Tracer.SpanOptions & {
|
|
200
195
|
readonly onEnd?:
|
|
201
196
|
| ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>)
|
|
202
197
|
| undefined
|
package/src/internal/layer.ts
CHANGED
|
@@ -1114,26 +1114,23 @@ export const unwrapScoped = <A, E1, R1, E, R>(
|
|
|
1114
1114
|
|
|
1115
1115
|
/** @internal */
|
|
1116
1116
|
export const withSpan = dual<
|
|
1117
|
-
(
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
| ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>)
|
|
1135
|
-
| undefined
|
|
1136
|
-
}) => Layer.Layer<A, E, Exclude<R, Tracer.ParentSpan>>
|
|
1117
|
+
(
|
|
1118
|
+
name: string,
|
|
1119
|
+
options?: Tracer.SpanOptions & {
|
|
1120
|
+
readonly onEnd?:
|
|
1121
|
+
| ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>)
|
|
1122
|
+
| undefined
|
|
1123
|
+
}
|
|
1124
|
+
) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E, Exclude<R, Tracer.ParentSpan>>,
|
|
1125
|
+
<A, E, R>(
|
|
1126
|
+
self: Layer.Layer<A, E, R>,
|
|
1127
|
+
name: string,
|
|
1128
|
+
options?: Tracer.SpanOptions & {
|
|
1129
|
+
readonly onEnd?:
|
|
1130
|
+
| ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>)
|
|
1131
|
+
| undefined
|
|
1132
|
+
}
|
|
1133
|
+
) => Layer.Layer<A, E, Exclude<R, Tracer.ParentSpan>>
|
|
1137
1134
|
>((args) => isLayer(args[0]), (self, name, options) =>
|
|
1138
1135
|
unwrapScoped(
|
|
1139
1136
|
core.map(
|
package/src/internal/stream.ts
CHANGED
|
@@ -6803,24 +6803,12 @@ export const whenEffect = dual<
|
|
|
6803
6803
|
export const withSpan = dual<
|
|
6804
6804
|
(
|
|
6805
6805
|
name: string,
|
|
6806
|
-
options?:
|
|
6807
|
-
readonly attributes?: Record<string, unknown> | undefined
|
|
6808
|
-
readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
|
|
6809
|
-
readonly parent?: Tracer.AnySpan | undefined
|
|
6810
|
-
readonly root?: boolean | undefined
|
|
6811
|
-
readonly context?: Context.Context<never> | undefined
|
|
6812
|
-
}
|
|
6806
|
+
options?: Tracer.SpanOptions
|
|
6813
6807
|
) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E, Exclude<R, Tracer.ParentSpan>>,
|
|
6814
6808
|
<A, E, R>(
|
|
6815
6809
|
self: Stream.Stream<A, E, R>,
|
|
6816
6810
|
name: string,
|
|
6817
|
-
options?:
|
|
6818
|
-
readonly attributes?: Record<string, unknown> | undefined
|
|
6819
|
-
readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
|
|
6820
|
-
readonly parent?: Tracer.AnySpan | undefined
|
|
6821
|
-
readonly root?: boolean | undefined
|
|
6822
|
-
readonly context?: Context.Context<never> | undefined
|
|
6823
|
-
}
|
|
6811
|
+
options?: Tracer.SpanOptions
|
|
6824
6812
|
) => Stream.Stream<A, E, Exclude<R, Tracer.ParentSpan>>
|
|
6825
6813
|
>(3, (self, name, options) => new StreamImpl(channel.withSpan(toChannel(self), name, options)))
|
|
6826
6814
|
|
|
@@ -8048,3 +8036,28 @@ export const encodeText = <E, R>(self: Stream.Stream<string, E, R>): Stream.Stre
|
|
|
8048
8036
|
const encoder = new TextEncoder()
|
|
8049
8037
|
return map(self, (s) => encoder.encode(s))
|
|
8050
8038
|
})
|
|
8039
|
+
|
|
8040
|
+
/** @internal */
|
|
8041
|
+
export const fromEventListener = <A = Event>(
|
|
8042
|
+
target: EventTarget,
|
|
8043
|
+
type: string,
|
|
8044
|
+
options?: boolean | Omit<AddEventListenerOptions, "signal">
|
|
8045
|
+
): Stream.Stream<A> =>
|
|
8046
|
+
_async<A>((emit) => {
|
|
8047
|
+
let batch: Array<A> = []
|
|
8048
|
+
let taskRunning = false
|
|
8049
|
+
function cb(e: A) {
|
|
8050
|
+
batch.push(e)
|
|
8051
|
+
if (!taskRunning) {
|
|
8052
|
+
taskRunning = true
|
|
8053
|
+
queueMicrotask(() => {
|
|
8054
|
+
const events = batch
|
|
8055
|
+
batch = []
|
|
8056
|
+
taskRunning = false
|
|
8057
|
+
emit.chunk(Chunk.unsafeFromArray(events))
|
|
8058
|
+
})
|
|
8059
|
+
}
|
|
8060
|
+
}
|
|
8061
|
+
target.addEventListener(type, cb as any, options)
|
|
8062
|
+
return Effect.sync(() => target.removeEventListener(type, cb as any, options))
|
|
8063
|
+
})
|
package/src/internal/tracer.ts
CHANGED
|
@@ -49,7 +49,8 @@ export class NativeSpan implements Tracer.Span {
|
|
|
49
49
|
readonly parent: Option.Option<Tracer.AnySpan>,
|
|
50
50
|
readonly context: Context.Context<never>,
|
|
51
51
|
readonly links: ReadonlyArray<Tracer.SpanLink>,
|
|
52
|
-
readonly startTime: bigint
|
|
52
|
+
readonly startTime: bigint,
|
|
53
|
+
readonly kind: Tracer.SpanKind
|
|
53
54
|
) {
|
|
54
55
|
this.status = {
|
|
55
56
|
_tag: "Started",
|
|
@@ -80,13 +81,14 @@ export class NativeSpan implements Tracer.Span {
|
|
|
80
81
|
|
|
81
82
|
/** @internal */
|
|
82
83
|
export const nativeTracer: Tracer.Tracer = make({
|
|
83
|
-
span: (name, parent, context, links, startTime) =>
|
|
84
|
+
span: (name, parent, context, links, startTime, kind) =>
|
|
84
85
|
new NativeSpan(
|
|
85
86
|
name,
|
|
86
87
|
parent,
|
|
87
88
|
context,
|
|
88
89
|
links,
|
|
89
|
-
startTime
|
|
90
|
+
startTime,
|
|
91
|
+
kind
|
|
90
92
|
),
|
|
91
93
|
context: (f) => f()
|
|
92
94
|
})
|
package/src/internal/version.ts
CHANGED