@typed/fx 1.22.2 → 1.23.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/Form.js.map +1 -1
- package/dist/cjs/Fx.js.map +1 -1
- package/dist/cjs/Idle.js.map +1 -1
- package/dist/cjs/Match.js.map +1 -1
- package/dist/cjs/Pull.js.map +1 -1
- package/dist/cjs/Subject.js.map +1 -1
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/helpers.js.map +1 -1
- package/dist/cjs/internal/keyed.js +1 -1
- package/dist/cjs/internal/keyed.js.map +1 -1
- package/dist/cjs/internal/share.js.map +1 -1
- package/dist/cjs/internal/sync-producer.js.map +1 -1
- package/dist/dts/AsyncData.d.ts +33 -33
- package/dist/dts/AsyncData.d.ts.map +1 -1
- package/dist/dts/Emitter.d.ts +6 -6
- package/dist/dts/Emitter.d.ts.map +1 -1
- package/dist/dts/Form.d.ts +12 -12
- package/dist/dts/Form.d.ts.map +1 -1
- package/dist/dts/FormEntry.d.ts +9 -9
- package/dist/dts/FormEntry.d.ts.map +1 -1
- package/dist/dts/Fx.d.ts +113 -113
- package/dist/dts/Fx.d.ts.map +1 -1
- package/dist/dts/Guard.d.ts +5 -5
- package/dist/dts/Guard.d.ts.map +1 -1
- package/dist/dts/Idle.d.ts +12 -12
- package/dist/dts/Idle.d.ts.map +1 -1
- package/dist/dts/Pull.d.ts +5 -5
- package/dist/dts/Pull.d.ts.map +1 -1
- package/dist/dts/Push.d.ts +20 -20
- package/dist/dts/Push.d.ts.map +1 -1
- package/dist/dts/RefArray.d.ts +33 -33
- package/dist/dts/RefArray.d.ts.map +1 -1
- package/dist/dts/RefChunk.d.ts +27 -27
- package/dist/dts/RefChunk.d.ts.map +1 -1
- package/dist/dts/RefHashMap.d.ts +17 -17
- package/dist/dts/RefHashMap.d.ts.map +1 -1
- package/dist/dts/RefHashSet.d.ts +5 -5
- package/dist/dts/RefHashSet.d.ts.map +1 -1
- package/dist/dts/RefSubject.d.ts +53 -53
- package/dist/dts/RefSubject.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +31 -31
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +11 -11
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Subject.d.ts +5 -5
- package/dist/dts/Subject.d.ts.map +1 -1
- package/dist/dts/Versioned.d.ts +11 -11
- package/dist/dts/Versioned.d.ts.map +1 -1
- package/dist/dts/internal/DeferredRef.d.ts +7 -7
- package/dist/dts/internal/core.d.ts +51 -51
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/effect-loop-operator.d.ts +4 -4
- package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -1
- package/dist/dts/internal/effect-operator.d.ts +11 -11
- package/dist/dts/internal/effect-operator.d.ts.map +1 -1
- package/dist/dts/internal/effect-producer.d.ts +9 -9
- package/dist/dts/internal/effect-producer.d.ts.map +1 -1
- package/dist/dts/internal/helpers.d.ts +25 -25
- package/dist/dts/internal/helpers.d.ts.map +1 -1
- package/dist/dts/internal/protos.d.ts +9 -9
- package/dist/dts/internal/protos.d.ts.map +1 -1
- package/dist/dts/internal/provide.d.ts +10 -10
- package/dist/dts/internal/provide.d.ts.map +1 -1
- package/dist/dts/internal/share.d.ts +2 -2
- package/dist/dts/internal/share.d.ts.map +1 -1
- package/dist/dts/internal/sync-producer.d.ts +6 -6
- package/dist/dts/internal/sync-producer.d.ts.map +1 -1
- package/dist/esm/Form.js.map +1 -1
- package/dist/esm/FormEntry.js.map +1 -1
- package/dist/esm/Fx.js.map +1 -1
- package/dist/esm/Idle.js.map +1 -1
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Pull.js.map +1 -1
- package/dist/esm/RefSubject.js.map +1 -1
- package/dist/esm/Subject.js.map +1 -1
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/helpers.js.map +1 -1
- package/dist/esm/internal/keyed.js +1 -1
- package/dist/esm/internal/keyed.js.map +1 -1
- package/dist/esm/internal/share.js.map +1 -1
- package/dist/esm/internal/sync-producer.js.map +1 -1
- package/package.json +6 -6
- package/src/AsyncData.ts +86 -86
- package/src/Emitter.ts +9 -9
- package/src/Form.ts +39 -39
- package/src/FormEntry.ts +25 -25
- package/src/Fx.ts +122 -124
- package/src/Guard.ts +7 -7
- package/src/Idle.ts +23 -23
- package/src/Match.ts +3 -3
- package/src/Pull.ts +10 -10
- package/src/Push.ts +33 -33
- package/src/RefArray.ts +36 -36
- package/src/RefChunk.ts +30 -30
- package/src/RefHashMap.ts +24 -24
- package/src/RefHashSet.ts +6 -6
- package/src/RefSubject.ts +184 -184
- package/src/Sink.ts +91 -91
- package/src/Stream.ts +19 -19
- package/src/Subject.ts +21 -21
- package/src/Versioned.ts +23 -23
- package/src/internal/DeferredRef.ts +6 -6
- package/src/internal/core.ts +132 -132
- package/src/internal/effect-loop-operator.ts +4 -4
- package/src/internal/effect-operator.ts +13 -13
- package/src/internal/effect-producer.ts +14 -14
- package/src/internal/helpers.ts +36 -36
- package/src/internal/keyed.ts +3 -3
- package/src/internal/protos.ts +12 -12
- package/src/internal/provide.ts +10 -10
- package/src/internal/share.ts +4 -4
- package/src/internal/sync-producer.ts +12 -12
package/src/internal/core.ts
CHANGED
|
@@ -63,11 +63,11 @@ const UNBOUNDED = { concurrency: "unbounded" } as const
|
|
|
63
63
|
// TODO: expose FxBase and FxEffectBase
|
|
64
64
|
|
|
65
65
|
export function make<A>(
|
|
66
|
-
run: (sink: Sink.Sink<never, never, A>) => Effect.Effect<
|
|
66
|
+
run: (sink: Sink.Sink<never, never, A>) => Effect.Effect<unknown>
|
|
67
67
|
): Fx<never, never, A>
|
|
68
|
-
export function make<E, A>(run: (sink: Sink.Sink<never, E, A>) => Effect.Effect<
|
|
69
|
-
export function make<R, E, A>(run: (sink: Sink.Sink<never, E, A>) => Effect.Effect<
|
|
70
|
-
export function make<R, E, A>(run: (sink: Sink.Sink<never, E, A>) => Effect.Effect<
|
|
68
|
+
export function make<E, A>(run: (sink: Sink.Sink<never, E, A>) => Effect.Effect<unknown>): Fx<never, E, A>
|
|
69
|
+
export function make<R, E, A>(run: (sink: Sink.Sink<never, E, A>) => Effect.Effect<unknown, never, R>): Fx<R, E, A>
|
|
70
|
+
export function make<R, E, A>(run: (sink: Sink.Sink<never, E, A>) => Effect.Effect<unknown, never, R>): Fx<R, E, A> {
|
|
71
71
|
return new Make(run)
|
|
72
72
|
}
|
|
73
73
|
|
|
@@ -76,7 +76,7 @@ class Make<R, E, A> extends FxBase<R, E, A> {
|
|
|
76
76
|
super()
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
79
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
80
80
|
return Effect.contextWithEffect((ctx) => this._run(Sink.provide(sink, ctx)))
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -86,7 +86,7 @@ class Producer<A> extends FxBase<never, never, A> {
|
|
|
86
86
|
super()
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
run<R2>(sink: Sink.Sink<R2, never, A>): Effect.Effect<
|
|
89
|
+
run<R2>(sink: Sink.Sink<R2, never, A>): Effect.Effect<unknown, never, R2> {
|
|
90
90
|
return SyncProducer.runSink(this.i0, sink)
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -112,7 +112,7 @@ class ProducerEffect<R, E, A> extends FxBase<R, E, A> {
|
|
|
112
112
|
super()
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
115
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
116
116
|
return EffectProducer.runSink(this.i0, sink)
|
|
117
117
|
}
|
|
118
118
|
}
|
|
@@ -124,7 +124,7 @@ export function isProducerEffect<R, E, A>(fx: Fx<R, E, A>): fx is ProducerEffect
|
|
|
124
124
|
return fx.constructor === ProducerEffect
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
-
export const fromEffect = <R, E, A>(effect: Effect.Effect<
|
|
127
|
+
export const fromEffect = <R, E, A>(effect: Effect.Effect<A, E, R>): Fx<R, E, A> =>
|
|
128
128
|
matchEffectPrimitive<R, E, A, Fx<R, E, A>>(effect, {
|
|
129
129
|
// Match over Effect primitives and return Fx primitives to allow fusion to take place
|
|
130
130
|
Success: succeed,
|
|
@@ -138,12 +138,12 @@ export const fromEffect = <R, E, A>(effect: Effect.Effect<R, E, A>): Fx<R, E, A>
|
|
|
138
138
|
})
|
|
139
139
|
|
|
140
140
|
export const fromScheduled = <R, E, I, R2, O>(
|
|
141
|
-
input: Effect.Effect<
|
|
141
|
+
input: Effect.Effect<I, E, R>,
|
|
142
142
|
schedule: Schedule.Schedule<R2, I, O>
|
|
143
143
|
): Fx<R | R2, E, O> => new ProducerEffect(EffectProducer.FromScheduled(input, schedule))
|
|
144
144
|
|
|
145
145
|
export const schedule = <R, E, A, R2, O>(
|
|
146
|
-
input: Effect.Effect<
|
|
146
|
+
input: Effect.Effect<A, E, R>,
|
|
147
147
|
schedule: Schedule.Schedule<R2, unknown, O>
|
|
148
148
|
): Fx<R | R2, E, A> => new ProducerEffect(EffectProducer.Scheduled(input, schedule))
|
|
149
149
|
|
|
@@ -152,7 +152,7 @@ class FailCause<E> extends FxBase<never, E, never> {
|
|
|
152
152
|
super()
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
run<R2>(sink: Sink.Sink<R2, E, never>): Effect.Effect<
|
|
155
|
+
run<R2>(sink: Sink.Sink<R2, E, never>): Effect.Effect<unknown, never, R2> {
|
|
156
156
|
return sink.onFailure(this.i0)
|
|
157
157
|
}
|
|
158
158
|
}
|
|
@@ -175,7 +175,7 @@ class Transformer<R, E, A> extends FxBase<R, E, A> {
|
|
|
175
175
|
super()
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
178
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
179
179
|
return this.i0.run(Op.compileOperatorSink(this.i1, sink))
|
|
180
180
|
}
|
|
181
181
|
|
|
@@ -215,7 +215,7 @@ class ProducerSyncTransformer<R, E, A> extends FxBase<R, E, A> implements Fx<R,
|
|
|
215
215
|
super()
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
218
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
219
219
|
return SyncProducer.runSink(this.i0, Op.compileOperatorSink(this.i1, sink))
|
|
220
220
|
}
|
|
221
221
|
}
|
|
@@ -237,22 +237,22 @@ export const filterMap = <R, E, A, B>(fx: Fx<R, E, A>, f: (a: A) => Option.Optio
|
|
|
237
237
|
|
|
238
238
|
export const mapEffect = <R, E, A, R2, E2, B>(
|
|
239
239
|
fx: Fx<R, E, A>,
|
|
240
|
-
f: (a: A) => Effect.Effect<
|
|
240
|
+
f: (a: A) => Effect.Effect<B, E2, R2>
|
|
241
241
|
): Fx<R | R2, E | E2, B> => Transformer.make(fx, EffectOp.MapEffect(f))
|
|
242
242
|
|
|
243
243
|
export const filterMapEffect = <R, E, A, R2, E2, B>(
|
|
244
244
|
fx: Fx<R, E, A>,
|
|
245
|
-
f: (a: A) => Effect.Effect<
|
|
245
|
+
f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>
|
|
246
246
|
): Fx<R | R2, E | E2, B> => Transformer.make(fx, EffectOp.FilterMapEffect(f))
|
|
247
247
|
|
|
248
248
|
export const filterEffect = <R, E, A, R2, E2>(
|
|
249
249
|
fx: Fx<R, E, A>,
|
|
250
|
-
f: (a: A) => Effect.Effect<
|
|
250
|
+
f: (a: A) => Effect.Effect<boolean, E2, R2>
|
|
251
251
|
): Fx<R | R2, E | E2, A> => Transformer.make(fx, EffectOp.FilterEffect(f))
|
|
252
252
|
|
|
253
253
|
export const tapEffect = <R, E, A, R2, E2>(
|
|
254
254
|
fx: Fx<R, E, A>,
|
|
255
|
-
f: (a: A) => Effect.Effect<
|
|
255
|
+
f: (a: A) => Effect.Effect<unknown, E2, R2>
|
|
256
256
|
): Fx<R | R2, E | E2, A> => Transformer.make(fx, EffectOp.TapEffect(f))
|
|
257
257
|
|
|
258
258
|
export const loop = <R, E, A, B, C>(fx: Fx<R, E, A>, seed: B, f: (acc: B, a: A) => readonly [C, B]): Fx<R, E, C> =>
|
|
@@ -270,33 +270,33 @@ export const filterMapLoop = <R, E, A, B, C>(
|
|
|
270
270
|
export const loopEffect = <R, E, A, R2, E2, B, C>(
|
|
271
271
|
fx: Fx<R, E, A>,
|
|
272
272
|
seed: B,
|
|
273
|
-
f: (acc: B, a: A) => Effect.Effect<
|
|
273
|
+
f: (acc: B, a: A) => Effect.Effect<readonly [C, B], E2, R2>
|
|
274
274
|
): Fx<R | R2, E | E2, C> => Transformer.make(fx, EffectLoopOp.LoopEffectOperator(seed, f))
|
|
275
275
|
|
|
276
276
|
export const filterMapLoopEffect = <R, E, A, R2, E2, B, C>(
|
|
277
277
|
fx: Fx<R, E, A>,
|
|
278
278
|
seed: B,
|
|
279
|
-
f: (acc: B, a: A) => Effect.Effect<
|
|
279
|
+
f: (acc: B, a: A) => Effect.Effect<readonly [Option.Option<C>, B], E2, R2>
|
|
280
280
|
): Fx<R | R2, E | E2, C> => Transformer.make(fx, EffectLoopOp.FilterMapLoopEffectOperator(seed, f))
|
|
281
281
|
|
|
282
282
|
export const observe = <R, E, A, R2, E2, B>(
|
|
283
283
|
fx: Fx<R, E, A>,
|
|
284
|
-
f: (a: A) => Effect.Effect<
|
|
285
|
-
): Effect.Effect<
|
|
284
|
+
f: (a: A) => Effect.Effect<B, E2, R2>
|
|
285
|
+
): Effect.Effect<void, E | E2, R | R2> => Observe.make(fx, f)
|
|
286
286
|
|
|
287
287
|
const constUnit = () => Effect.unit
|
|
288
288
|
|
|
289
|
-
export const drain = <R, E, A>(fx: Fx<R, E, A>): Effect.Effect<
|
|
289
|
+
export const drain = <R, E, A>(fx: Fx<R, E, A>): Effect.Effect<void, E, R> => Observe.make(fx, constUnit)
|
|
290
290
|
|
|
291
291
|
class Observe<R, E, A, R2, E2, B> extends EffectBase<R | R2, E | E2, void> {
|
|
292
292
|
constructor(
|
|
293
293
|
readonly i0: Fx<R, E, A>,
|
|
294
|
-
readonly i1: (a: A) => Effect.Effect<
|
|
294
|
+
readonly i1: (a: A) => Effect.Effect<B, E2, R2>
|
|
295
295
|
) {
|
|
296
296
|
super()
|
|
297
297
|
}
|
|
298
298
|
|
|
299
|
-
toEffect(): Effect.Effect<
|
|
299
|
+
toEffect(): Effect.Effect<void, E | E2, R | R2> {
|
|
300
300
|
return Effect.asyncEffect((resume) => {
|
|
301
301
|
const { i0: fx, i1: f } = this
|
|
302
302
|
const onFailure = (cause: Cause.Cause<E | E2>) => Effect.sync(() => resume(Effect.failCause(cause)))
|
|
@@ -310,8 +310,8 @@ class Observe<R, E, A, R2, E2, B> extends EffectBase<R | R2, E | E2, void> {
|
|
|
310
310
|
|
|
311
311
|
static make<R, E, A, R2, E2, B>(
|
|
312
312
|
fx: Fx<R, E, A>,
|
|
313
|
-
f: (a: A) => Effect.Effect<
|
|
314
|
-
): Effect.Effect<
|
|
313
|
+
f: (a: A) => Effect.Effect<B, E2, R2>
|
|
314
|
+
): Effect.Effect<void, E | E2, R | R2> {
|
|
315
315
|
if (isEmpty(fx)) {
|
|
316
316
|
return Effect.unit
|
|
317
317
|
} else if (isNever(fx)) {
|
|
@@ -320,9 +320,9 @@ class Observe<R, E, A, R2, E2, B> extends EffectBase<R | R2, E | E2, void> {
|
|
|
320
320
|
return SyncProducer.runEffect(fx.i0, f)
|
|
321
321
|
} else if (isProducerSyncTransformer(fx)) {
|
|
322
322
|
return Op.matchOperator(fx.i1, {
|
|
323
|
-
SyncOperator: (op): Effect.Effect<
|
|
323
|
+
SyncOperator: (op): Effect.Effect<void, E | E2, R | R2> =>
|
|
324
324
|
SyncOp.matchSyncOperator(op, {
|
|
325
|
-
Map: (op): Effect.Effect<
|
|
325
|
+
Map: (op): Effect.Effect<void, E | E2, R | R2> =>
|
|
326
326
|
SyncProducer.effectOnce(() => SyncProducer.runEffect(fx.i0, (a) => f(op.f(a)))),
|
|
327
327
|
Filter: (op) =>
|
|
328
328
|
SyncProducer.effectOnce(() =>
|
|
@@ -338,7 +338,7 @@ class Observe<R, E, A, R2, E2, B> extends EffectBase<R | R2, E | E2, void> {
|
|
|
338
338
|
}),
|
|
339
339
|
EffectOperator: (op) =>
|
|
340
340
|
EffectOp.matchEffectOperator(op, {
|
|
341
|
-
MapEffect: (op): Effect.Effect<
|
|
341
|
+
MapEffect: (op): Effect.Effect<void, E | E2, R | R2> =>
|
|
342
342
|
SyncProducer.runEffect(fx.i0, (a) => Effect.flatMap(op.f(a), f)),
|
|
343
343
|
FilterMapEffect: (op) =>
|
|
344
344
|
SyncProducer.runEffect(fx.i0, (a) =>
|
|
@@ -394,9 +394,9 @@ class Observe<R, E, A, R2, E2, B> extends EffectBase<R | R2, E | E2, void> {
|
|
|
394
394
|
return EffectProducer.runEffect(fx.i0, f)
|
|
395
395
|
} else if (isProducerEffectTransformer(fx)) {
|
|
396
396
|
return Op.matchOperator(fx.i1, {
|
|
397
|
-
SyncOperator: (op): Effect.Effect<
|
|
397
|
+
SyncOperator: (op): Effect.Effect<void, E | E2, R | R2> =>
|
|
398
398
|
SyncOp.matchSyncOperator(op, {
|
|
399
|
-
Map: (op): Effect.Effect<
|
|
399
|
+
Map: (op): Effect.Effect<void, E | E2, R | R2> =>
|
|
400
400
|
SyncProducer.effectOnce(() => EffectProducer.runEffect(fx.i0, (a) => f(op.f(a)))),
|
|
401
401
|
Filter: (op) =>
|
|
402
402
|
SyncProducer.effectOnce(() =>
|
|
@@ -412,7 +412,7 @@ class Observe<R, E, A, R2, E2, B> extends EffectBase<R | R2, E | E2, void> {
|
|
|
412
412
|
}),
|
|
413
413
|
EffectOperator: (op) =>
|
|
414
414
|
EffectOp.matchEffectOperator(op, {
|
|
415
|
-
MapEffect: (op): Effect.Effect<
|
|
415
|
+
MapEffect: (op): Effect.Effect<void, E | E2, R | R2> =>
|
|
416
416
|
EffectProducer.runEffect(fx.i0, (a) => Effect.flatMap(op.f(a), f)),
|
|
417
417
|
FilterMapEffect: (op) =>
|
|
418
418
|
EffectProducer.runEffect(fx.i0, (a) =>
|
|
@@ -472,7 +472,7 @@ class Observe<R, E, A, R2, E2, B> extends EffectBase<R | R2, E | E2, void> {
|
|
|
472
472
|
}
|
|
473
473
|
}
|
|
474
474
|
|
|
475
|
-
export const reduce = <R, E, A, B>(fx: Fx<R, E, A>, seed: B, f: (acc: B, a: A) => B): Effect.Effect<
|
|
475
|
+
export const reduce = <R, E, A, B>(fx: Fx<R, E, A>, seed: B, f: (acc: B, a: A) => B): Effect.Effect<B, E, R> =>
|
|
476
476
|
Reduce.make(fx, seed, f)
|
|
477
477
|
|
|
478
478
|
class Reduce<R, E, A, B> extends EffectBase<R, E, B> {
|
|
@@ -480,7 +480,7 @@ class Reduce<R, E, A, B> extends EffectBase<R, E, B> {
|
|
|
480
480
|
super()
|
|
481
481
|
}
|
|
482
482
|
|
|
483
|
-
toEffect(): Effect.Effect<
|
|
483
|
+
toEffect(): Effect.Effect<B, E, R> {
|
|
484
484
|
return Effect.suspend(() => {
|
|
485
485
|
let acc = this.i1
|
|
486
486
|
|
|
@@ -557,7 +557,7 @@ class Reduce<R, E, A, B> extends EffectBase<R, E, B> {
|
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
559
|
|
|
560
|
-
export const toReadonlyArray = <R, E, A>(fx: Fx<R, E, A>): Effect.Effect<
|
|
560
|
+
export const toReadonlyArray = <R, E, A>(fx: Fx<R, E, A>): Effect.Effect<ReadonlyArray<A>, E, R> =>
|
|
561
561
|
Effect.suspend(() => {
|
|
562
562
|
const init = [] as Array<A>
|
|
563
563
|
return Reduce.make(fx, init, (acc, a) => {
|
|
@@ -578,7 +578,7 @@ class Slice<R, E, A> extends FxBase<R, E, A> {
|
|
|
578
578
|
super()
|
|
579
579
|
}
|
|
580
580
|
|
|
581
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
581
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
582
582
|
return Sink.slice(sink, this.i1, (s) => this.i0.run(s))
|
|
583
583
|
}
|
|
584
584
|
|
|
@@ -628,7 +628,7 @@ class ProducerEffectTransformer<R, E, A, R2, E2, B> extends FxBase<R | R2, E | E
|
|
|
628
628
|
super()
|
|
629
629
|
}
|
|
630
630
|
|
|
631
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, B>): Effect.Effect<R | R2 | R3
|
|
631
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, B>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
632
632
|
return EffectProducer.runSink(this.i0, Op.compileOperatorSink(this.i1, sink))
|
|
633
633
|
}
|
|
634
634
|
}
|
|
@@ -643,7 +643,7 @@ export function isProducerEffectTransformer<R, E, A>(
|
|
|
643
643
|
}
|
|
644
644
|
|
|
645
645
|
class Empty extends FxBase<never, never, never> {
|
|
646
|
-
run<R2>(): Effect.Effect<
|
|
646
|
+
run<R2>(): Effect.Effect<unknown, never, R2> {
|
|
647
647
|
return Effect.unit
|
|
648
648
|
}
|
|
649
649
|
}
|
|
@@ -658,7 +658,7 @@ export function isEmpty<R, E, A>(fx: Fx<R, E, A>): fx is Empty {
|
|
|
658
658
|
export const empty: Fx<never, never, never> = new Empty()
|
|
659
659
|
|
|
660
660
|
class Never extends FxBase<never, never, never> {
|
|
661
|
-
run<R2>(): Effect.Effect<
|
|
661
|
+
run<R2>(): Effect.Effect<unknown, never, R2> {
|
|
662
662
|
return Effect.never
|
|
663
663
|
}
|
|
664
664
|
}
|
|
@@ -723,7 +723,7 @@ class PadWith<
|
|
|
723
723
|
super()
|
|
724
724
|
}
|
|
725
725
|
|
|
726
|
-
run<R2>(sink: Sink.Sink<R2, E, A | B | C>): Effect.Effect<R | R2
|
|
726
|
+
run<R2>(sink: Sink.Sink<R2, E, A | B | C>): Effect.Effect<unknown, never, R | R2> {
|
|
727
727
|
const onSuccess = (a: A | B | C) => sink.onSuccess(a)
|
|
728
728
|
|
|
729
729
|
return Effect.forEach(this.i1, onSuccess, DISCARD).pipe(
|
|
@@ -783,7 +783,7 @@ export function switchMap<R, E, A, R2, E2, B>(
|
|
|
783
783
|
|
|
784
784
|
export function switchMapEffect<R, E, A, R2, E2, B>(
|
|
785
785
|
fx: Fx<R, E, A>,
|
|
786
|
-
f: (a: A) => Effect.Effect<
|
|
786
|
+
f: (a: A) => Effect.Effect<B, E2, R2>,
|
|
787
787
|
executionStrategy?: ExecutionStrategy.ExecutionStrategy
|
|
788
788
|
): Fx<R | R2 | Scope.Scope, E | E2, B> {
|
|
789
789
|
return switchMap(fx, (a) => fromEffect(f(a)), executionStrategy)
|
|
@@ -799,7 +799,7 @@ export function exhaustMap<R, E, A, R2, E2, B>(
|
|
|
799
799
|
|
|
800
800
|
export function exhaustMapEffect<R, E, A, R2, E2, B>(
|
|
801
801
|
fx: Fx<R, E, A>,
|
|
802
|
-
f: (a: A) => Effect.Effect<
|
|
802
|
+
f: (a: A) => Effect.Effect<B, E2, R2>,
|
|
803
803
|
executionStrategy?: ExecutionStrategy.ExecutionStrategy
|
|
804
804
|
): Fx<R | R2 | Scope.Scope, E | E2, B> {
|
|
805
805
|
return exhaustMap(fx, (a) => fromEffect(f(a)), executionStrategy)
|
|
@@ -815,7 +815,7 @@ export function exhaustMapLatest<R, E, A, R2, E2, B>(
|
|
|
815
815
|
|
|
816
816
|
export function exhaustMapLatestEffect<R, E, A, R2, E2, B>(
|
|
817
817
|
fx: Fx<R, E, A>,
|
|
818
|
-
f: (a: A) => Effect.Effect<
|
|
818
|
+
f: (a: A) => Effect.Effect<B, E2, R2>,
|
|
819
819
|
executionStrategy?: ExecutionStrategy.ExecutionStrategy
|
|
820
820
|
): Fx<R | R2 | Scope.Scope, E | E2, B> {
|
|
821
821
|
return exhaustMapLatest(fx, (a) => fromEffect(f(a)), executionStrategy)
|
|
@@ -823,7 +823,7 @@ export function exhaustMapLatestEffect<R, E, A, R2, E2, B>(
|
|
|
823
823
|
|
|
824
824
|
export function exhaustFilterMapLatestEffect<R, E, A, R2, E2, B>(
|
|
825
825
|
fx: Fx<R, E, A>,
|
|
826
|
-
f: (a: A) => Effect.Effect<
|
|
826
|
+
f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>,
|
|
827
827
|
executionStrategy?: ExecutionStrategy.ExecutionStrategy
|
|
828
828
|
): Fx<R | R2 | Scope.Scope, E | E2, B> {
|
|
829
829
|
return exhaustMapLatest(fx, (a) =>
|
|
@@ -855,7 +855,7 @@ export function concatMap<R, E, A, R2, E2, B>(
|
|
|
855
855
|
|
|
856
856
|
export function flatMapConcurrentlyEffect<R, E, A, R2, E2, B>(
|
|
857
857
|
fx: Fx<R, E, A>,
|
|
858
|
-
f: (a: A) => Effect.Effect<
|
|
858
|
+
f: (a: A) => Effect.Effect<B, E2, R2>,
|
|
859
859
|
capacity: number,
|
|
860
860
|
executionStrategy?: ExecutionStrategy.ExecutionStrategy
|
|
861
861
|
): Fx<R | R2 | Scope.Scope, E | E2, B> {
|
|
@@ -872,7 +872,7 @@ export function flatMap<R, E, A, R2, E2, B>(
|
|
|
872
872
|
|
|
873
873
|
export function flatMapEffect<R, E, A, R2, E2, B>(
|
|
874
874
|
fx: Fx<R, E, A>,
|
|
875
|
-
f: (a: A) => Effect.Effect<
|
|
875
|
+
f: (a: A) => Effect.Effect<B, E2, R2>,
|
|
876
876
|
executionStrategy?: ExecutionStrategy.ExecutionStrategy
|
|
877
877
|
): Fx<R | R2 | Scope.Scope, E | E2, B> {
|
|
878
878
|
return flatMap(fx, (a) => fromEffect(f(a)), executionStrategy)
|
|
@@ -890,9 +890,9 @@ class FlatMapWithStrategy<
|
|
|
890
890
|
f: (
|
|
891
891
|
fork: FxFork,
|
|
892
892
|
scope: Scope.Scope
|
|
893
|
-
) => Effect.Effect<
|
|
893
|
+
) => Effect.Effect<A, E, R>,
|
|
894
894
|
executionStrategy: ExecutionStrategy.ExecutionStrategy
|
|
895
|
-
) => Effect.Effect<Scope.Scope | R
|
|
895
|
+
) => Effect.Effect<void, E, Scope.Scope | R>
|
|
896
896
|
|
|
897
897
|
constructor(
|
|
898
898
|
readonly i0: Fx<R, E, A>,
|
|
@@ -905,7 +905,7 @@ class FlatMapWithStrategy<
|
|
|
905
905
|
this.withFork = withFlattenStrategy(i2)
|
|
906
906
|
}
|
|
907
907
|
|
|
908
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, B>): Effect.Effect<R | R2 | R3 | Scope.Scope
|
|
908
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, B>): Effect.Effect<unknown, never, R | R2 | R3 | Scope.Scope> {
|
|
909
909
|
return this.withFork(
|
|
910
910
|
(fork) =>
|
|
911
911
|
Sink.withEarlyExit(sink, (sink) =>
|
|
@@ -959,7 +959,7 @@ class FlatMapWithStrategy<
|
|
|
959
959
|
}
|
|
960
960
|
|
|
961
961
|
export function fromFxEffect<R, E, R2, E2, B>(
|
|
962
|
-
effect: Effect.Effect<
|
|
962
|
+
effect: Effect.Effect<Fx<R2, E2, B>, E, R>
|
|
963
963
|
): Fx<R | R2, E | E2, B> {
|
|
964
964
|
return new FromFxEffect(effect)
|
|
965
965
|
}
|
|
@@ -971,11 +971,11 @@ class FromFxEffect<
|
|
|
971
971
|
E2,
|
|
972
972
|
B
|
|
973
973
|
> extends FxBase<R | R2, E | E2, B> {
|
|
974
|
-
constructor(readonly i0: Effect.Effect<
|
|
974
|
+
constructor(readonly i0: Effect.Effect<Fx<R2, E2, B>, E, R>) {
|
|
975
975
|
super()
|
|
976
976
|
}
|
|
977
977
|
|
|
978
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, B>): Effect.Effect<R | R2 | R3
|
|
978
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, B>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
979
979
|
return Effect.matchCauseEffect(this.i0, {
|
|
980
980
|
onFailure: (cause) => sink.onFailure(cause),
|
|
981
981
|
onSuccess: (fx) => fx.run(sink)
|
|
@@ -1022,7 +1022,7 @@ class ContinueWith<
|
|
|
1022
1022
|
super()
|
|
1023
1023
|
}
|
|
1024
1024
|
|
|
1025
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<R | R2 | R3
|
|
1025
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
1026
1026
|
return Effect.flatMap(this.i0.run(sink), () => this.i1().run(sink))
|
|
1027
1027
|
}
|
|
1028
1028
|
|
|
@@ -1064,7 +1064,7 @@ class OrElseCause<
|
|
|
1064
1064
|
super()
|
|
1065
1065
|
}
|
|
1066
1066
|
|
|
1067
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<R | R2 | R3
|
|
1067
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
1068
1068
|
return Effect.catchAllCause(observe(this.i0, sink.onSuccess), (cause) => this.i1(cause).run(sink))
|
|
1069
1069
|
}
|
|
1070
1070
|
|
|
@@ -1099,9 +1099,9 @@ class OrElse<
|
|
|
1099
1099
|
super()
|
|
1100
1100
|
}
|
|
1101
1101
|
|
|
1102
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<R | R2 | R3
|
|
1102
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
1103
1103
|
return Effect.catchAll(
|
|
1104
|
-
Effect.asyncEffect<
|
|
1104
|
+
Effect.asyncEffect<unknown, E, never, void, never, R | R2 | R3>((resume) =>
|
|
1105
1105
|
Effect.zipRight(
|
|
1106
1106
|
this.i0.run(
|
|
1107
1107
|
Sink.make(
|
|
@@ -1116,7 +1116,7 @@ class OrElse<
|
|
|
1116
1116
|
Effect.sync(() => resume(Effect.unit))
|
|
1117
1117
|
)
|
|
1118
1118
|
),
|
|
1119
|
-
(error) => this.i1(error).run(sink)
|
|
1119
|
+
(error: E) => this.i1(error).run(sink)
|
|
1120
1120
|
)
|
|
1121
1121
|
}
|
|
1122
1122
|
|
|
@@ -1141,7 +1141,7 @@ class Suspend<R, E, A> extends FxBase<R, E, A> {
|
|
|
1141
1141
|
super()
|
|
1142
1142
|
}
|
|
1143
1143
|
|
|
1144
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
1144
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
1145
1145
|
return this.i0().run(sink)
|
|
1146
1146
|
}
|
|
1147
1147
|
}
|
|
@@ -1155,7 +1155,7 @@ class SuspendedTransformer<R, E, A, R2, E2, B> extends FxBase<R | R2, E2, B> {
|
|
|
1155
1155
|
super()
|
|
1156
1156
|
}
|
|
1157
1157
|
|
|
1158
|
-
run<R3>(sink: Sink.Sink<R3, E2, B>): Effect.Effect<R | R2 | R3
|
|
1158
|
+
run<R3>(sink: Sink.Sink<R3, E2, B>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
1159
1159
|
return this.i0().run(Op.compileOperatorSink(this.i1, sink))
|
|
1160
1160
|
}
|
|
1161
1161
|
}
|
|
@@ -1220,7 +1220,7 @@ class MergeWithStrategy<
|
|
|
1220
1220
|
|
|
1221
1221
|
run<R2>(
|
|
1222
1222
|
sink: Sink.Sink<R2, Fx.Error<FX[number]>, Fx.Success<FX[number]>>
|
|
1223
|
-
): Effect.Effect<Fx.Context<FX[number]> | R2
|
|
1223
|
+
): Effect.Effect<unknown, never, Fx.Context<FX[number]> | R2> {
|
|
1224
1224
|
switch (this.i1._tag) {
|
|
1225
1225
|
case "Unordered":
|
|
1226
1226
|
return runUnordered(this.i0, sink, this.i1.concurrency === Infinity ? "unbounded" : this.i1.concurrency)
|
|
@@ -1252,7 +1252,7 @@ function runUnordered<
|
|
|
1252
1252
|
fx: FX,
|
|
1253
1253
|
sink: Sink.Sink<R2, any, any>,
|
|
1254
1254
|
concurrency: number | "unbounded"
|
|
1255
|
-
): Effect.Effect<R2 | Fx.Context<FX[number]
|
|
1255
|
+
): Effect.Effect<unknown, never, R2 | Fx.Context<FX[number]>> {
|
|
1256
1256
|
return Effect.forEach(fx, (fx) => fx.run(sink), { concurrency, discard: true })
|
|
1257
1257
|
}
|
|
1258
1258
|
|
|
@@ -1263,7 +1263,7 @@ function runOrdered<
|
|
|
1263
1263
|
fx: FX,
|
|
1264
1264
|
sink: Sink.Sink<R2, any, any>,
|
|
1265
1265
|
concurrency: number | "unbounded"
|
|
1266
|
-
): Effect.Effect<R2 | Fx.Context<FX[number]
|
|
1266
|
+
): Effect.Effect<unknown, never, R2 | Fx.Context<FX[number]>> {
|
|
1267
1267
|
return Effect.suspend(
|
|
1268
1268
|
() => {
|
|
1269
1269
|
const buffers = withBuffers(fx.length, sink)
|
|
@@ -1293,7 +1293,7 @@ function runSwitch<
|
|
|
1293
1293
|
>(
|
|
1294
1294
|
fx: FX,
|
|
1295
1295
|
sink: Sink.Sink<R2, any, any>
|
|
1296
|
-
): Effect.Effect<R2 | Fx.Context<FX[number]
|
|
1296
|
+
): Effect.Effect<unknown, never, R2 | Fx.Context<FX[number]>> {
|
|
1297
1297
|
return Effect.forEach(fx, (fx) => fx.run(sink), { concurrency: 1, discard: true })
|
|
1298
1298
|
}
|
|
1299
1299
|
|
|
@@ -1316,7 +1316,7 @@ class TakeWhile<R, E, A> extends FxBase<R, E, A> {
|
|
|
1316
1316
|
super()
|
|
1317
1317
|
}
|
|
1318
1318
|
|
|
1319
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
1319
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
1320
1320
|
return Sink.takeWhile(sink, this.i1, (s) => this.i0.run(s))
|
|
1321
1321
|
}
|
|
1322
1322
|
|
|
@@ -1347,7 +1347,7 @@ class DropUntil<R, E, A> extends FxBase<R, E, A> {
|
|
|
1347
1347
|
super()
|
|
1348
1348
|
}
|
|
1349
1349
|
|
|
1350
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
1350
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
1351
1351
|
return this.i0.run(Sink.dropWhile(sink, this.i1))
|
|
1352
1352
|
}
|
|
1353
1353
|
|
|
@@ -1371,7 +1371,7 @@ class DropAfter<R, E, A> extends FxBase<R, E, A> {
|
|
|
1371
1371
|
super()
|
|
1372
1372
|
}
|
|
1373
1373
|
|
|
1374
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
1374
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
1375
1375
|
return this.i0.run(Sink.dropAfter(sink, this.i1))
|
|
1376
1376
|
}
|
|
1377
1377
|
|
|
@@ -1385,30 +1385,30 @@ class DropAfter<R, E, A> extends FxBase<R, E, A> {
|
|
|
1385
1385
|
|
|
1386
1386
|
export function takeWhileEffect<R, E, A, R2, E2>(
|
|
1387
1387
|
fx: Fx<R, E, A>,
|
|
1388
|
-
f: (a: A) => Effect.Effect<
|
|
1388
|
+
f: (a: A) => Effect.Effect<boolean, E2, R2>
|
|
1389
1389
|
): Fx<R | R2, E | E2, A> {
|
|
1390
1390
|
return TakeWhileEffect.make(fx, f)
|
|
1391
1391
|
}
|
|
1392
1392
|
|
|
1393
1393
|
export function takeUntilEffect<R, E, A, R2, E2>(
|
|
1394
1394
|
fx: Fx<R, E, A>,
|
|
1395
|
-
f: (a: A) => Effect.Effect<
|
|
1395
|
+
f: (a: A) => Effect.Effect<boolean, E2, R2>
|
|
1396
1396
|
): Fx<R | R2, E | E2, A> {
|
|
1397
1397
|
return TakeWhileEffect.make(fx, (a) => Effect.map(f(a), Boolean.not))
|
|
1398
1398
|
}
|
|
1399
1399
|
|
|
1400
1400
|
class TakeWhileEffect<R, E, A, R2, E2> extends FxBase<R | R2, E | E2, A> {
|
|
1401
|
-
constructor(readonly i0: Fx<R, E, A>, readonly i1: (a: A) => Effect.Effect<
|
|
1401
|
+
constructor(readonly i0: Fx<R, E, A>, readonly i1: (a: A) => Effect.Effect<boolean, E2, R2>) {
|
|
1402
1402
|
super()
|
|
1403
1403
|
}
|
|
1404
1404
|
|
|
1405
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, A>): Effect.Effect<R | R2 | R3
|
|
1405
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, A>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
1406
1406
|
return Sink.takeWhileEffect(sink, this.i1, (s) => this.i0.run(s))
|
|
1407
1407
|
}
|
|
1408
1408
|
|
|
1409
1409
|
static make<R, E, A, R2, E2>(
|
|
1410
1410
|
fx: Fx<R, E, A>,
|
|
1411
|
-
f: (a: A) => Effect.Effect<
|
|
1411
|
+
f: (a: A) => Effect.Effect<boolean, E2, R2>
|
|
1412
1412
|
): Fx<R | R2, E | E2, A> {
|
|
1413
1413
|
if (isEmpty(fx) || isNever(fx)) return fx
|
|
1414
1414
|
else {
|
|
@@ -1419,30 +1419,30 @@ class TakeWhileEffect<R, E, A, R2, E2> extends FxBase<R | R2, E | E2, A> {
|
|
|
1419
1419
|
|
|
1420
1420
|
export function dropWhileEffect<R, E, A>(
|
|
1421
1421
|
fx: Fx<R, E, A>,
|
|
1422
|
-
f: (a: A) => Effect.Effect<
|
|
1422
|
+
f: (a: A) => Effect.Effect<boolean, E, R>
|
|
1423
1423
|
): Fx<R, E, A> {
|
|
1424
1424
|
return DropWhileEffect.make(fx, f)
|
|
1425
1425
|
}
|
|
1426
1426
|
|
|
1427
1427
|
export function dropUntilEffect<R, E, A>(
|
|
1428
1428
|
fx: Fx<R, E, A>,
|
|
1429
|
-
f: (a: A) => Effect.Effect<
|
|
1429
|
+
f: (a: A) => Effect.Effect<boolean, E, R>
|
|
1430
1430
|
): Fx<R, E, A> {
|
|
1431
1431
|
return DropWhileEffect.make(fx, (a) => Effect.map(f(a), Boolean.not))
|
|
1432
1432
|
}
|
|
1433
1433
|
|
|
1434
1434
|
class DropWhileEffect<R, E, A> extends FxBase<R, E, A> {
|
|
1435
|
-
constructor(readonly i0: Fx<R, E, A>, readonly i1: (a: A) => Effect.Effect<
|
|
1435
|
+
constructor(readonly i0: Fx<R, E, A>, readonly i1: (a: A) => Effect.Effect<boolean, E, R>) {
|
|
1436
1436
|
super()
|
|
1437
1437
|
}
|
|
1438
1438
|
|
|
1439
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2
|
|
1439
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2> {
|
|
1440
1440
|
return this.i0.run(Sink.dropWhileEffect(sink, this.i1))
|
|
1441
1441
|
}
|
|
1442
1442
|
|
|
1443
1443
|
static make<R, E, A>(
|
|
1444
1444
|
fx: Fx<R, E, A>,
|
|
1445
|
-
f: (a: A) => Effect.Effect<
|
|
1445
|
+
f: (a: A) => Effect.Effect<boolean, E, R>
|
|
1446
1446
|
): Fx<R, E, A> {
|
|
1447
1447
|
if (isEmpty(fx) || isNever(fx)) return fx
|
|
1448
1448
|
else {
|
|
@@ -1453,23 +1453,23 @@ class DropWhileEffect<R, E, A> extends FxBase<R, E, A> {
|
|
|
1453
1453
|
|
|
1454
1454
|
export function dropAfterEffect<R, E, A, R2, E2>(
|
|
1455
1455
|
fx: Fx<R, E, A>,
|
|
1456
|
-
f: (a: A) => Effect.Effect<
|
|
1456
|
+
f: (a: A) => Effect.Effect<boolean, E2, R2>
|
|
1457
1457
|
): Fx<R | R2, E | E2, A> {
|
|
1458
1458
|
return DropAfterEffect.make(fx, f)
|
|
1459
1459
|
}
|
|
1460
1460
|
|
|
1461
1461
|
class DropAfterEffect<R, E, A, R2, E2> extends FxBase<R | R2, E | E2, A> {
|
|
1462
|
-
constructor(readonly i0: Fx<R, E, A>, readonly i1: (a: A) => Effect.Effect<
|
|
1462
|
+
constructor(readonly i0: Fx<R, E, A>, readonly i1: (a: A) => Effect.Effect<boolean, E2, R2>) {
|
|
1463
1463
|
super()
|
|
1464
1464
|
}
|
|
1465
1465
|
|
|
1466
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, A>): Effect.Effect<R | R2 | R3
|
|
1466
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, A>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
1467
1467
|
return this.i0.run(Sink.dropAfterEffect(sink, this.i1))
|
|
1468
1468
|
}
|
|
1469
1469
|
|
|
1470
1470
|
static make<R, E, A, R2, E2>(
|
|
1471
1471
|
fx: Fx<R, E, A>,
|
|
1472
|
-
f: (a: A) => Effect.Effect<
|
|
1472
|
+
f: (a: A) => Effect.Effect<boolean, E2, R2>
|
|
1473
1473
|
): Fx<R | R2, E | E2, A> {
|
|
1474
1474
|
if (isEmpty(fx) || isNever(fx)) return fx
|
|
1475
1475
|
else {
|
|
@@ -1504,7 +1504,7 @@ class During<R, E, A, R2, E2, R3, E3, B> extends FxBase<R | R2 | R3 | Scope.Scop
|
|
|
1504
1504
|
super()
|
|
1505
1505
|
}
|
|
1506
1506
|
|
|
1507
|
-
run<R4>(sink: Sink.Sink<R4, E | E2 | E3, A>): Effect.Effect<R | R2 | R3 | R4 | Scope.Scope
|
|
1507
|
+
run<R4>(sink: Sink.Sink<R4, E | E2 | E3, A>): Effect.Effect<unknown, never, R | R2 | R3 | R4 | Scope.Scope> {
|
|
1508
1508
|
return withScopedFork(
|
|
1509
1509
|
(fork) =>
|
|
1510
1510
|
Sink.withEarlyExit(sink, (s) => {
|
|
@@ -1551,7 +1551,7 @@ class During<R, E, A, R2, E2, R3, E3, B> extends FxBase<R | R2 | R3 | Scope.Scop
|
|
|
1551
1551
|
|
|
1552
1552
|
export function middleware<R, E, A, R3>(
|
|
1553
1553
|
fx: Fx<R, E, A>,
|
|
1554
|
-
effect: (effect: Effect.Effect<
|
|
1554
|
+
effect: (effect: Effect.Effect<unknown, never, R>) => Effect.Effect<unknown, never, R3>,
|
|
1555
1555
|
sink?: (sink: Sink.Sink<never, E, A>) => Sink.Sink<R, E, A>
|
|
1556
1556
|
): Fx<R3, E, A> {
|
|
1557
1557
|
return new Middleware(fx, effect, sink)
|
|
@@ -1559,21 +1559,21 @@ export function middleware<R, E, A, R3>(
|
|
|
1559
1559
|
|
|
1560
1560
|
export function onExit<R, E, A, R2>(
|
|
1561
1561
|
fx: Fx<R, E, A>,
|
|
1562
|
-
f: (exit: Exit.Exit<
|
|
1562
|
+
f: (exit: Exit.Exit<unknown>) => Effect.Effect<unknown, never, R2>
|
|
1563
1563
|
): Fx<R | R2, E, A> {
|
|
1564
1564
|
return middleware(fx, Effect.onExit(f))
|
|
1565
1565
|
}
|
|
1566
1566
|
|
|
1567
1567
|
export function onInterrupt<R, E, A, R2>(
|
|
1568
1568
|
fx: Fx<R, E, A>,
|
|
1569
|
-
f: (interruptors: HashSet.HashSet<FiberId.FiberId>) => Effect.Effect<
|
|
1569
|
+
f: (interruptors: HashSet.HashSet<FiberId.FiberId>) => Effect.Effect<unknown, never, R2>
|
|
1570
1570
|
): Fx<R | R2, E, A> {
|
|
1571
1571
|
return middleware(fx, Effect.onInterrupt(f))
|
|
1572
1572
|
}
|
|
1573
1573
|
|
|
1574
1574
|
export function onError<R, E, A, R2>(
|
|
1575
1575
|
fx: Fx<R, E, A>,
|
|
1576
|
-
f: (cause: Cause.Cause<never>) => Effect.Effect<
|
|
1576
|
+
f: (cause: Cause.Cause<never>) => Effect.Effect<unknown, never, R2>
|
|
1577
1577
|
): Fx<R | R2, E, A> {
|
|
1578
1578
|
return middleware(fx, Effect.onError(f))
|
|
1579
1579
|
}
|
|
@@ -1696,13 +1696,13 @@ export function withTracer<R, E, A>(
|
|
|
1696
1696
|
class Middleware<R, E, A, R2> extends FxBase<R2, E, A> {
|
|
1697
1697
|
constructor(
|
|
1698
1698
|
readonly i0: Fx<R, E, A>,
|
|
1699
|
-
readonly i1: (effect: Effect.Effect<
|
|
1699
|
+
readonly i1: (effect: Effect.Effect<unknown, never, R>) => Effect.Effect<unknown, never, R2>,
|
|
1700
1700
|
readonly i2?: (sink: Sink.Sink<never, E, A>) => Sink.Sink<R, E, A>
|
|
1701
1701
|
) {
|
|
1702
1702
|
super()
|
|
1703
1703
|
}
|
|
1704
1704
|
|
|
1705
|
-
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<R2 | R3
|
|
1705
|
+
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<unknown, never, R2 | R3> {
|
|
1706
1706
|
return Effect.contextWithEffect((ctx) => {
|
|
1707
1707
|
const s = Sink.provide(sink, ctx)
|
|
1708
1708
|
|
|
@@ -1712,23 +1712,23 @@ class Middleware<R, E, A, R2> extends FxBase<R2, E, A> {
|
|
|
1712
1712
|
}
|
|
1713
1713
|
|
|
1714
1714
|
export function acquireUseRelease<R, E, A, R2, E2, B, R3, E3, C>(
|
|
1715
|
-
acquire: Effect.Effect<
|
|
1715
|
+
acquire: Effect.Effect<A, E, R>,
|
|
1716
1716
|
use: (a: A) => Fx<R2, E2, B>,
|
|
1717
|
-
release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<
|
|
1717
|
+
release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<C, E3, R3>
|
|
1718
1718
|
): Fx<R | R2 | R3, E | E2 | E3, B> {
|
|
1719
1719
|
return new AcquireUseRelease(acquire, use, release)
|
|
1720
1720
|
}
|
|
1721
1721
|
|
|
1722
1722
|
class AcquireUseRelease<R, E, A, R2, E2, B, R3, E3, C> extends FxBase<R | R2 | R3, E | E2 | E3, B> {
|
|
1723
1723
|
constructor(
|
|
1724
|
-
readonly acquire: Effect.Effect<
|
|
1724
|
+
readonly acquire: Effect.Effect<A, E, R>,
|
|
1725
1725
|
readonly use: (a: A) => Fx<R2, E2, B>,
|
|
1726
|
-
readonly release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<
|
|
1726
|
+
readonly release: (a: A, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<C, E3, R3>
|
|
1727
1727
|
) {
|
|
1728
1728
|
super()
|
|
1729
1729
|
}
|
|
1730
1730
|
|
|
1731
|
-
run<R4>(sink: Sink.Sink<R4, E | E2 | E3, B>): Effect.Effect<R | R2 | R3 | R4
|
|
1731
|
+
run<R4>(sink: Sink.Sink<R4, E | E2 | E3, B>): Effect.Effect<unknown, never, R | R2 | R3 | R4> {
|
|
1732
1732
|
return Effect.catchAllCause(
|
|
1733
1733
|
Effect.acquireUseRelease(
|
|
1734
1734
|
this.acquire,
|
|
@@ -1775,7 +1775,7 @@ export function provideContext<R, E, A, R2>(
|
|
|
1775
1775
|
|
|
1776
1776
|
export function provideLayer<R, E, A, R2, E2, S>(
|
|
1777
1777
|
fx: Fx<R, E, A>,
|
|
1778
|
-
layer: Layer.Layer<
|
|
1778
|
+
layer: Layer.Layer<S, E2, R2>
|
|
1779
1779
|
): Fx<R2 | Exclude<R, S>, E | E2, A> {
|
|
1780
1780
|
return ProvideFx.make(fx, Provide.ProvideLayer(layer))
|
|
1781
1781
|
}
|
|
@@ -1798,16 +1798,16 @@ export function provideService<R, E, A, I, S>(
|
|
|
1798
1798
|
export function provideServiceEffect<R, E, A, I, S, R2, E2>(
|
|
1799
1799
|
fx: Fx<R, E, A>,
|
|
1800
1800
|
service: Context.Tag<I, S>,
|
|
1801
|
-
instance: Effect.Effect<
|
|
1801
|
+
instance: Effect.Effect<S, E2, R2>
|
|
1802
1802
|
): Fx<Exclude<R, I> | R2, E | E2, A> {
|
|
1803
1803
|
return ProvideFx.make(fx, Provide.ProvideServiceEffect(service, instance))
|
|
1804
1804
|
}
|
|
1805
1805
|
|
|
1806
1806
|
export function provide<R, E, A, R2 = never, E2 = never, S = never>(
|
|
1807
1807
|
fx: Fx<R, E, A>,
|
|
1808
|
-
provide: Layer.Layer<
|
|
1808
|
+
provide: Layer.Layer<S, E2, R2> | Context.Context<S> | Runtime.Runtime<S>
|
|
1809
1809
|
): Fx<Exclude<R, S> | R2, E | E2, A> {
|
|
1810
|
-
if (Layer.isLayer(provide)) return provideLayer(fx, provide as Layer.Layer<
|
|
1810
|
+
if (Layer.isLayer(provide)) return provideLayer(fx, provide as Layer.Layer<S, E2, R2>)
|
|
1811
1811
|
else if (Context.isContext(provide)) return provideContext(fx, provide as Context.Context<S>)
|
|
1812
1812
|
else return provideRuntime(fx, provide as Runtime.Runtime<S>)
|
|
1813
1813
|
}
|
|
@@ -1817,7 +1817,7 @@ class ProvideFx<R, E, A, R2, E2, S> extends FxBase<R2 | Exclude<R, S>, E | E2, A
|
|
|
1817
1817
|
super()
|
|
1818
1818
|
}
|
|
1819
1819
|
|
|
1820
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, A>): Effect.Effect<R2 | R3 | Exclude<R, S
|
|
1820
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, A>): Effect.Effect<unknown, never, R2 | R3 | Exclude<R, S>> {
|
|
1821
1821
|
return Effect.acquireUseRelease(
|
|
1822
1822
|
Scope.make(),
|
|
1823
1823
|
(scope) =>
|
|
@@ -1898,14 +1898,14 @@ export function filterMapError<R, E, A, E2>(
|
|
|
1898
1898
|
|
|
1899
1899
|
export function mapCauseEffect<R, E, A, R2, E2, E3>(
|
|
1900
1900
|
fx: Fx<R, E, A>,
|
|
1901
|
-
f: (cause: Cause.Cause<E>) => Effect.Effect<
|
|
1901
|
+
f: (cause: Cause.Cause<E>) => Effect.Effect<Cause.Cause<E3>, E2, R2>
|
|
1902
1902
|
): Fx<R | R2, E2 | E3, A> {
|
|
1903
1903
|
return new TransformerCause(fx, EffectOp.MapEffect(f))
|
|
1904
1904
|
}
|
|
1905
1905
|
|
|
1906
1906
|
export function mapErrorEffect<R, E, A, R2, E2, E3>(
|
|
1907
1907
|
fx: Fx<R, E, A>,
|
|
1908
|
-
f: (e: E) => Effect.Effect<
|
|
1908
|
+
f: (e: E) => Effect.Effect<E3, E2, R2>
|
|
1909
1909
|
): Fx<R | R2, E2 | E3, A> {
|
|
1910
1910
|
return mapCauseEffect(fx, (cause) =>
|
|
1911
1911
|
Either.match(Cause.failureOrCause(cause), {
|
|
@@ -1916,14 +1916,14 @@ export function mapErrorEffect<R, E, A, R2, E2, E3>(
|
|
|
1916
1916
|
|
|
1917
1917
|
export function filterCauseEffect<R, E, A, R2, E2>(
|
|
1918
1918
|
fx: Fx<R, E, A>,
|
|
1919
|
-
f: (cause: Cause.Cause<E>) => Effect.Effect<
|
|
1919
|
+
f: (cause: Cause.Cause<E>) => Effect.Effect<boolean, E2, R2>
|
|
1920
1920
|
): Fx<R | R2, E2, A> {
|
|
1921
1921
|
return new TransformerCause(fx, EffectOp.FilterEffect(f))
|
|
1922
1922
|
}
|
|
1923
1923
|
|
|
1924
1924
|
export function filterErrorEffect<R, E, A, R2, E2>(
|
|
1925
1925
|
fx: Fx<R, E, A>,
|
|
1926
|
-
f: (e: E) => Effect.Effect<
|
|
1926
|
+
f: (e: E) => Effect.Effect<boolean, E2, R2>
|
|
1927
1927
|
): Fx<R | R2, E2, A> {
|
|
1928
1928
|
return filterCauseEffect(fx, (cause) =>
|
|
1929
1929
|
Either.match(Cause.failureOrCause(cause), {
|
|
@@ -1934,14 +1934,14 @@ export function filterErrorEffect<R, E, A, R2, E2>(
|
|
|
1934
1934
|
|
|
1935
1935
|
export function filterMapCauseEffect<R, E, A, R2, E2, E3>(
|
|
1936
1936
|
fx: Fx<R, E, A>,
|
|
1937
|
-
f: (cause: Cause.Cause<E>) => Effect.Effect<
|
|
1937
|
+
f: (cause: Cause.Cause<E>) => Effect.Effect<Option.Option<Cause.Cause<E3>>, E2, R2>
|
|
1938
1938
|
): Fx<R | R2, E2 | E3, A> {
|
|
1939
1939
|
return new TransformerCause(fx, EffectOp.FilterMapEffect(f))
|
|
1940
1940
|
}
|
|
1941
1941
|
|
|
1942
1942
|
export function filterMapErrorEffect<R, E, A, R2, E2, E3>(
|
|
1943
1943
|
fx: Fx<R, E, A>,
|
|
1944
|
-
f: (e: E) => Effect.Effect<
|
|
1944
|
+
f: (e: E) => Effect.Effect<Option.Option<E3>, E2, R2>
|
|
1945
1945
|
): Fx<R | R2, E2 | E3, A> {
|
|
1946
1946
|
return filterMapCauseEffect(fx, (cause) =>
|
|
1947
1947
|
Either.match(Cause.failureOrCause(cause), {
|
|
@@ -1976,7 +1976,7 @@ export function loopError<R, E, A, B, C>(
|
|
|
1976
1976
|
export function loopCauseEffect<R, E, A, R2, E2, B, C>(
|
|
1977
1977
|
fx: Fx<R, E, A>,
|
|
1978
1978
|
seed: B,
|
|
1979
|
-
f: (b: B, cause: Cause.Cause<E>) => Effect.Effect<
|
|
1979
|
+
f: (b: B, cause: Cause.Cause<E>) => Effect.Effect<readonly [Cause.Cause<C>, B], E2, R2>
|
|
1980
1980
|
): Fx<R | R2, E2 | C, A> {
|
|
1981
1981
|
return new TransformerCause(fx, EffectLoopOp.LoopEffectOperator(seed, f))
|
|
1982
1982
|
}
|
|
@@ -1984,7 +1984,7 @@ export function loopCauseEffect<R, E, A, R2, E2, B, C>(
|
|
|
1984
1984
|
export function loopErrorEffect<R, E, A, R2, E2, B, C>(
|
|
1985
1985
|
fx: Fx<R, E, A>,
|
|
1986
1986
|
seed: B,
|
|
1987
|
-
f: (b: B, e: E) => Effect.Effect<
|
|
1987
|
+
f: (b: B, e: E) => Effect.Effect<readonly [C, B], E2, R2>
|
|
1988
1988
|
) {
|
|
1989
1989
|
return loopCauseEffect(fx, seed, (b, cause) =>
|
|
1990
1990
|
Either.match(Cause.failureOrCause(cause), {
|
|
@@ -2019,7 +2019,7 @@ export function filterMapLoopError<R, E, A, B, C>(
|
|
|
2019
2019
|
export function filterMapLoopCauseEffect<R, E, A, R2, E2, B, C>(
|
|
2020
2020
|
fx: Fx<R, E, A>,
|
|
2021
2021
|
seed: B,
|
|
2022
|
-
f: (b: B, cause: Cause.Cause<E>) => Effect.Effect<
|
|
2022
|
+
f: (b: B, cause: Cause.Cause<E>) => Effect.Effect<readonly [Option.Option<Cause.Cause<C>>, B], E2, R2>
|
|
2023
2023
|
): Fx<R | R2, E2 | C, A> {
|
|
2024
2024
|
return new TransformerCause(fx, EffectLoopOp.FilterMapLoopEffectOperator(seed, f))
|
|
2025
2025
|
}
|
|
@@ -2027,7 +2027,7 @@ export function filterMapLoopCauseEffect<R, E, A, R2, E2, B, C>(
|
|
|
2027
2027
|
export function filterMapLoopErrorEffect<R, E, A, R2, E2, B, C>(
|
|
2028
2028
|
fx: Fx<R, E, A>,
|
|
2029
2029
|
seed: B,
|
|
2030
|
-
f: (b: B, e: E) => Effect.Effect<
|
|
2030
|
+
f: (b: B, e: E) => Effect.Effect<readonly [Option.Option<C>, B], E2, R2>
|
|
2031
2031
|
) {
|
|
2032
2032
|
return filterMapLoopCauseEffect(fx, seed, (b, cause) =>
|
|
2033
2033
|
Either.match(Cause.failureOrCause(cause), {
|
|
@@ -2041,7 +2041,7 @@ class TransformerCause<R, E, A, R2, E2> extends FxBase<R | R2, E2, A> {
|
|
|
2041
2041
|
super()
|
|
2042
2042
|
}
|
|
2043
2043
|
|
|
2044
|
-
run<R2>(sink: Sink.Sink<R2, E2, A>): Effect.Effect<R | R2
|
|
2044
|
+
run<R2>(sink: Sink.Sink<R2, E2, A>): Effect.Effect<unknown, never, R | R2> {
|
|
2045
2045
|
return this.i0.run(Op.compileOperatorSinkCause(this.i1, sink))
|
|
2046
2046
|
}
|
|
2047
2047
|
}
|
|
@@ -2167,9 +2167,9 @@ class FlatMapCauseWithStrategy<
|
|
|
2167
2167
|
f: (
|
|
2168
2168
|
fork: FxFork,
|
|
2169
2169
|
scope: Scope.Scope
|
|
2170
|
-
) => Effect.Effect<
|
|
2170
|
+
) => Effect.Effect<A, E, R>,
|
|
2171
2171
|
executionStrategy: ExecutionStrategy.ExecutionStrategy
|
|
2172
|
-
) => Effect.Effect<Scope.Scope | R
|
|
2172
|
+
) => Effect.Effect<void, E, Scope.Scope | R>
|
|
2173
2173
|
|
|
2174
2174
|
constructor(
|
|
2175
2175
|
readonly i0: Fx<R, E, A>,
|
|
@@ -2182,7 +2182,7 @@ class FlatMapCauseWithStrategy<
|
|
|
2182
2182
|
this.withFork = withFlattenStrategy(this.i2)
|
|
2183
2183
|
}
|
|
2184
2184
|
|
|
2185
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<R | R2 | R3 | Scope.Scope
|
|
2185
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<unknown, never, R | R2 | R3 | Scope.Scope> {
|
|
2186
2186
|
return this.withFork(
|
|
2187
2187
|
(fork) => this.i0.run(Sink.make((cause) => fork(this.i1(cause).run(sink)), (a) => sink.onSuccess(a))),
|
|
2188
2188
|
this.i3
|
|
@@ -2205,9 +2205,9 @@ class MatchWithStrategy<
|
|
|
2205
2205
|
f: (
|
|
2206
2206
|
fork: FxFork,
|
|
2207
2207
|
scope: Scope.Scope
|
|
2208
|
-
) => Effect.Effect<
|
|
2208
|
+
) => Effect.Effect<A, E, R>,
|
|
2209
2209
|
executionStrategy: ExecutionStrategy.ExecutionStrategy
|
|
2210
|
-
) => Effect.Effect<Scope.Scope | R
|
|
2210
|
+
) => Effect.Effect<void, E, Scope.Scope | R>
|
|
2211
2211
|
|
|
2212
2212
|
constructor(
|
|
2213
2213
|
readonly i0: Fx<R, E, A>,
|
|
@@ -2221,7 +2221,7 @@ class MatchWithStrategy<
|
|
|
2221
2221
|
this.withFork = withFlattenStrategy(this.i3)
|
|
2222
2222
|
}
|
|
2223
2223
|
|
|
2224
|
-
run<R4>(sink: Sink.Sink<R4, E2 | E3, B | C>): Effect.Effect<R | R2 | R3 | R4 | Scope.Scope
|
|
2224
|
+
run<R4>(sink: Sink.Sink<R4, E2 | E3, B | C>): Effect.Effect<unknown, never, R | R2 | R3 | R4 | Scope.Scope> {
|
|
2225
2225
|
return this.withFork(
|
|
2226
2226
|
(fork) =>
|
|
2227
2227
|
this.i0.run(Sink.make(
|
|
@@ -2374,7 +2374,7 @@ class Tuple<const FX extends ReadonlyArray<Fx<any, any, any>>> extends FxBase<
|
|
|
2374
2374
|
|
|
2375
2375
|
run<R2>(
|
|
2376
2376
|
sink: Sink.Sink<R2, Fx.Error<FX[number]>, { readonly [K in keyof FX]: Fx.Success<FX[K]> }>
|
|
2377
|
-
): Effect.Effect<Fx.Context<FX[number]> | R2
|
|
2377
|
+
): Effect.Effect<unknown, never, Fx.Context<FX[number]> | R2> {
|
|
2378
2378
|
return tupleSink(
|
|
2379
2379
|
sink,
|
|
2380
2380
|
(onSuccess) =>
|
|
@@ -2437,16 +2437,16 @@ export function all<const FX extends ReadonlyArray<Fx<any, any, any> | Readonly<
|
|
|
2437
2437
|
|
|
2438
2438
|
export function exit<R, E, A>(
|
|
2439
2439
|
fx: Fx<R, E, A>
|
|
2440
|
-
): Fx<R, never, Exit.Exit<
|
|
2440
|
+
): Fx<R, never, Exit.Exit<A, E>> {
|
|
2441
2441
|
return new ExitFx(fx)
|
|
2442
2442
|
}
|
|
2443
2443
|
|
|
2444
|
-
class ExitFx<R, E, A> extends FxBase<R, never, Exit.Exit<
|
|
2444
|
+
class ExitFx<R, E, A> extends FxBase<R, never, Exit.Exit<A, E>> {
|
|
2445
2445
|
constructor(readonly i0: Fx<R, E, A>) {
|
|
2446
2446
|
super()
|
|
2447
2447
|
}
|
|
2448
2448
|
|
|
2449
|
-
run<R2>(sink: Sink.Sink<R2, never, Exit.Exit<
|
|
2449
|
+
run<R2>(sink: Sink.Sink<R2, never, Exit.Exit<A, E>>): Effect.Effect<unknown, never, R | R2> {
|
|
2450
2450
|
return this.i0.run(
|
|
2451
2451
|
Sink.make((cause) => sink.onSuccess(Exit.failCause(cause)), (a) => sink.onSuccess(Exit.succeed(a)))
|
|
2452
2452
|
)
|
|
@@ -2485,10 +2485,10 @@ class FromAsyncIterable<A> extends FxBase<never, never, A> {
|
|
|
2485
2485
|
super()
|
|
2486
2486
|
}
|
|
2487
2487
|
|
|
2488
|
-
run<R>(sink: Sink.Sink<R, never, A>): Effect.Effect<
|
|
2488
|
+
run<R>(sink: Sink.Sink<R, never, A>): Effect.Effect<unknown, never, R> {
|
|
2489
2489
|
return Effect.asyncEffect((cb) => {
|
|
2490
2490
|
const iterator = this.i0[Symbol.asyncIterator]()
|
|
2491
|
-
const loop = (result: IteratorResult<A>): Effect.Effect<
|
|
2491
|
+
const loop = (result: IteratorResult<A>): Effect.Effect<unknown, never, R> =>
|
|
2492
2492
|
result.done
|
|
2493
2493
|
? Effect.sync(() => cb(Effect.unit))
|
|
2494
2494
|
: Effect.zipRight(sink.onSuccess(result.value), Effect.flatMap(Effect.promise(() => iterator.next()), loop))
|
|
@@ -2501,13 +2501,13 @@ class FromAsyncIterable<A> extends FxBase<never, never, A> {
|
|
|
2501
2501
|
}
|
|
2502
2502
|
}
|
|
2503
2503
|
|
|
2504
|
-
export function findFirst<R, E, A>(fx: Fx<R, E, A>, predicate: Predicate.Predicate<A>): Effect.Effect<
|
|
2504
|
+
export function findFirst<R, E, A>(fx: Fx<R, E, A>, predicate: Predicate.Predicate<A>): Effect.Effect<A, E, R> {
|
|
2505
2505
|
return Effect.asyncEffect((cb) =>
|
|
2506
2506
|
observe(fx, (a) => predicate(a) ? Effect.sync(() => cb(Effect.succeed(a))) : Effect.unit)
|
|
2507
2507
|
)
|
|
2508
2508
|
}
|
|
2509
2509
|
|
|
2510
|
-
export function first<R, E, A>(fx: Fx<R, E, A>): Effect.Effect<
|
|
2510
|
+
export function first<R, E, A>(fx: Fx<R, E, A>): Effect.Effect<A, E, R> {
|
|
2511
2511
|
return findFirst(fx, constTrue)
|
|
2512
2512
|
}
|
|
2513
2513
|
|
|
@@ -2520,7 +2520,7 @@ class EitherFx<R, E, A> extends FxBase<R, never, Either.Either<E, A>> {
|
|
|
2520
2520
|
super()
|
|
2521
2521
|
}
|
|
2522
2522
|
|
|
2523
|
-
run<R2>(sink: Sink.Sink<R2, never, Either.Either<E, A>>): Effect.Effect<R | R2
|
|
2523
|
+
run<R2>(sink: Sink.Sink<R2, never, Either.Either<E, A>>): Effect.Effect<unknown, never, R | R2> {
|
|
2524
2524
|
return this.i0.run(
|
|
2525
2525
|
Sink.make(
|
|
2526
2526
|
(cause) =>
|
|
@@ -2553,7 +2553,7 @@ class MergeRace<R, E, A, R2, E2, B> extends FxBase<R | R2, E | E2, A | B> {
|
|
|
2553
2553
|
super()
|
|
2554
2554
|
}
|
|
2555
2555
|
|
|
2556
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<R | R2 | R3
|
|
2556
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, A | B>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
2557
2557
|
return Effect.gen(this, function*(_) {
|
|
2558
2558
|
const fiber1 = yield* _(Effect.fork(this.i0.run(Sink.make(
|
|
2559
2559
|
sink.onFailure,
|
|
@@ -2594,13 +2594,13 @@ class RaceAll<const FX extends ReadonlyArray<Fx<any, any, any>>> extends FxBase<
|
|
|
2594
2594
|
|
|
2595
2595
|
run<R2>(
|
|
2596
2596
|
sink: Sink.Sink<R2, Fx.Error<FX[number]>, Fx.Success<FX[number]>>
|
|
2597
|
-
): Effect.Effect<Fx.Context<FX[number]> | R2
|
|
2597
|
+
): Effect.Effect<unknown, never, Fx.Context<FX[number]> | R2> {
|
|
2598
2598
|
return Effect.gen(this, function*(_) {
|
|
2599
|
-
const winner = yield* _(Deferred.make<
|
|
2600
|
-
const fibers: Array<Fiber.RuntimeFiber<
|
|
2599
|
+
const winner = yield* _(Deferred.make<Fiber.RuntimeFiber<unknown>>())
|
|
2600
|
+
const fibers: Array<Fiber.RuntimeFiber<unknown>> = []
|
|
2601
2601
|
|
|
2602
2602
|
for (const fx of this.i0) {
|
|
2603
|
-
const fiber: Fiber.RuntimeFiber<
|
|
2603
|
+
const fiber: Fiber.RuntimeFiber<unknown> = yield* _(Effect.fork(fx.run(Sink.make(
|
|
2604
2604
|
sink.onFailure,
|
|
2605
2605
|
(a) => Effect.flatMap(Deferred.succeed(winner, fiber), () => sink.onSuccess(a))
|
|
2606
2606
|
))))
|
|
@@ -2640,7 +2640,7 @@ class Snapshot<R, E, A, R2, E2, B, C> extends FxBase<R | R2, E | E2, C> {
|
|
|
2640
2640
|
super()
|
|
2641
2641
|
}
|
|
2642
2642
|
|
|
2643
|
-
run<R3>(sink: Sink.Sink<R3, E | E2, C>): Effect.Effect<R | R2 | R3
|
|
2643
|
+
run<R3>(sink: Sink.Sink<R3, E | E2, C>): Effect.Effect<unknown, never, R | R2 | R3> {
|
|
2644
2644
|
return Effect.flatMap(
|
|
2645
2645
|
Ref.make(Option.none<B>()),
|
|
2646
2646
|
(ref) =>
|
|
@@ -2668,7 +2668,7 @@ class Snapshot<R, E, A, R2, E2, B, C> extends FxBase<R | R2, E | E2, C> {
|
|
|
2668
2668
|
export function snapshotEffect<R, E, A, R2, E2, B, R3, E3, C>(
|
|
2669
2669
|
fx: Fx<R, E, A>,
|
|
2670
2670
|
sampled: Fx<R2, E2, B>,
|
|
2671
|
-
f: (a: A, b: B) => Effect.Effect<
|
|
2671
|
+
f: (a: A, b: B) => Effect.Effect<C, E3, R3>
|
|
2672
2672
|
): Fx<R | R2 | R3, E | E2 | E3, C> {
|
|
2673
2673
|
return new SnapshotEffect(fx, sampled, f)
|
|
2674
2674
|
}
|
|
@@ -2677,12 +2677,12 @@ class SnapshotEffect<R, E, A, R2, E2, B, R3, E3, C> extends FxBase<R | R2 | R3,
|
|
|
2677
2677
|
constructor(
|
|
2678
2678
|
readonly i0: Fx<R, E, A>,
|
|
2679
2679
|
readonly i1: Fx<R2, E2, B>,
|
|
2680
|
-
readonly i2: (a: A, b: B) => Effect.Effect<
|
|
2680
|
+
readonly i2: (a: A, b: B) => Effect.Effect<C, E3, R3>
|
|
2681
2681
|
) {
|
|
2682
2682
|
super()
|
|
2683
2683
|
}
|
|
2684
2684
|
|
|
2685
|
-
run<R4>(sink: Sink.Sink<R4, E | E2 | E3, C>): Effect.Effect<R | R2 | R3 | R4
|
|
2685
|
+
run<R4>(sink: Sink.Sink<R4, E | E2 | E3, C>): Effect.Effect<unknown, never, R | R2 | R3 | R4> {
|
|
2686
2686
|
return Effect.flatMap(
|
|
2687
2687
|
Ref.make(Option.none<B>()),
|
|
2688
2688
|
(ref) =>
|