effect 3.6.4 → 3.6.6
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/Metric.js +12 -3
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/MetricHook.js +6 -1
- package/dist/cjs/MetricHook.js.map +1 -1
- package/dist/cjs/Pipeable.js +2 -0
- package/dist/cjs/Pipeable.js.map +1 -1
- package/dist/cjs/Stream.js +10 -10
- package/dist/cjs/internal/configProvider.js +1 -1
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/metric/hook.js +32 -10
- package/dist/cjs/internal/metric/hook.js.map +1 -1
- package/dist/cjs/internal/metric/keyType.js +12 -48
- package/dist/cjs/internal/metric/keyType.js.map +1 -1
- package/dist/cjs/internal/metric/polling.js +7 -1
- package/dist/cjs/internal/metric/polling.js.map +1 -1
- package/dist/cjs/internal/metric.js +21 -13
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/stream.js +10 -10
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Metric.d.ts +21 -8
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricHook.d.ts +10 -0
- package/dist/dts/MetricHook.d.ts.map +1 -1
- package/dist/dts/Pipeable.d.ts +1 -0
- package/dist/dts/Pipeable.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +28 -28
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/internal/metric/keyType.d.ts +1 -89
- package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
- package/dist/esm/Metric.js +11 -2
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/MetricHook.js +5 -0
- package/dist/esm/MetricHook.js.map +1 -1
- package/dist/esm/Pipeable.js +2 -0
- package/dist/esm/Pipeable.js.map +1 -1
- package/dist/esm/Stream.js +10 -10
- package/dist/esm/internal/configProvider.js +1 -1
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/metric/hook.js +31 -9
- package/dist/esm/internal/metric/hook.js.map +1 -1
- package/dist/esm/internal/metric/keyType.js +12 -48
- package/dist/esm/internal/metric/keyType.js.map +1 -1
- package/dist/esm/internal/metric/polling.js +7 -1
- package/dist/esm/internal/metric/polling.js.map +1 -1
- package/dist/esm/internal/metric.js +20 -12
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/stream.js +10 -10
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Metric.ts +25 -9
- package/src/MetricHook.ts +11 -0
- package/src/Pipeable.ts +3 -0
- package/src/Stream.ts +49 -49
- package/src/internal/configProvider.ts +1 -1
- package/src/internal/metric/hook.ts +36 -9
- package/src/internal/metric/keyType.ts +12 -48
- package/src/internal/metric/polling.ts +8 -1
- package/src/internal/metric.ts +61 -17
- package/src/internal/stream.ts +134 -134
- package/src/internal/version.ts +1 -1
package/src/internal/metric.ts
CHANGED
|
@@ -20,6 +20,7 @@ import * as _effect from "./core-effect.js"
|
|
|
20
20
|
import * as core from "./core.js"
|
|
21
21
|
import * as metricBoundaries from "./metric/boundaries.js"
|
|
22
22
|
import * as metricKey from "./metric/key.js"
|
|
23
|
+
import * as metricKeyType from "./metric/keyType.js"
|
|
23
24
|
import * as metricLabel from "./metric/label.js"
|
|
24
25
|
import * as metricRegistry from "./metric/registry.js"
|
|
25
26
|
|
|
@@ -50,7 +51,8 @@ export const globalMetricRegistry: MetricRegistry.MetricRegistry = globalValue(
|
|
|
50
51
|
export const make: Metric.MetricApply = function<Type, In, Out>(
|
|
51
52
|
keyType: Type,
|
|
52
53
|
unsafeUpdate: (input: In, extraTags: ReadonlyArray<MetricLabel.MetricLabel>) => void,
|
|
53
|
-
unsafeValue: (extraTags: ReadonlyArray<MetricLabel.MetricLabel>) => Out
|
|
54
|
+
unsafeValue: (extraTags: ReadonlyArray<MetricLabel.MetricLabel>) => Out,
|
|
55
|
+
unsafeModify: (input: In, extraTags: ReadonlyArray<MetricLabel.MetricLabel>) => void
|
|
54
56
|
): Metric.Metric<Type, In, Out> {
|
|
55
57
|
const metric: Metric.Metric<Type, In, Out> = Object.assign(
|
|
56
58
|
<A extends In, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
|
@@ -60,6 +62,7 @@ export const make: Metric.MetricApply = function<Type, In, Out>(
|
|
|
60
62
|
keyType,
|
|
61
63
|
unsafeUpdate,
|
|
62
64
|
unsafeValue,
|
|
65
|
+
unsafeModify,
|
|
63
66
|
register() {
|
|
64
67
|
this.unsafeValue([])
|
|
65
68
|
return this as any
|
|
@@ -80,7 +83,8 @@ export const mapInput = dual<
|
|
|
80
83
|
make(
|
|
81
84
|
self.keyType,
|
|
82
85
|
(input, extraTags) => self.unsafeUpdate(f(input), extraTags),
|
|
83
|
-
self.unsafeValue
|
|
86
|
+
self.unsafeValue,
|
|
87
|
+
(input, extraTags) => self.unsafeModify(f(input), extraTags)
|
|
84
88
|
))
|
|
85
89
|
|
|
86
90
|
/** @internal */
|
|
@@ -149,7 +153,8 @@ export const fromMetricKey = <Type extends MetricKeyType.MetricKeyType<any, any>
|
|
|
149
153
|
return make(
|
|
150
154
|
key.keyType,
|
|
151
155
|
(input, extraTags) => hook(extraTags).update(input),
|
|
152
|
-
(extraTags) => hook(extraTags).get()
|
|
156
|
+
(extraTags) => hook(extraTags).get(),
|
|
157
|
+
(input, extraTags) => hook(extraTags).modify(input)
|
|
153
158
|
)
|
|
154
159
|
}
|
|
155
160
|
|
|
@@ -171,20 +176,30 @@ export const histogram = (name: string, boundaries: MetricBoundaries.MetricBound
|
|
|
171
176
|
|
|
172
177
|
/* @internal */
|
|
173
178
|
export const increment = (
|
|
174
|
-
self:
|
|
175
|
-
|
|
179
|
+
self:
|
|
180
|
+
| Metric.Metric.Counter<number>
|
|
181
|
+
| Metric.Metric.Counter<bigint>
|
|
182
|
+
| Metric.Metric.Gauge<number>
|
|
183
|
+
| Metric.Metric.Gauge<bigint>
|
|
184
|
+
): Effect.Effect<void> =>
|
|
185
|
+
metricKeyType.isCounterKey(self.keyType)
|
|
186
|
+
? update(self as Metric.Metric.Counter<number>, self.keyType.bigint ? BigInt(1) as any : 1)
|
|
187
|
+
: modify(self as Metric.Metric.Gauge<number>, self.keyType.bigint ? BigInt(1) as any : 1)
|
|
176
188
|
|
|
177
189
|
/* @internal */
|
|
178
190
|
export const incrementBy = dual<
|
|
179
191
|
{
|
|
180
|
-
(amount: number): (self: Metric.Metric.Counter<number>) => Effect.Effect<void>
|
|
181
|
-
(amount: bigint): (self: Metric.Metric.Counter<bigint>) => Effect.Effect<void>
|
|
192
|
+
(amount: number): (self: Metric.Metric.Counter<number> | Metric.Metric.Counter<number>) => Effect.Effect<void>
|
|
193
|
+
(amount: bigint): (self: Metric.Metric.Counter<bigint> | Metric.Metric.Gauge<bigint>) => Effect.Effect<void>
|
|
182
194
|
},
|
|
183
195
|
{
|
|
184
|
-
(self: Metric.Metric.Counter<number>, amount: number): Effect.Effect<void>
|
|
185
|
-
(self: Metric.Metric.Counter<bigint>, amount: bigint): Effect.Effect<void>
|
|
196
|
+
(self: Metric.Metric.Counter<number> | Metric.Metric.Gauge<number>, amount: number): Effect.Effect<void>
|
|
197
|
+
(self: Metric.Metric.Counter<bigint> | Metric.Metric.Gauge<bigint>, amount: bigint): Effect.Effect<void>
|
|
186
198
|
}
|
|
187
|
-
>(2, (self, amount) =>
|
|
199
|
+
>(2, (self, amount) =>
|
|
200
|
+
metricKeyType.isCounterKey(self.keyType)
|
|
201
|
+
? update(self as any, amount)
|
|
202
|
+
: modify(self as any, amount))
|
|
188
203
|
|
|
189
204
|
/** @internal */
|
|
190
205
|
export const map = dual<
|
|
@@ -194,7 +209,8 @@ export const map = dual<
|
|
|
194
209
|
make(
|
|
195
210
|
self.keyType,
|
|
196
211
|
self.unsafeUpdate,
|
|
197
|
-
(extraTags) => f(self.unsafeValue(extraTags))
|
|
212
|
+
(extraTags) => f(self.unsafeValue(extraTags)),
|
|
213
|
+
self.unsafeModify
|
|
198
214
|
))
|
|
199
215
|
|
|
200
216
|
/** @internal */
|
|
@@ -208,7 +224,23 @@ export const mapType = dual<
|
|
|
208
224
|
self: Metric.Metric<Type, In, Out>,
|
|
209
225
|
f: (type: Type) => Type2
|
|
210
226
|
) => Metric.Metric<Type2, In, Out>
|
|
211
|
-
>(2, (self, f) =>
|
|
227
|
+
>(2, (self, f) =>
|
|
228
|
+
make(
|
|
229
|
+
f(self.keyType),
|
|
230
|
+
self.unsafeUpdate,
|
|
231
|
+
self.unsafeValue,
|
|
232
|
+
self.unsafeModify
|
|
233
|
+
))
|
|
234
|
+
|
|
235
|
+
/** @internal */
|
|
236
|
+
export const modify = dual<
|
|
237
|
+
<In>(input: In) => <Type, Out>(self: Metric.Metric<Type, In, Out>) => Effect.Effect<void>,
|
|
238
|
+
<Type, In, Out>(self: Metric.Metric<Type, In, Out>, input: In) => Effect.Effect<void>
|
|
239
|
+
>(2, (self, input) =>
|
|
240
|
+
core.fiberRefGetWith(
|
|
241
|
+
core.currentMetricLabels,
|
|
242
|
+
(tags) => core.sync(() => self.unsafeModify(input, tags))
|
|
243
|
+
))
|
|
212
244
|
|
|
213
245
|
/* @internal */
|
|
214
246
|
export const set = dual<
|
|
@@ -223,11 +255,12 @@ export const set = dual<
|
|
|
223
255
|
>(2, (self, value) => update(self as any, value))
|
|
224
256
|
|
|
225
257
|
/** @internal */
|
|
226
|
-
export const succeed = <Out>(out: Out): Metric.Metric<void, unknown, Out> =>
|
|
258
|
+
export const succeed = <Out>(out: Out): Metric.Metric<void, unknown, Out> =>
|
|
259
|
+
make(void 0 as void, constVoid, () => out, constVoid)
|
|
227
260
|
|
|
228
261
|
/** @internal */
|
|
229
262
|
export const sync = <Out>(evaluate: LazyArg<Out>): Metric.Metric<void, unknown, Out> =>
|
|
230
|
-
make(void 0 as void, constVoid, evaluate)
|
|
263
|
+
make(void 0 as void, constVoid, evaluate, constVoid)
|
|
231
264
|
|
|
232
265
|
/** @internal */
|
|
233
266
|
export const summary = (
|
|
@@ -277,7 +310,12 @@ export const taggedWithLabelsInput = dual<
|
|
|
277
310
|
input,
|
|
278
311
|
Arr.union(f(input), extraTags)
|
|
279
312
|
),
|
|
280
|
-
self.unsafeValue
|
|
313
|
+
self.unsafeValue,
|
|
314
|
+
(input, extraTags) =>
|
|
315
|
+
self.unsafeModify(
|
|
316
|
+
input,
|
|
317
|
+
Arr.union(f(input), extraTags)
|
|
318
|
+
)
|
|
281
319
|
),
|
|
282
320
|
constVoid
|
|
283
321
|
))
|
|
@@ -295,7 +333,8 @@ export const taggedWithLabels = dual<
|
|
|
295
333
|
return make(
|
|
296
334
|
self.keyType,
|
|
297
335
|
(input, extraTags1) => self.unsafeUpdate(input, Arr.union(extraTags, extraTags1)),
|
|
298
|
-
(extraTags1) => self.unsafeValue(Arr.union(extraTags, extraTags1))
|
|
336
|
+
(extraTags1) => self.unsafeValue(Arr.union(extraTags, extraTags1)),
|
|
337
|
+
(input, extraTags1) => self.unsafeModify(input, Arr.union(extraTags, extraTags1))
|
|
299
338
|
)
|
|
300
339
|
})
|
|
301
340
|
|
|
@@ -520,7 +559,12 @@ export const zip = dual<
|
|
|
520
559
|
self.unsafeUpdate(l, extraTags)
|
|
521
560
|
that.unsafeUpdate(r, extraTags)
|
|
522
561
|
},
|
|
523
|
-
(extraTags) => [self.unsafeValue(extraTags), that.unsafeValue(extraTags)]
|
|
562
|
+
(extraTags) => [self.unsafeValue(extraTags), that.unsafeValue(extraTags)],
|
|
563
|
+
(input: readonly [In, In2], extraTags) => {
|
|
564
|
+
const [l, r] = input
|
|
565
|
+
self.unsafeModify(l, extraTags)
|
|
566
|
+
that.unsafeModify(r, extraTags)
|
|
567
|
+
}
|
|
524
568
|
)
|
|
525
569
|
)
|
|
526
570
|
|
package/src/internal/stream.ts
CHANGED
|
@@ -1680,74 +1680,74 @@ export const concatAll = <A, E, R>(streams: Chunk.Chunk<Stream.Stream<A, E, R>>)
|
|
|
1680
1680
|
suspend(() => pipe(streams, Chunk.reduce(empty as Stream.Stream<A, E, R>, (x, y) => concat(y)(x))))
|
|
1681
1681
|
|
|
1682
1682
|
/** @internal */
|
|
1683
|
-
export const cross
|
|
1684
|
-
<
|
|
1685
|
-
|
|
1686
|
-
)
|
|
1687
|
-
<
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
)
|
|
1691
|
-
|
|
1683
|
+
export const cross: {
|
|
1684
|
+
<AR, ER, RR>(
|
|
1685
|
+
right: Stream.Stream<AR, ER, RR>
|
|
1686
|
+
): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<[AL, AR], EL | ER, RL | RR>
|
|
1687
|
+
<AL, ER, RR, AR, EL, RL>(
|
|
1688
|
+
left: Stream.Stream<AL, ER, RR>,
|
|
1689
|
+
right: Stream.Stream<AR, EL, RL>
|
|
1690
|
+
): Stream.Stream<[AL, AR], EL | ER, RL | RR>
|
|
1691
|
+
} = dual(
|
|
1692
1692
|
2,
|
|
1693
|
-
<
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
): Stream.Stream<[
|
|
1693
|
+
<AL, ER, RR, AR, EL, RL>(
|
|
1694
|
+
left: Stream.Stream<AL, ER, RR>,
|
|
1695
|
+
right: Stream.Stream<AR, EL, RL>
|
|
1696
|
+
): Stream.Stream<[AL, AR], EL | ER, RL | RR> => pipe(left, crossWith(right, (a, a2) => [a, a2]))
|
|
1697
1697
|
)
|
|
1698
1698
|
|
|
1699
1699
|
/** @internal */
|
|
1700
|
-
export const crossLeft
|
|
1701
|
-
<
|
|
1702
|
-
|
|
1703
|
-
)
|
|
1704
|
-
<
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
)
|
|
1708
|
-
|
|
1700
|
+
export const crossLeft: {
|
|
1701
|
+
<AR, ER, RR>(
|
|
1702
|
+
right: Stream.Stream<AR, ER, RR>
|
|
1703
|
+
): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<AL, EL | ER, RL | RR>
|
|
1704
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
1705
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
1706
|
+
right: Stream.Stream<AR, ER, RR>
|
|
1707
|
+
): Stream.Stream<AL, EL | ER, RL | RR>
|
|
1708
|
+
} = dual(
|
|
1709
1709
|
2,
|
|
1710
|
-
<
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
): Stream.Stream<
|
|
1710
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
1711
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
1712
|
+
right: Stream.Stream<AR, ER, RR>
|
|
1713
|
+
): Stream.Stream<AL, EL | ER, RL | RR> => pipe(left, crossWith(right, (a, _) => a))
|
|
1714
1714
|
)
|
|
1715
1715
|
|
|
1716
1716
|
/** @internal */
|
|
1717
|
-
export const crossRight
|
|
1718
|
-
<
|
|
1719
|
-
|
|
1720
|
-
)
|
|
1721
|
-
<
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
)
|
|
1725
|
-
|
|
1717
|
+
export const crossRight: {
|
|
1718
|
+
<AR, ER, RR>(
|
|
1719
|
+
right: Stream.Stream<AR, ER, RR>
|
|
1720
|
+
): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<AR, EL | ER, RL | RR>
|
|
1721
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
1722
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
1723
|
+
right: Stream.Stream<AR, ER, RR>
|
|
1724
|
+
): Stream.Stream<AR, EL | ER, RL | RR>
|
|
1725
|
+
} = dual(
|
|
1726
1726
|
2,
|
|
1727
|
-
<
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
): Stream.Stream<
|
|
1727
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
1728
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
1729
|
+
right: Stream.Stream<AR, ER, RR>
|
|
1730
|
+
): Stream.Stream<AR, EL | ER, RL | RR> => flatMap(left, () => right)
|
|
1731
1731
|
)
|
|
1732
1732
|
|
|
1733
1733
|
/** @internal */
|
|
1734
|
-
export const crossWith
|
|
1735
|
-
<
|
|
1736
|
-
|
|
1737
|
-
f: (
|
|
1738
|
-
)
|
|
1739
|
-
<
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
f: (
|
|
1743
|
-
)
|
|
1744
|
-
|
|
1734
|
+
export const crossWith: {
|
|
1735
|
+
<AR, ER, RR, AL, A>(
|
|
1736
|
+
right: Stream.Stream<AR, ER, RR>,
|
|
1737
|
+
f: (left: AL, right: AR) => A
|
|
1738
|
+
): <EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<A, EL | ER, RL | RR>
|
|
1739
|
+
<AL, EL, RL, AR, ER, RR, A>(
|
|
1740
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
1741
|
+
right: Stream.Stream<AR, ER, RR>,
|
|
1742
|
+
f: (left: AL, right: AR) => A
|
|
1743
|
+
): Stream.Stream<A, EL | ER, RL | RR>
|
|
1744
|
+
} = dual(
|
|
1745
1745
|
3,
|
|
1746
|
-
<
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
f: (
|
|
1750
|
-
): Stream.Stream<
|
|
1746
|
+
<AL, EL, RL, AR, ER, RR, A>(
|
|
1747
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
1748
|
+
right: Stream.Stream<AR, ER, RR>,
|
|
1749
|
+
f: (left: AL, right: AR) => A
|
|
1750
|
+
): Stream.Stream<A, EL | ER, RL | RR> => pipe(left, flatMap((a) => pipe(right, map((b) => f(a, b)))))
|
|
1751
1751
|
)
|
|
1752
1752
|
|
|
1753
1753
|
/** @internal */
|
|
@@ -7891,20 +7891,20 @@ export const zipAllWith = dual<
|
|
|
7891
7891
|
)
|
|
7892
7892
|
|
|
7893
7893
|
/** @internal */
|
|
7894
|
-
export const zipLatest
|
|
7895
|
-
<
|
|
7896
|
-
|
|
7897
|
-
)
|
|
7898
|
-
<
|
|
7899
|
-
|
|
7900
|
-
|
|
7901
|
-
)
|
|
7902
|
-
|
|
7894
|
+
export const zipLatest: {
|
|
7895
|
+
<AR, ER, RR>(
|
|
7896
|
+
right: Stream.Stream<AR, ER, RR>
|
|
7897
|
+
): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<[AL, AR], EL | ER, RL | RR>
|
|
7898
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
7899
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
7900
|
+
right: Stream.Stream<AR, ER, RR>
|
|
7901
|
+
): Stream.Stream<[AL, AR], EL | ER, RL | RR>
|
|
7902
|
+
} = dual(
|
|
7903
7903
|
2,
|
|
7904
|
-
<
|
|
7905
|
-
|
|
7906
|
-
|
|
7907
|
-
): Stream.Stream<[
|
|
7904
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
7905
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
7906
|
+
right: Stream.Stream<AR, ER, RR>
|
|
7907
|
+
): Stream.Stream<[AL, AR], EL | ER, RL | RR> => pipe(left, zipLatestWith(right, (a, a2) => [a, a2]))
|
|
7908
7908
|
)
|
|
7909
7909
|
|
|
7910
7910
|
export const zipLatestAll = <T extends ReadonlyArray<Stream.Stream<any, any, any>>>(
|
|
@@ -7929,34 +7929,34 @@ export const zipLatestAll = <T extends ReadonlyArray<Stream.Stream<any, any, any
|
|
|
7929
7929
|
}
|
|
7930
7930
|
|
|
7931
7931
|
/** @internal */
|
|
7932
|
-
export const zipLatestWith
|
|
7933
|
-
<
|
|
7934
|
-
|
|
7935
|
-
f: (
|
|
7936
|
-
)
|
|
7937
|
-
<
|
|
7938
|
-
|
|
7939
|
-
|
|
7940
|
-
f: (
|
|
7941
|
-
)
|
|
7942
|
-
|
|
7932
|
+
export const zipLatestWith: {
|
|
7933
|
+
<AR, ER, RR, AL, A>(
|
|
7934
|
+
right: Stream.Stream<AR, ER, RR>,
|
|
7935
|
+
f: (left: AL, right: AR) => A
|
|
7936
|
+
): <EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<A, EL | ER, RL | RR>
|
|
7937
|
+
<AL, EL, RL, AR, ER, RR, A>(
|
|
7938
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
7939
|
+
right: Stream.Stream<AR, ER, RR>,
|
|
7940
|
+
f: (left: AL, right: AR) => A
|
|
7941
|
+
): Stream.Stream<A, EL | ER, RL | RR>
|
|
7942
|
+
} = dual(
|
|
7943
7943
|
3,
|
|
7944
|
-
<
|
|
7945
|
-
|
|
7946
|
-
|
|
7947
|
-
f: (
|
|
7948
|
-
): Stream.Stream<
|
|
7944
|
+
<AL, EL, RL, AR, ER, RR, A>(
|
|
7945
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
7946
|
+
right: Stream.Stream<AR, ER, RR>,
|
|
7947
|
+
f: (left: AL, right: AR) => A
|
|
7948
|
+
): Stream.Stream<A, EL | ER, RL | RR> => {
|
|
7949
7949
|
const pullNonEmpty = <_R, _E, _A>(
|
|
7950
7950
|
pull: Effect.Effect<Chunk.Chunk<_A>, Option.Option<_E>, _R>
|
|
7951
7951
|
): Effect.Effect<Chunk.Chunk<_A>, Option.Option<_E>, _R> =>
|
|
7952
7952
|
pipe(pull, Effect.flatMap((chunk) => Chunk.isEmpty(chunk) ? pullNonEmpty(pull) : Effect.succeed(chunk)))
|
|
7953
7953
|
return pipe(
|
|
7954
|
-
toPull(
|
|
7954
|
+
toPull(left),
|
|
7955
7955
|
Effect.map(pullNonEmpty),
|
|
7956
|
-
Effect.zip(pipe(toPull(
|
|
7956
|
+
Effect.zip(pipe(toPull(right), Effect.map(pullNonEmpty))),
|
|
7957
7957
|
Effect.flatMap(([left, right]) =>
|
|
7958
7958
|
pipe(
|
|
7959
|
-
fromEffectOption<readonly [Chunk.Chunk<
|
|
7959
|
+
fromEffectOption<readonly [Chunk.Chunk<AL>, Chunk.Chunk<AR>, boolean], EL | ER, RL | RR>(
|
|
7960
7960
|
Effect.raceWith(left, right, {
|
|
7961
7961
|
onSelfDone: (leftDone, rightFiber) =>
|
|
7962
7962
|
pipe(
|
|
@@ -8020,23 +8020,23 @@ export const zipLatestWith = dual<
|
|
|
8020
8020
|
)
|
|
8021
8021
|
|
|
8022
8022
|
/** @internal */
|
|
8023
|
-
export const zipLeft
|
|
8024
|
-
<
|
|
8025
|
-
|
|
8026
|
-
)
|
|
8027
|
-
<
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
)
|
|
8031
|
-
|
|
8023
|
+
export const zipLeft: {
|
|
8024
|
+
<AR, ER, RR>(
|
|
8025
|
+
right: Stream.Stream<AR, ER, RR>
|
|
8026
|
+
): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<AL, ER | EL, RR | RL>
|
|
8027
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
8028
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
8029
|
+
right: Stream.Stream<AR, ER, RR>
|
|
8030
|
+
): Stream.Stream<AL, EL | ER, RL | RR>
|
|
8031
|
+
} = dual(
|
|
8032
8032
|
2,
|
|
8033
|
-
<
|
|
8034
|
-
|
|
8035
|
-
|
|
8036
|
-
): Stream.Stream<
|
|
8033
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
8034
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
8035
|
+
right: Stream.Stream<AR, ER, RR>
|
|
8036
|
+
): Stream.Stream<AL, EL | ER, RL | RR> =>
|
|
8037
8037
|
pipe(
|
|
8038
|
-
|
|
8039
|
-
zipWithChunks(
|
|
8038
|
+
left,
|
|
8039
|
+
zipWithChunks(right, (left, right) => {
|
|
8040
8040
|
if (left.length > right.length) {
|
|
8041
8041
|
return [
|
|
8042
8042
|
pipe(left, Chunk.take(right.length)),
|
|
@@ -8052,23 +8052,23 @@ export const zipLeft = dual<
|
|
|
8052
8052
|
)
|
|
8053
8053
|
|
|
8054
8054
|
/** @internal */
|
|
8055
|
-
export const zipRight
|
|
8056
|
-
<
|
|
8057
|
-
|
|
8058
|
-
)
|
|
8059
|
-
<
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
)
|
|
8063
|
-
|
|
8055
|
+
export const zipRight: {
|
|
8056
|
+
<AR, ER, RR>(
|
|
8057
|
+
right: Stream.Stream<AR, ER, RR>
|
|
8058
|
+
): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<AR, ER | EL, RR | RL>
|
|
8059
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
8060
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
8061
|
+
right: Stream.Stream<AR, ER, RR>
|
|
8062
|
+
): Stream.Stream<AR, EL | ER, RL | RR>
|
|
8063
|
+
} = dual(
|
|
8064
8064
|
2,
|
|
8065
|
-
<
|
|
8066
|
-
|
|
8067
|
-
|
|
8068
|
-
): Stream.Stream<
|
|
8065
|
+
<AL, EL, RL, AR, ER, RR>(
|
|
8066
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
8067
|
+
right: Stream.Stream<AR, ER, RR>
|
|
8068
|
+
): Stream.Stream<AR, EL | ER, RL | RR> =>
|
|
8069
8069
|
pipe(
|
|
8070
|
-
|
|
8071
|
-
zipWithChunks(
|
|
8070
|
+
left,
|
|
8071
|
+
zipWithChunks(right, (left, right) => {
|
|
8072
8072
|
if (left.length > right.length) {
|
|
8073
8073
|
return [
|
|
8074
8074
|
right,
|
|
@@ -8084,24 +8084,24 @@ export const zipRight = dual<
|
|
|
8084
8084
|
)
|
|
8085
8085
|
|
|
8086
8086
|
/** @internal */
|
|
8087
|
-
export const zipWith
|
|
8088
|
-
<
|
|
8089
|
-
|
|
8090
|
-
f: (
|
|
8091
|
-
)
|
|
8092
|
-
<
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
f: (
|
|
8096
|
-
)
|
|
8097
|
-
|
|
8087
|
+
export const zipWith: {
|
|
8088
|
+
<AR, ER, RR, AL, A>(
|
|
8089
|
+
right: Stream.Stream<AR, ER, RR>,
|
|
8090
|
+
f: (left: AL, right: AR) => A
|
|
8091
|
+
): <EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<A, EL | ER, RL | RR>
|
|
8092
|
+
<AL, EL, RL, AR, ER, RR, A>(
|
|
8093
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
8094
|
+
right: Stream.Stream<AR, ER, RR>,
|
|
8095
|
+
f: (left: AL, right: AR) => A
|
|
8096
|
+
): Stream.Stream<A, EL | ER, RL | RR>
|
|
8097
|
+
} = dual(
|
|
8098
8098
|
3,
|
|
8099
|
-
<
|
|
8100
|
-
|
|
8101
|
-
|
|
8102
|
-
f: (
|
|
8103
|
-
): Stream.Stream<
|
|
8104
|
-
pipe(
|
|
8099
|
+
<AL, EL, RL, AR, ER, RR, A>(
|
|
8100
|
+
left: Stream.Stream<AL, EL, RL>,
|
|
8101
|
+
right: Stream.Stream<AR, ER, RR>,
|
|
8102
|
+
f: (left: AL, right: AR) => A
|
|
8103
|
+
): Stream.Stream<A, EL | ER, RL | RR> =>
|
|
8104
|
+
pipe(left, zipWithChunks(right, (leftChunk, rightChunk) => zipChunks(leftChunk, rightChunk, f)))
|
|
8105
8105
|
)
|
|
8106
8106
|
|
|
8107
8107
|
/** @internal */
|
package/src/internal/version.ts
CHANGED