@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/RefSubject.ts
CHANGED
|
@@ -95,8 +95,8 @@ export interface RefSubject<out R, in out E, in out A> extends Computed<R, E, A>
|
|
|
95
95
|
* @since 1.20.0
|
|
96
96
|
*/
|
|
97
97
|
readonly runUpdates: <R2, E2, B>(
|
|
98
|
-
f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<
|
|
99
|
-
) => Effect.Effect<R | R2
|
|
98
|
+
f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<B, E2, R2>
|
|
99
|
+
) => Effect.Effect<B, E2, R | R2>
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/**
|
|
@@ -124,9 +124,9 @@ export namespace RefSubject {
|
|
|
124
124
|
* @since 1.20.0
|
|
125
125
|
*/
|
|
126
126
|
readonly make: <R>(
|
|
127
|
-
fxOrEffect: Fx<R, E, A> | Effect.Effect<
|
|
127
|
+
fxOrEffect: Fx<R, E, A> | Effect.Effect<A, E, R>,
|
|
128
128
|
options?: RefSubjectOptions<A>
|
|
129
|
-
) => Layer.Layer<
|
|
129
|
+
) => Layer.Layer<I, never, R>
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
/**
|
|
@@ -135,7 +135,7 @@ export namespace RefSubject {
|
|
|
135
135
|
* @category models
|
|
136
136
|
*/
|
|
137
137
|
export interface Derived<R, E, A> extends RefSubject<R, E, A> {
|
|
138
|
-
readonly persist: Effect.Effect<
|
|
138
|
+
readonly persist: Effect.Effect<void, never, R>
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
/**
|
|
@@ -193,9 +193,9 @@ export interface RefSubjectOptions<A> {
|
|
|
193
193
|
* @since 1.20.0
|
|
194
194
|
*/
|
|
195
195
|
export function fromEffect<R, E, A>(
|
|
196
|
-
effect: Effect.Effect<
|
|
196
|
+
effect: Effect.Effect<A, E, R>,
|
|
197
197
|
options?: RefSubjectOptions<A>
|
|
198
|
-
): Effect.Effect<
|
|
198
|
+
): Effect.Effect<RefSubject<never, E, A>, never, R | Scope.Scope> {
|
|
199
199
|
return Effect.map(makeCore(effect, options), (core) => new RefSubjectImpl(core))
|
|
200
200
|
}
|
|
201
201
|
|
|
@@ -205,7 +205,7 @@ export function fromEffect<R, E, A>(
|
|
|
205
205
|
export function fromFx<R, E, A>(
|
|
206
206
|
fx: Fx<R, E, A>,
|
|
207
207
|
options?: RefSubjectOptions<A>
|
|
208
|
-
): Effect.Effect<
|
|
208
|
+
): Effect.Effect<RefSubject<never, E, A>, never, R | Scope.Scope> {
|
|
209
209
|
return DeferredRef.make<E, A>(getExitEquivalence(options?.eq ?? Equal.equals)).pipe(
|
|
210
210
|
Effect.bindTo("deferredRef"),
|
|
211
211
|
Effect.bind("core", ({ deferredRef }) => makeCore(deferredRef, options)),
|
|
@@ -231,7 +231,7 @@ export function fromFx<R, E, A>(
|
|
|
231
231
|
export function fromRefSubject<R, E, A>(
|
|
232
232
|
ref: RefSubject<R, E, A>,
|
|
233
233
|
options?: RefSubjectOptions<A>
|
|
234
|
-
): Effect.Effect<
|
|
234
|
+
): Effect.Effect<RefSubject.Derived<never, E, A>, never, R | Scope.Scope> {
|
|
235
235
|
return DeferredRef.make<E, A>(getExitEquivalence(options?.eq ?? Equal.equals)).pipe(
|
|
236
236
|
Effect.bindTo("deferredRef"),
|
|
237
237
|
Effect.bind("core", ({ deferredRef }) => makeCore<R, E, A>(deferredRef, options)),
|
|
@@ -265,21 +265,21 @@ export const make: {
|
|
|
265
265
|
<R, E, A>(
|
|
266
266
|
ref: RefSubject<R, E, A>,
|
|
267
267
|
options?: RefSubjectOptions<A>
|
|
268
|
-
): Effect.Effect<
|
|
268
|
+
): Effect.Effect<RefSubject.Derived<never, E, A>, never, R | Scope.Scope>
|
|
269
269
|
|
|
270
270
|
<R, E, A>(
|
|
271
|
-
fxOrEffect: Fx<R, E, A> | Effect.Effect<
|
|
271
|
+
fxOrEffect: Fx<R, E, A> | Effect.Effect<A, E, R>,
|
|
272
272
|
options?: RefSubjectOptions<A>
|
|
273
|
-
): Effect.Effect<
|
|
273
|
+
): Effect.Effect<RefSubject<never, E, A>, never, R | Scope.Scope>
|
|
274
274
|
|
|
275
275
|
<R, E, A>(
|
|
276
|
-
fxOrEffect: Fx<R, E, A> | Effect.Effect<
|
|
276
|
+
fxOrEffect: Fx<R, E, A> | Effect.Effect<A, E, R> | RefSubject<R, E, A>,
|
|
277
277
|
options?: RefSubjectOptions<A>
|
|
278
|
-
): Effect.Effect<
|
|
278
|
+
): Effect.Effect<RefSubject<never, E, A> | RefSubject.Derived<never, E, A>, never, R | Scope.Scope>
|
|
279
279
|
} = function make<R, E, A>(
|
|
280
|
-
fxOrEffect: Fx<R, E, A> | Effect.Effect<
|
|
280
|
+
fxOrEffect: Fx<R, E, A> | Effect.Effect<A, E, R> | RefSubject<R, E, A>,
|
|
281
281
|
options?: RefSubjectOptions<A>
|
|
282
|
-
): Effect.Effect<R | Scope.Scope
|
|
282
|
+
): Effect.Effect<any, never, R | Scope.Scope> {
|
|
283
283
|
if (RefSubjectTypeId in fxOrEffect) return fromRefSubject(fxOrEffect as RefSubject<R, E, A>, options)
|
|
284
284
|
else if (TypeId in fxOrEffect) return fromFx(fxOrEffect, options)
|
|
285
285
|
else return fromEffect(fxOrEffect, options)
|
|
@@ -291,7 +291,7 @@ export const make: {
|
|
|
291
291
|
export function of<A, E = never>(
|
|
292
292
|
a: A,
|
|
293
293
|
options?: RefSubjectOptions<A>
|
|
294
|
-
): Effect.Effect<
|
|
294
|
+
): Effect.Effect<RefSubject<never, E, A>, never, Scope.Scope> {
|
|
295
295
|
return Effect.acquireRelease(
|
|
296
296
|
withScopeAndFiberId(
|
|
297
297
|
(scope, id) =>
|
|
@@ -309,7 +309,7 @@ export function of<A, E = never>(
|
|
|
309
309
|
}
|
|
310
310
|
|
|
311
311
|
const withScopeAndFiberId = <R, E, A>(
|
|
312
|
-
f: (scope: Scope.CloseableScope, id: FiberId.FiberId) => Effect.Effect<
|
|
312
|
+
f: (scope: Scope.CloseableScope, id: FiberId.FiberId) => Effect.Effect<A, E, R>,
|
|
313
313
|
strategy: ExecutionStrategy.ExecutionStrategy
|
|
314
314
|
) => Effect.fiberIdWith((id) => withScope((scope) => f(scope, id), strategy))
|
|
315
315
|
|
|
@@ -321,12 +321,12 @@ const emptyContext = C.empty()
|
|
|
321
321
|
export function unsafeMake<E, A>(
|
|
322
322
|
params: {
|
|
323
323
|
readonly id: FiberId.FiberId
|
|
324
|
-
readonly initial: Effect.Effect<
|
|
324
|
+
readonly initial: Effect.Effect<A, E>
|
|
325
325
|
readonly options?: RefSubjectOptions<A> | undefined
|
|
326
326
|
readonly scope: Scope.CloseableScope
|
|
327
327
|
readonly initialValue?: A
|
|
328
328
|
}
|
|
329
|
-
): Effect.Effect<
|
|
329
|
+
): Effect.Effect<RefSubject<never, E, A>> {
|
|
330
330
|
const { id, initial, options, scope } = params
|
|
331
331
|
return Effect.suspend(() => {
|
|
332
332
|
const core = unsafeMakeCore(initial, id, emptyContext, scope, options)
|
|
@@ -348,9 +348,9 @@ class RefSubjectImpl<R, E, A, R2> extends FxEffectBase<Exclude<R, R2> | Scope.Sc
|
|
|
348
348
|
readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
|
|
349
349
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
350
350
|
|
|
351
|
-
readonly version: Effect.Effect<
|
|
352
|
-
readonly interrupt: Effect.Effect<Exclude<R, R2
|
|
353
|
-
readonly subscriberCount: Effect.Effect<Exclude<R, R2
|
|
351
|
+
readonly version: Effect.Effect<number>
|
|
352
|
+
readonly interrupt: Effect.Effect<void, never, Exclude<R, R2>>
|
|
353
|
+
readonly subscriberCount: Effect.Effect<number, never, Exclude<R, R2>>
|
|
354
354
|
|
|
355
355
|
private readonly getSetDelete: GetSetDelete<Exclude<R, R2>, E, A>
|
|
356
356
|
|
|
@@ -369,7 +369,7 @@ class RefSubjectImpl<R, E, A, R2> extends FxEffectBase<Exclude<R, R2> | Scope.Sc
|
|
|
369
369
|
this.onFailure = this.onFailure.bind(this)
|
|
370
370
|
}
|
|
371
371
|
|
|
372
|
-
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<Exclude<R, R2> | R3 | Scope.Scope
|
|
372
|
+
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<unknown, never, Exclude<R, R2> | R3 | Scope.Scope> {
|
|
373
373
|
return Effect.matchCauseEffect(getOrInitializeCore(this.core, true), {
|
|
374
374
|
onFailure: (cause) => sink.onFailure(cause),
|
|
375
375
|
onSuccess: () => Effect.provide(this.core.subject.run(sink), this.core.context)
|
|
@@ -377,20 +377,20 @@ class RefSubjectImpl<R, E, A, R2> extends FxEffectBase<Exclude<R, R2> | Scope.Sc
|
|
|
377
377
|
}
|
|
378
378
|
|
|
379
379
|
runUpdates<R3, E3, B>(
|
|
380
|
-
run: (ref: GetSetDelete<Exclude<R, R2>, E, A>) => Effect.Effect<
|
|
380
|
+
run: (ref: GetSetDelete<Exclude<R, R2>, E, A>) => Effect.Effect<B, E3, R3>
|
|
381
381
|
) {
|
|
382
382
|
return this.core.semaphore.withPermits(1)(run(this.getSetDelete))
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
-
onSuccess(value: A): Effect.Effect<Exclude<R, R2
|
|
385
|
+
onSuccess(value: A): Effect.Effect<unknown, never, Exclude<R, R2>> {
|
|
386
386
|
return setCore(this.core, value)
|
|
387
387
|
}
|
|
388
388
|
|
|
389
|
-
onFailure(cause: Cause.Cause<E>): Effect.Effect<Exclude<R, R2
|
|
389
|
+
onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, Exclude<R, R2>> {
|
|
390
390
|
return onFailureCore(this.core, cause)
|
|
391
391
|
}
|
|
392
392
|
|
|
393
|
-
toEffect(): Effect.Effect<Exclude<R, R2
|
|
393
|
+
toEffect(): Effect.Effect<A, E, Exclude<R, R2>> {
|
|
394
394
|
return getOrInitializeCore(this.core, true)
|
|
395
395
|
}
|
|
396
396
|
}
|
|
@@ -398,7 +398,7 @@ class RefSubjectImpl<R, E, A, R2> extends FxEffectBase<Exclude<R, R2> | Scope.Sc
|
|
|
398
398
|
class DerivedImpl<R, E, A, R2> extends RefSubjectImpl<R, E, A, R2> implements RefSubject.Derived<Exclude<R, R2>, E, A> {
|
|
399
399
|
constructor(
|
|
400
400
|
core: RefSubjectCore<R, E, A, R2>,
|
|
401
|
-
readonly persist: Effect.Effect<Exclude<R, R2
|
|
401
|
+
readonly persist: Effect.Effect<void, never, Exclude<R, R2>>
|
|
402
402
|
) {
|
|
403
403
|
super(core)
|
|
404
404
|
}
|
|
@@ -408,16 +408,16 @@ class DerivedImpl<R, E, A, R2> extends RefSubjectImpl<R, E, A, R2> implements Re
|
|
|
408
408
|
* @since 1.20.0
|
|
409
409
|
*/
|
|
410
410
|
export const set: {
|
|
411
|
-
<A>(value: A): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<
|
|
412
|
-
<R, E, A>(ref: RefSubject<R, E, A>, a: A): Effect.Effect<
|
|
413
|
-
} = dual(2, function set<R, E, A>(ref: RefSubject<R, E, A>, a: A): Effect.Effect<
|
|
411
|
+
<A>(value: A): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<A, E, R>
|
|
412
|
+
<R, E, A>(ref: RefSubject<R, E, A>, a: A): Effect.Effect<A, E, R>
|
|
413
|
+
} = dual(2, function set<R, E, A>(ref: RefSubject<R, E, A>, a: A): Effect.Effect<A, E, R> {
|
|
414
414
|
return ref.runUpdates((ref) => ref.set(a))
|
|
415
415
|
})
|
|
416
416
|
|
|
417
417
|
/**
|
|
418
418
|
* @since 1.20.0
|
|
419
419
|
*/
|
|
420
|
-
export function reset<R, E, A>(ref: RefSubject<R, E, A>): Effect.Effect<
|
|
420
|
+
export function reset<R, E, A>(ref: RefSubject<R, E, A>): Effect.Effect<Option.Option<A>, E, R> {
|
|
421
421
|
return ref.runUpdates((ref) => ref.delete)
|
|
422
422
|
}
|
|
423
423
|
|
|
@@ -438,15 +438,15 @@ export interface GetSetDelete<R, E, A> {
|
|
|
438
438
|
/**
|
|
439
439
|
* @since 1.20.0
|
|
440
440
|
*/
|
|
441
|
-
readonly get: Effect.Effect<
|
|
441
|
+
readonly get: Effect.Effect<A, E, R>
|
|
442
442
|
/**
|
|
443
443
|
* @since 1.20.0
|
|
444
444
|
*/
|
|
445
|
-
readonly set: (a: A) => Effect.Effect<
|
|
445
|
+
readonly set: (a: A) => Effect.Effect<A, never, R>
|
|
446
446
|
/**
|
|
447
447
|
* @since 1.20.0
|
|
448
448
|
*/
|
|
449
|
-
readonly delete: Effect.Effect<
|
|
449
|
+
readonly delete: Effect.Effect<Option.Option<A>, E, R>
|
|
450
450
|
}
|
|
451
451
|
|
|
452
452
|
function getSetDelete<R, E, A, R2>(ref: RefSubjectCore<R, E, A, R2>): GetSetDelete<Exclude<R, R2>, E, A> {
|
|
@@ -462,15 +462,15 @@ function getSetDelete<R, E, A, R2>(ref: RefSubjectCore<R, E, A, R2>): GetSetDele
|
|
|
462
462
|
*/
|
|
463
463
|
export const updateEffect: {
|
|
464
464
|
<A, R2, E2>(
|
|
465
|
-
f: (value: A) => Effect.Effect<
|
|
466
|
-
): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<
|
|
465
|
+
f: (value: A) => Effect.Effect<A, E2, R2>
|
|
466
|
+
): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<A, E | E2, R | R2>
|
|
467
467
|
<R, E, A, R2, E2>(
|
|
468
468
|
ref: RefSubject<R, E, A>,
|
|
469
|
-
f: (value: A) => Effect.Effect<
|
|
470
|
-
): Effect.Effect<
|
|
469
|
+
f: (value: A) => Effect.Effect<A, E2, R2>
|
|
470
|
+
): Effect.Effect<A, E | E2, R | R2>
|
|
471
471
|
} = dual(2, function updateEffect<R, E, A, R2, E2>(
|
|
472
472
|
ref: RefSubject<R, E, A>,
|
|
473
|
-
f: (value: A) => Effect.Effect<
|
|
473
|
+
f: (value: A) => Effect.Effect<A, E2, R2>
|
|
474
474
|
) {
|
|
475
475
|
return ref.runUpdates((ref) => Effect.flatMap(Effect.flatMap(ref.get, f), ref.set))
|
|
476
476
|
})
|
|
@@ -479,8 +479,8 @@ export const updateEffect: {
|
|
|
479
479
|
* @since 1.20.0
|
|
480
480
|
*/
|
|
481
481
|
export const update: {
|
|
482
|
-
<A>(f: (value: A) => A): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<
|
|
483
|
-
<R, E, A>(ref: RefSubject<R, E, A>, f: (value: A) => A): Effect.Effect<
|
|
482
|
+
<A>(f: (value: A) => A): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<A, E, R>
|
|
483
|
+
<R, E, A>(ref: RefSubject<R, E, A>, f: (value: A) => A): Effect.Effect<A, E, R>
|
|
484
484
|
} = dual(2, function update<R, E, A>(ref: RefSubject<R, E, A>, f: (value: A) => A) {
|
|
485
485
|
return updateEffect(ref, (value) => Effect.succeed(f(value)))
|
|
486
486
|
})
|
|
@@ -490,15 +490,15 @@ export const update: {
|
|
|
490
490
|
*/
|
|
491
491
|
export const modifyEffect: {
|
|
492
492
|
<A, R2, E2, B>(
|
|
493
|
-
f: (value: A) => Effect.Effect<
|
|
494
|
-
): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<
|
|
493
|
+
f: (value: A) => Effect.Effect<readonly [B, A], E2, R2>
|
|
494
|
+
): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<B, E | E2, R | R2>
|
|
495
495
|
<R, E, A, R2, E2, B>(
|
|
496
496
|
ref: RefSubject<R, E, A>,
|
|
497
|
-
f: (value: A) => Effect.Effect<
|
|
498
|
-
): Effect.Effect<
|
|
497
|
+
f: (value: A) => Effect.Effect<readonly [B, A], E2, R2>
|
|
498
|
+
): Effect.Effect<B, E | E2, R | R2>
|
|
499
499
|
} = dual(2, function modifyEffect<R, E, A, R2, E2, B>(
|
|
500
500
|
ref: RefSubject<R, E, A>,
|
|
501
|
-
f: (value: A) => Effect.Effect<
|
|
501
|
+
f: (value: A) => Effect.Effect<readonly [B, A], E2, R2>
|
|
502
502
|
) {
|
|
503
503
|
return ref.runUpdates(
|
|
504
504
|
(ref) =>
|
|
@@ -513,8 +513,8 @@ export const modifyEffect: {
|
|
|
513
513
|
* @since 1.20.0
|
|
514
514
|
*/
|
|
515
515
|
export const modify: {
|
|
516
|
-
<A, B>(f: (value: A) => readonly [B, A]): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<
|
|
517
|
-
<R, E, A, B>(ref: RefSubject<R, E, A>, f: (value: A) => readonly [B, A]): Effect.Effect<
|
|
516
|
+
<A, B>(f: (value: A) => readonly [B, A]): <R, E>(ref: RefSubject<R, E, A>) => Effect.Effect<B, E, R>
|
|
517
|
+
<R, E, A, B>(ref: RefSubject<R, E, A>, f: (value: A) => readonly [B, A]): Effect.Effect<B, E, R>
|
|
518
518
|
} = dual(2, function modify<R, E, A, B>(ref: RefSubject<R, E, A>, f: (value: A) => readonly [B, A]) {
|
|
519
519
|
return modifyEffect(ref, (value) => Effect.succeed(f(value)))
|
|
520
520
|
})
|
|
@@ -526,26 +526,26 @@ const isRefSubjectDataFirst = (args: IArguments) => isRefSubject(args[0])
|
|
|
526
526
|
*/
|
|
527
527
|
export const runUpdates: {
|
|
528
528
|
<R, E, A, R2, E2, B, R3 = never, E3 = never, C = never>(
|
|
529
|
-
f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<
|
|
529
|
+
f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<B, E2, R2>,
|
|
530
530
|
options?:
|
|
531
|
-
| { readonly onInterrupt: (value: A) => Effect.Effect<
|
|
531
|
+
| { readonly onInterrupt: (value: A) => Effect.Effect<C, E3, R3>; readonly value?: "initial" | "current" }
|
|
532
532
|
| undefined
|
|
533
|
-
): (ref: RefSubject<R, E, A>) => Effect.Effect<
|
|
533
|
+
): (ref: RefSubject<R, E, A>) => Effect.Effect<B, E | E2 | E3, R | R2 | R3>
|
|
534
534
|
|
|
535
535
|
<R, E, A, R2, E2, B, R3 = never, E3 = never, C = never>(
|
|
536
536
|
ref: RefSubject<R, E, A>,
|
|
537
|
-
f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<
|
|
537
|
+
f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<B, E2, R2>,
|
|
538
538
|
options?:
|
|
539
|
-
| { readonly onInterrupt: (value: A) => Effect.Effect<
|
|
539
|
+
| { readonly onInterrupt: (value: A) => Effect.Effect<C, E3, R3>; readonly value?: "initial" | "current" }
|
|
540
540
|
| undefined
|
|
541
|
-
): Effect.Effect<
|
|
541
|
+
): Effect.Effect<B, E | E2 | E3, R | R2 | R3>
|
|
542
542
|
} = dual(
|
|
543
543
|
isRefSubjectDataFirst,
|
|
544
544
|
function runUpdates<R, E, A, R2, E2, B, R3 = never, E3 = never, C = never>(
|
|
545
545
|
ref: RefSubject<R, E, A>,
|
|
546
|
-
f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<
|
|
546
|
+
f: (ref: GetSetDelete<R, E, A>) => Effect.Effect<B, E2, R2>,
|
|
547
547
|
options?: {
|
|
548
|
-
readonly onInterrupt: (value: A) => Effect.Effect<
|
|
548
|
+
readonly onInterrupt: (value: A) => Effect.Effect<C, E3, R3>
|
|
549
549
|
readonly value?: "initial" | "current"
|
|
550
550
|
}
|
|
551
551
|
) {
|
|
@@ -587,7 +587,7 @@ export const runUpdates: {
|
|
|
587
587
|
|
|
588
588
|
class RefSubjectCore<R, E, A, R2> {
|
|
589
589
|
constructor(
|
|
590
|
-
readonly initial: Effect.Effect<
|
|
590
|
+
readonly initial: Effect.Effect<A, E, R>,
|
|
591
591
|
readonly subject: Subject.Subject<R, E, A>,
|
|
592
592
|
readonly context: C.Context<R2>,
|
|
593
593
|
readonly scope: Scope.CloseableScope,
|
|
@@ -595,11 +595,11 @@ class RefSubjectCore<R, E, A, R2> {
|
|
|
595
595
|
readonly semaphore: Effect.Semaphore
|
|
596
596
|
) {}
|
|
597
597
|
|
|
598
|
-
public _fiber: Fiber.Fiber<
|
|
598
|
+
public _fiber: Fiber.Fiber<A, E> | undefined = undefined
|
|
599
599
|
}
|
|
600
600
|
|
|
601
601
|
function makeCore<R, E, A>(
|
|
602
|
-
initial: Effect.Effect<
|
|
602
|
+
initial: Effect.Effect<A, E, R>,
|
|
603
603
|
options?: RefSubjectOptions<A>
|
|
604
604
|
) {
|
|
605
605
|
return Effect.context<R | Scope.Scope>().pipe(
|
|
@@ -629,7 +629,7 @@ function makeCore<R, E, A>(
|
|
|
629
629
|
}
|
|
630
630
|
|
|
631
631
|
function unsafeMakeCore<R, E, A>(
|
|
632
|
-
initial: Effect.Effect<
|
|
632
|
+
initial: Effect.Effect<A, E, R>,
|
|
633
633
|
id: FiberId.FiberId,
|
|
634
634
|
ctx: C.Context<R>,
|
|
635
635
|
scope: Scope.CloseableScope,
|
|
@@ -648,7 +648,7 @@ function unsafeMakeCore<R, E, A>(
|
|
|
648
648
|
function getOrInitializeCore<R, E, A, R2>(
|
|
649
649
|
core: RefSubjectCore<R, E, A, R2>,
|
|
650
650
|
lockInitialize: boolean
|
|
651
|
-
): Effect.Effect<Exclude<R, R2
|
|
651
|
+
): Effect.Effect<A, E, Exclude<R, R2>> {
|
|
652
652
|
return Effect.suspend(() => {
|
|
653
653
|
if (core._fiber === undefined && Option.isNone(core.deferredRef.current)) {
|
|
654
654
|
return initializeCoreAndTap(core, lockInitialize)
|
|
@@ -661,7 +661,7 @@ function getOrInitializeCore<R, E, A, R2>(
|
|
|
661
661
|
function initializeCoreEffect<R, E, A, R2>(
|
|
662
662
|
core: RefSubjectCore<R, E, A, R2>,
|
|
663
663
|
lock: boolean
|
|
664
|
-
): Effect.Effect<
|
|
664
|
+
): Effect.Effect<Fiber.Fiber<A, E>, never, Exclude<R, R2>> {
|
|
665
665
|
const initialize = Effect.onExit(
|
|
666
666
|
Effect.provide(core.initial, core.context),
|
|
667
667
|
(exit) =>
|
|
@@ -683,8 +683,8 @@ function initializeCoreEffect<R, E, A, R2>(
|
|
|
683
683
|
function initializeCore<R, E, A, R2>(
|
|
684
684
|
core: RefSubjectCore<R, E, A, R2>,
|
|
685
685
|
lock: boolean
|
|
686
|
-
): Effect.Effect<
|
|
687
|
-
type Z = Effect.Effect<
|
|
686
|
+
): Effect.Effect<Fiber.Fiber<A, E>, never, Exclude<R, R2>> {
|
|
687
|
+
type Z = Effect.Effect<Fiber.Fiber<A, E>, never, Exclude<R, R2>>
|
|
688
688
|
|
|
689
689
|
const onSuccess = (a: A): Z => {
|
|
690
690
|
core.deferredRef.done(Exit.succeed(a))
|
|
@@ -713,14 +713,14 @@ function initializeCore<R, E, A, R2>(
|
|
|
713
713
|
function initializeCoreAndTap<R, E, A, R2>(
|
|
714
714
|
core: RefSubjectCore<R, E, A, R2>,
|
|
715
715
|
lock: boolean
|
|
716
|
-
): Effect.Effect<Exclude<R, R2
|
|
716
|
+
): Effect.Effect<A, E, Exclude<R, R2>> {
|
|
717
717
|
return Effect.zipRight(
|
|
718
718
|
initializeCore(core, lock),
|
|
719
719
|
tapEventCore(core, core.deferredRef)
|
|
720
720
|
)
|
|
721
721
|
}
|
|
722
722
|
|
|
723
|
-
function setCore<R, E, A, R2>(core: RefSubjectCore<R, E, A, R2>, a: A): Effect.Effect<Exclude<R, R2
|
|
723
|
+
function setCore<R, E, A, R2>(core: RefSubjectCore<R, E, A, R2>, a: A): Effect.Effect<A, never, Exclude<R, R2>> {
|
|
724
724
|
const exit = Exit.succeed(a)
|
|
725
725
|
|
|
726
726
|
return Effect.suspend(() => {
|
|
@@ -746,7 +746,7 @@ function onFailureCore<R, E, A, R2>(core: RefSubjectCore<R, E, A, R2>, cause: Ca
|
|
|
746
746
|
})
|
|
747
747
|
}
|
|
748
748
|
|
|
749
|
-
function interruptCore<R, E, A, R2>(core: RefSubjectCore<R, E, A, R2>): Effect.Effect<
|
|
749
|
+
function interruptCore<R, E, A, R2>(core: RefSubjectCore<R, E, A, R2>): Effect.Effect<void, never, R> {
|
|
750
750
|
return Effect.fiberIdWith((id) => {
|
|
751
751
|
core.deferredRef.reset()
|
|
752
752
|
|
|
@@ -760,7 +760,7 @@ function interruptCore<R, E, A, R2>(core: RefSubjectCore<R, E, A, R2>): Effect.E
|
|
|
760
760
|
|
|
761
761
|
function deleteCore<R, E, A, R2>(
|
|
762
762
|
core: RefSubjectCore<R, E, A, R2>
|
|
763
|
-
): Effect.Effect<
|
|
763
|
+
): Effect.Effect<Option.Option<A>, E, Exclude<R, R2>> {
|
|
764
764
|
return Effect.suspend(() => {
|
|
765
765
|
const current = core.deferredRef.current
|
|
766
766
|
core.deferredRef.reset()
|
|
@@ -781,7 +781,7 @@ function deleteCore<R, E, A, R2>(
|
|
|
781
781
|
|
|
782
782
|
function tapEventCore<R, E, A, R2, R3>(
|
|
783
783
|
core: RefSubjectCore<R, E, A, R2>,
|
|
784
|
-
effect: Effect.Effect<
|
|
784
|
+
effect: Effect.Effect<A, E, R3>
|
|
785
785
|
) {
|
|
786
786
|
return effect.pipe(
|
|
787
787
|
Effect.exit,
|
|
@@ -792,8 +792,8 @@ function tapEventCore<R, E, A, R2, R3>(
|
|
|
792
792
|
|
|
793
793
|
function sendEvent<R, E, A, R2>(
|
|
794
794
|
core: RefSubjectCore<R, E, A, R2>,
|
|
795
|
-
exit: Exit.Exit<
|
|
796
|
-
): Effect.Effect<Exclude<R, R2
|
|
795
|
+
exit: Exit.Exit<A, E>
|
|
796
|
+
): Effect.Effect<unknown, never, Exclude<R, R2>> {
|
|
797
797
|
if (Exit.isSuccess(exit)) {
|
|
798
798
|
return Effect.provide(core.subject.onSuccess(exit.value), core.context)
|
|
799
799
|
} else {
|
|
@@ -806,33 +806,33 @@ function sendEvent<R, E, A, R2>(
|
|
|
806
806
|
*/
|
|
807
807
|
export const mapEffect: {
|
|
808
808
|
<A, R2, E2, B>(
|
|
809
|
-
f: (a: A) => Effect.Effect<
|
|
809
|
+
f: (a: A) => Effect.Effect<B, E2, R2>
|
|
810
810
|
): {
|
|
811
811
|
<R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Computed<R | R2, E | E2, B>
|
|
812
812
|
<R, E>(ref: Filtered<R, E, A>): Filtered<R | R2, E | E2, B>
|
|
813
813
|
<R0, E0, R, E, R2, E2, C>(
|
|
814
814
|
versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
815
|
-
f: (a: A) => Effect.Effect<
|
|
815
|
+
f: (a: A) => Effect.Effect<C, E2, R2>
|
|
816
816
|
): Computed<R0 | R2, E0 | E | E2, C>
|
|
817
817
|
}
|
|
818
818
|
|
|
819
819
|
<R, E, A, R2, E2, B>(
|
|
820
820
|
ref: RefSubject<R, E, A> | Computed<R, E, A>,
|
|
821
|
-
f: (a: A) => Effect.Effect<
|
|
821
|
+
f: (a: A) => Effect.Effect<B, E2, R2>
|
|
822
822
|
): Computed<R | R2, E | E2, B>
|
|
823
823
|
|
|
824
824
|
<R, E, A, R2, E2, B>(
|
|
825
825
|
ref: Filtered<R, E, A>,
|
|
826
|
-
f: (a: A) => Effect.Effect<
|
|
826
|
+
f: (a: A) => Effect.Effect<B, E2, R2>
|
|
827
827
|
): Filtered<R | R2, E | E2, B>
|
|
828
828
|
|
|
829
829
|
<R0, E0, R, E, A, R2, E2, R3, E3, C>(
|
|
830
830
|
versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
831
|
-
f: (a: A) => Effect.Effect<
|
|
831
|
+
f: (a: A) => Effect.Effect<C, E3, R3>
|
|
832
832
|
): Computed<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, C>
|
|
833
833
|
} = dual(2, function mapEffect<R0, E0, R, E, A, R2, E2, R3, E3, C>(
|
|
834
834
|
versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
835
|
-
f: (a: A) => Effect.Effect<
|
|
835
|
+
f: (a: A) => Effect.Effect<C, E3, R3>
|
|
836
836
|
):
|
|
837
837
|
| Computed<R0 | Exclude<R, Scope.Scope> | R2 | R3 | R2 | R3, E0 | E | E2 | E3, C>
|
|
838
838
|
| Filtered<R0 | Exclude<R, Scope.Scope> | R2 | R3 | R2 | R3, E0 | E | E2 | E3, C>
|
|
@@ -882,27 +882,27 @@ export const map: {
|
|
|
882
882
|
*/
|
|
883
883
|
export const filterMapEffect: {
|
|
884
884
|
<A, R2, E2, B>(
|
|
885
|
-
f: (a: A) => Effect.Effect<
|
|
885
|
+
f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>
|
|
886
886
|
): {
|
|
887
887
|
<R, E>(ref: RefSubject<R, E, A> | Computed<R, E, A>): Filtered<R | R2, E | E2, B>
|
|
888
888
|
<R, E>(ref: Filtered<R, E, A>): Filtered<R | R2, E | E2, B>
|
|
889
889
|
<R0, E0, R, E, R2, E2, B>(
|
|
890
890
|
versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
891
|
-
f: (a: A) => Effect.Effect<
|
|
891
|
+
f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>
|
|
892
892
|
): Filtered<R0 | R2, E0 | E | E2, B>
|
|
893
893
|
}
|
|
894
894
|
|
|
895
895
|
<R, E, A, R2, E2, B>(
|
|
896
896
|
ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>,
|
|
897
|
-
f: (a: A) => Effect.Effect<
|
|
897
|
+
f: (a: A) => Effect.Effect<Option.Option<B>, E2, R2>
|
|
898
898
|
): Filtered<R | R2, E | E2, B>
|
|
899
899
|
<R0, E0, R, E, A, R2, E2, B, R3, E3>(
|
|
900
900
|
versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
901
|
-
f: (a: A) => Effect.Effect<
|
|
901
|
+
f: (a: A) => Effect.Effect<Option.Option<B>, E3, R3>
|
|
902
902
|
): Filtered<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, B>
|
|
903
903
|
} = dual(2, function filterMapEffect<R0, E0, R, E, A, R2, E2, B, R3, E3>(
|
|
904
904
|
versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
905
|
-
f: (a: A) => Effect.Effect<
|
|
905
|
+
f: (a: A) => Effect.Effect<Option.Option<B>, E3, R3>
|
|
906
906
|
): Filtered<R0 | Exclude<R, Scope.Scope> | R2 | R3 | R2 | R3, E0 | E | E2 | E3, B> {
|
|
907
907
|
return FilteredImpl.make(versioned, f)
|
|
908
908
|
})
|
|
@@ -960,15 +960,15 @@ export const compact: {
|
|
|
960
960
|
export const filterEffect: {
|
|
961
961
|
<R, E, A, R2, E2>(
|
|
962
962
|
ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>,
|
|
963
|
-
f: (a: A) => Effect.Effect<
|
|
963
|
+
f: (a: A) => Effect.Effect<boolean, E2, R2>
|
|
964
964
|
): Filtered<R | R2, E | E2, A>
|
|
965
965
|
<R0, E0, R, E, A, R2, E2, R3, E3>(
|
|
966
966
|
versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
967
|
-
f: (a: A) => Effect.Effect<
|
|
967
|
+
f: (a: A) => Effect.Effect<boolean, E3, R3>
|
|
968
968
|
): Filtered<R0 | R2 | R3 | Exclude<R, Scope.Scope>, E0 | E | E2 | E3, A>
|
|
969
969
|
} = dual(2, function filterEffect<R0, E0, R, E, A, R2, E2, R3, E3>(
|
|
970
970
|
versioned: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
971
|
-
f: (a: A) => Effect.Effect<
|
|
971
|
+
f: (a: A) => Effect.Effect<boolean, E3, R3>
|
|
972
972
|
): Filtered<R0 | Exclude<R, Scope.Scope> | R2 | R3 | R2 | R3, E0 | E | E2 | E3, A> {
|
|
973
973
|
return FilteredImpl.make(versioned, (a) => Effect.map(f(a), (b) => b ? Option.some(a) : Option.none()))
|
|
974
974
|
})
|
|
@@ -1017,7 +1017,7 @@ class ComputedImpl<R0, E0, R, E, A, R2, E2, R3, E3, C> extends Versioned.Version
|
|
|
1017
1017
|
|
|
1018
1018
|
constructor(
|
|
1019
1019
|
readonly input: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
1020
|
-
readonly f: (a: A) => Effect.Effect<
|
|
1020
|
+
readonly f: (a: A) => Effect.Effect<C, E3, R3>
|
|
1021
1021
|
) {
|
|
1022
1022
|
super(
|
|
1023
1023
|
input,
|
|
@@ -1028,7 +1028,7 @@ class ComputedImpl<R0, E0, R, E, A, R2, E2, R3, E3, C> extends Versioned.Version
|
|
|
1028
1028
|
|
|
1029
1029
|
static make<R0, E0, R, E, A, R2, E2, R3, E3, C>(
|
|
1030
1030
|
input: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
1031
|
-
f: (a: A) => Effect.Effect<
|
|
1031
|
+
f: (a: A) => Effect.Effect<C, E3, R3>
|
|
1032
1032
|
): Computed<R0 | Exclude<R, Scope.Scope> | R2 | R3 | R2 | R3, E0 | E | E2 | E3, C> {
|
|
1033
1033
|
return new ComputedImpl(input, f)
|
|
1034
1034
|
}
|
|
@@ -1054,7 +1054,7 @@ class FilteredImpl<R0, E0, R, E, A, R2, E2, R3, E3, C> extends Versioned.Version
|
|
|
1054
1054
|
|
|
1055
1055
|
constructor(
|
|
1056
1056
|
readonly input: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
1057
|
-
readonly f: (a: A) => Effect.Effect<
|
|
1057
|
+
readonly f: (a: A) => Effect.Effect<Option.Option<C>, E3, R3>
|
|
1058
1058
|
) {
|
|
1059
1059
|
super(
|
|
1060
1060
|
input,
|
|
@@ -1065,7 +1065,7 @@ class FilteredImpl<R0, E0, R, E, A, R2, E2, R3, E3, C> extends Versioned.Version
|
|
|
1065
1065
|
|
|
1066
1066
|
static make<R0, E0, R, E, A, R2, E2, R3, E3, C>(
|
|
1067
1067
|
input: Versioned.Versioned<R0, E0, R, E, A, R2, E2, A>,
|
|
1068
|
-
f: (a: A) => Effect.Effect<
|
|
1068
|
+
f: (a: A) => Effect.Effect<Option.Option<C>, E3, R3>
|
|
1069
1069
|
): Filtered<
|
|
1070
1070
|
R0 | Exclude<R, Scope.Scope> | R2 | R3 | R2 | R3,
|
|
1071
1071
|
E0 | E | Exclude<E2, Cause.NoSuchElementException> | E3,
|
|
@@ -1151,8 +1151,8 @@ export function transform<R, E, A, B>(
|
|
|
1151
1151
|
*/
|
|
1152
1152
|
export function transformOrFail<R, E, R2, E2, A, R3, E3, B>(
|
|
1153
1153
|
ref: RefSubject<R, E, A>,
|
|
1154
|
-
from: (a: A) => Effect.Effect<
|
|
1155
|
-
to: (b: B) => Effect.Effect<
|
|
1154
|
+
from: (a: A) => Effect.Effect<B, E2, R2>,
|
|
1155
|
+
to: (b: B) => Effect.Effect<A, E3, R3>
|
|
1156
1156
|
): RefSubject<R | R2 | R3, E | E2 | E3, B> {
|
|
1157
1157
|
return new RefSubjectTransformEffect(ref, from, to)
|
|
1158
1158
|
}
|
|
@@ -1163,9 +1163,9 @@ class RefSubjectTransform<R, E, A, B> extends FxEffectBase<R | Scope.Scope, E, B
|
|
|
1163
1163
|
readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
|
|
1164
1164
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
1165
1165
|
|
|
1166
|
-
readonly version: Effect.Effect<
|
|
1167
|
-
readonly interrupt: Effect.Effect<
|
|
1168
|
-
readonly subscriberCount: Effect.Effect<
|
|
1166
|
+
readonly version: Effect.Effect<number, E, R>
|
|
1167
|
+
readonly interrupt: Effect.Effect<void, never, R>
|
|
1168
|
+
readonly subscriberCount: Effect.Effect<number, never, R>
|
|
1169
1169
|
|
|
1170
1170
|
constructor(
|
|
1171
1171
|
readonly ref: RefSubject<R, E, A>,
|
|
@@ -1179,12 +1179,12 @@ class RefSubjectTransform<R, E, A, B> extends FxEffectBase<R | Scope.Scope, E, B
|
|
|
1179
1179
|
this.subscriberCount = ref.subscriberCount
|
|
1180
1180
|
}
|
|
1181
1181
|
|
|
1182
|
-
run<R2 = never>(sink: Sink.Sink<R2, E, B>): Effect.Effect<R | Scope.Scope | R2
|
|
1182
|
+
run<R2 = never>(sink: Sink.Sink<R2, E, B>): Effect.Effect<unknown, never, R | Scope.Scope | R2> {
|
|
1183
1183
|
return this.ref.run(Sink.map(sink, this.from))
|
|
1184
1184
|
}
|
|
1185
1185
|
|
|
1186
1186
|
runUpdates<R2, E2, C>(
|
|
1187
|
-
run: (ref: GetSetDelete<R, E, B>) => Effect.Effect<
|
|
1187
|
+
run: (ref: GetSetDelete<R, E, B>) => Effect.Effect<C, E2, R2>
|
|
1188
1188
|
) {
|
|
1189
1189
|
return this.ref.runUpdates((ref) =>
|
|
1190
1190
|
run({
|
|
@@ -1195,15 +1195,15 @@ class RefSubjectTransform<R, E, A, B> extends FxEffectBase<R | Scope.Scope, E, B
|
|
|
1195
1195
|
)
|
|
1196
1196
|
}
|
|
1197
1197
|
|
|
1198
|
-
onFailure(cause: Cause.Cause<E>): Effect.Effect<
|
|
1198
|
+
onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
|
|
1199
1199
|
return this.ref.onFailure(cause)
|
|
1200
1200
|
}
|
|
1201
1201
|
|
|
1202
|
-
onSuccess(value: B): Effect.Effect<
|
|
1202
|
+
onSuccess(value: B): Effect.Effect<unknown, never, R> {
|
|
1203
1203
|
return this.ref.onSuccess(this.to(value))
|
|
1204
1204
|
}
|
|
1205
1205
|
|
|
1206
|
-
toEffect(): Effect.Effect<
|
|
1206
|
+
toEffect(): Effect.Effect<B, E, R> {
|
|
1207
1207
|
return Effect.map(this.ref, this.from)
|
|
1208
1208
|
}
|
|
1209
1209
|
}
|
|
@@ -1215,15 +1215,15 @@ class RefSubjectTransformEffect<R, E, A, R2, E2, B, R3, E3>
|
|
|
1215
1215
|
readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
|
|
1216
1216
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
1217
1217
|
|
|
1218
|
-
readonly version: Effect.Effect<
|
|
1219
|
-
readonly interrupt: Effect.Effect<
|
|
1220
|
-
readonly subscriberCount: Effect.Effect<
|
|
1218
|
+
readonly version: Effect.Effect<number, E, R>
|
|
1219
|
+
readonly interrupt: Effect.Effect<void, never, R>
|
|
1220
|
+
readonly subscriberCount: Effect.Effect<number, never, R>
|
|
1221
1221
|
readonly subject: Subject.Subject<never, E | E2 | E3, B>
|
|
1222
1222
|
|
|
1223
1223
|
constructor(
|
|
1224
1224
|
readonly ref: RefSubject<R, E, A>,
|
|
1225
|
-
readonly from: (a: A) => Effect.Effect<
|
|
1226
|
-
readonly to: (b: B) => Effect.Effect<
|
|
1225
|
+
readonly from: (a: A) => Effect.Effect<B, E2, R2>,
|
|
1226
|
+
readonly to: (b: B) => Effect.Effect<A, E3, R3>
|
|
1227
1227
|
) {
|
|
1228
1228
|
super()
|
|
1229
1229
|
|
|
@@ -1233,12 +1233,12 @@ class RefSubjectTransformEffect<R, E, A, R2, E2, B, R3, E3>
|
|
|
1233
1233
|
this.subject = Subject.unsafeMake()
|
|
1234
1234
|
}
|
|
1235
1235
|
|
|
1236
|
-
run<R4 = never>(sink: Sink.Sink<R4, E | E2 | E3, B>): Effect.Effect<R | R2 | R3 | Scope.Scope | R4
|
|
1236
|
+
run<R4 = never>(sink: Sink.Sink<R4, E | E2 | E3, B>): Effect.Effect<unknown, never, R | R2 | R3 | Scope.Scope | R4> {
|
|
1237
1237
|
return core.merge(core.mapEffect(this.ref, this.from), this.subject).run(sink)
|
|
1238
1238
|
}
|
|
1239
1239
|
|
|
1240
1240
|
runUpdates<R4, E4, C>(
|
|
1241
|
-
run: (ref: GetSetDelete<R | R2 | R3, E | E2 | E3, B>) => Effect.Effect<
|
|
1241
|
+
run: (ref: GetSetDelete<R | R2 | R3, E | E2 | E3, B>) => Effect.Effect<C, E4, R4>
|
|
1242
1242
|
) {
|
|
1243
1243
|
return this.ref.runUpdates((ref) =>
|
|
1244
1244
|
run({
|
|
@@ -1259,18 +1259,18 @@ class RefSubjectTransformEffect<R, E, A, R2, E2, B, R3, E3>
|
|
|
1259
1259
|
)
|
|
1260
1260
|
}
|
|
1261
1261
|
|
|
1262
|
-
onFailure(cause: Cause.Cause<E | E2 | E3>): Effect.Effect<
|
|
1262
|
+
onFailure(cause: Cause.Cause<E | E2 | E3>): Effect.Effect<unknown, never, R> {
|
|
1263
1263
|
return this.subject.onFailure(cause)
|
|
1264
1264
|
}
|
|
1265
1265
|
|
|
1266
|
-
onSuccess(value: B): Effect.Effect<R | R3
|
|
1266
|
+
onSuccess(value: B): Effect.Effect<unknown, never, R | R3> {
|
|
1267
1267
|
return Effect.matchCauseEffect(this.to(value), {
|
|
1268
1268
|
onFailure: (cause) => this.subject.onFailure(cause),
|
|
1269
1269
|
onSuccess: (a) => this.ref.onSuccess(a)
|
|
1270
1270
|
})
|
|
1271
1271
|
}
|
|
1272
1272
|
|
|
1273
|
-
toEffect(): Effect.Effect<
|
|
1273
|
+
toEffect(): Effect.Effect<B, E | E2, R | R2> {
|
|
1274
1274
|
return Effect.flatMap(this.ref, this.from)
|
|
1275
1275
|
}
|
|
1276
1276
|
}
|
|
@@ -1406,9 +1406,9 @@ class RefSubjectTuple<
|
|
|
1406
1406
|
readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
|
|
1407
1407
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
1408
1408
|
|
|
1409
|
-
readonly version: Effect.Effect<Effect.Effect.
|
|
1410
|
-
readonly interrupt: Effect.Effect<Effect.Effect.Context<Refs[number]
|
|
1411
|
-
readonly subscriberCount: Effect.Effect<Effect.Effect.Context<Refs[number]
|
|
1409
|
+
readonly version: Effect.Effect<number, Effect.Effect.Error<Refs[number]>, Effect.Effect.Context<Refs[number]>>
|
|
1410
|
+
readonly interrupt: Effect.Effect<void, never, Effect.Effect.Context<Refs[number]>>
|
|
1411
|
+
readonly subscriberCount: Effect.Effect<number, never, Effect.Effect.Context<Refs[number]>>
|
|
1412
1412
|
|
|
1413
1413
|
private versioned: Versioned.Versioned<
|
|
1414
1414
|
Effect.Effect.Context<Refs[number]>,
|
|
@@ -1459,14 +1459,14 @@ class RefSubjectTuple<
|
|
|
1459
1459
|
readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>
|
|
1460
1460
|
}
|
|
1461
1461
|
>
|
|
1462
|
-
): Effect.Effect<Effect.Effect.Context<Refs[number]> | R2
|
|
1462
|
+
): Effect.Effect<unknown, never, Effect.Effect.Context<Refs[number]> | R2> {
|
|
1463
1463
|
return this.versioned.run(sink)
|
|
1464
1464
|
}
|
|
1465
1465
|
|
|
1466
1466
|
toEffect(): Effect.Effect<
|
|
1467
|
-
Effect.Effect.
|
|
1467
|
+
{ readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]> },
|
|
1468
1468
|
Effect.Effect.Error<Refs[number]>,
|
|
1469
|
-
|
|
1469
|
+
Effect.Effect.Context<Refs[number]>
|
|
1470
1470
|
> {
|
|
1471
1471
|
return this.versioned
|
|
1472
1472
|
}
|
|
@@ -1480,20 +1480,20 @@ class RefSubjectTuple<
|
|
|
1480
1480
|
readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>
|
|
1481
1481
|
}
|
|
1482
1482
|
>
|
|
1483
|
-
) => Effect.Effect<
|
|
1483
|
+
) => Effect.Effect<C, E2, R2>
|
|
1484
1484
|
) {
|
|
1485
1485
|
return run(this.getSetDelete)
|
|
1486
1486
|
}
|
|
1487
1487
|
|
|
1488
1488
|
onFailure(
|
|
1489
1489
|
cause: Cause.Cause<Effect.Effect.Error<Refs[number]>>
|
|
1490
|
-
): Effect.Effect<Effect.Effect.Context<Refs[number]
|
|
1490
|
+
): Effect.Effect<unknown, never, Effect.Effect.Context<Refs[number]>> {
|
|
1491
1491
|
return Effect.all(this.refs.map((ref) => ref.onFailure(cause)))
|
|
1492
1492
|
}
|
|
1493
1493
|
|
|
1494
1494
|
onSuccess(
|
|
1495
1495
|
value: { readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]> }
|
|
1496
|
-
): Effect.Effect<Effect.Effect.Context<Refs[number]
|
|
1496
|
+
): Effect.Effect<unknown, never, Effect.Effect.Context<Refs[number]>> {
|
|
1497
1497
|
return Effect.catchAllCause(this.getSetDelete.set(value), (c) => this.onFailure(c))
|
|
1498
1498
|
}
|
|
1499
1499
|
}
|
|
@@ -1559,12 +1559,12 @@ class RefSubjectStruct<
|
|
|
1559
1559
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
1560
1560
|
|
|
1561
1561
|
readonly version: Effect.Effect<
|
|
1562
|
-
|
|
1562
|
+
number,
|
|
1563
1563
|
Effect.Effect.Error<Refs[keyof Refs]>,
|
|
1564
|
-
|
|
1564
|
+
Effect.Effect.Context<Refs[keyof Refs]>
|
|
1565
1565
|
>
|
|
1566
|
-
readonly interrupt: Effect.Effect<Effect.Effect.Context<Refs[keyof Refs]
|
|
1567
|
-
readonly subscriberCount: Effect.Effect<Effect.Effect.Context<Refs[keyof Refs]
|
|
1566
|
+
readonly interrupt: Effect.Effect<void, never, Effect.Effect.Context<Refs[keyof Refs]>>
|
|
1567
|
+
readonly subscriberCount: Effect.Effect<number, never, Effect.Effect.Context<Refs[keyof Refs]>>
|
|
1568
1568
|
|
|
1569
1569
|
private versioned: Versioned.Versioned<
|
|
1570
1570
|
Effect.Effect.Context<Refs[keyof Refs]>,
|
|
@@ -1613,14 +1613,14 @@ class RefSubjectStruct<
|
|
|
1613
1613
|
Effect.Effect.Error<Refs[keyof Refs]>,
|
|
1614
1614
|
{ readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]> }
|
|
1615
1615
|
>
|
|
1616
|
-
): Effect.Effect<Effect.Effect.Context<Refs[keyof Refs]> | R3
|
|
1616
|
+
): Effect.Effect<unknown, never, Effect.Effect.Context<Refs[keyof Refs]> | R3> {
|
|
1617
1617
|
return this.versioned.run(sink)
|
|
1618
1618
|
}
|
|
1619
1619
|
|
|
1620
1620
|
toEffect(): Effect.Effect<
|
|
1621
|
-
Effect.Effect.
|
|
1621
|
+
{ readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]> },
|
|
1622
1622
|
Effect.Effect.Error<Refs[keyof Refs]>,
|
|
1623
|
-
|
|
1623
|
+
Effect.Effect.Context<Refs[keyof Refs]>
|
|
1624
1624
|
> {
|
|
1625
1625
|
return this.versioned
|
|
1626
1626
|
}
|
|
@@ -1634,20 +1634,20 @@ class RefSubjectStruct<
|
|
|
1634
1634
|
readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]>
|
|
1635
1635
|
}
|
|
1636
1636
|
>
|
|
1637
|
-
) => Effect.Effect<
|
|
1637
|
+
) => Effect.Effect<C, E2, R2>
|
|
1638
1638
|
) {
|
|
1639
1639
|
return run(this.getSetDelete)
|
|
1640
1640
|
}
|
|
1641
1641
|
|
|
1642
1642
|
onFailure(
|
|
1643
1643
|
cause: Cause.Cause<Effect.Effect.Error<Refs[keyof Refs]>>
|
|
1644
|
-
): Effect.Effect<Effect.Effect.Context<Refs[keyof Refs]
|
|
1644
|
+
): Effect.Effect<unknown, never, Effect.Effect.Context<Refs[keyof Refs]>> {
|
|
1645
1645
|
return Effect.all(Object.values(this.refs).map((ref) => ref.onFailure(cause as any)))
|
|
1646
1646
|
}
|
|
1647
1647
|
|
|
1648
1648
|
onSuccess(
|
|
1649
1649
|
value: { readonly [K in keyof Refs]: Effect.Effect.Success<Refs[K]> }
|
|
1650
|
-
): Effect.Effect<Effect.Effect.Context<Refs[keyof Refs]
|
|
1650
|
+
): Effect.Effect<unknown, never, Effect.Effect.Context<Refs[keyof Refs]>> {
|
|
1651
1651
|
return Effect.catchAllCause(this.getSetDelete.set(value), (c) => this.onFailure(c))
|
|
1652
1652
|
}
|
|
1653
1653
|
}
|
|
@@ -1741,9 +1741,9 @@ class RefSubjectTagged<I, E, A> extends FxEffectBase<
|
|
|
1741
1741
|
readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
|
|
1742
1742
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
1743
1743
|
|
|
1744
|
-
readonly version: Effect.Effect<
|
|
1745
|
-
readonly interrupt: Effect.Effect<
|
|
1746
|
-
readonly subscriberCount: Effect.Effect<
|
|
1744
|
+
readonly version: Effect.Effect<number, E, I>
|
|
1745
|
+
readonly interrupt: Effect.Effect<void, never, I>
|
|
1746
|
+
readonly subscriberCount: Effect.Effect<number, never, I>
|
|
1747
1747
|
|
|
1748
1748
|
constructor(
|
|
1749
1749
|
readonly tag: C.Tagged<I, RefSubject<never, E, A>>,
|
|
@@ -1762,32 +1762,32 @@ class RefSubjectTagged<I, E, A> extends FxEffectBase<
|
|
|
1762
1762
|
|
|
1763
1763
|
run<R2 = never>(
|
|
1764
1764
|
sink: Sink.Sink<R2, E, A>
|
|
1765
|
-
): Effect.Effect<I | R2 | Scope.Scope
|
|
1765
|
+
): Effect.Effect<unknown, never, I | R2 | Scope.Scope> {
|
|
1766
1766
|
return this.tag.withEffect((ref) => ref.run(sink))
|
|
1767
1767
|
}
|
|
1768
1768
|
|
|
1769
|
-
toEffect(): Effect.Effect<
|
|
1769
|
+
toEffect(): Effect.Effect<A, E, I> {
|
|
1770
1770
|
return this.tag.withEffect((ref) => ref)
|
|
1771
1771
|
}
|
|
1772
1772
|
|
|
1773
1773
|
runUpdates<R2, E2, C>(
|
|
1774
|
-
run: (ref: GetSetDelete<I, E, A>) => Effect.Effect<
|
|
1775
|
-
): Effect.Effect<I | R2
|
|
1774
|
+
run: (ref: GetSetDelete<I, E, A>) => Effect.Effect<C, E2, R2>
|
|
1775
|
+
): Effect.Effect<C, E2, I | R2> {
|
|
1776
1776
|
return this.tag.withEffect((ref) => ref.runUpdates(run))
|
|
1777
1777
|
}
|
|
1778
1778
|
|
|
1779
|
-
onFailure(cause: Cause.Cause<E>): Effect.Effect<
|
|
1779
|
+
onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, I> {
|
|
1780
1780
|
return this.tag.withEffect((ref) => ref.onFailure(cause))
|
|
1781
1781
|
}
|
|
1782
1782
|
|
|
1783
|
-
onSuccess(value: A): Effect.Effect<
|
|
1783
|
+
onSuccess(value: A): Effect.Effect<unknown, never, I> {
|
|
1784
1784
|
return this.tag.withEffect((ref) => ref.onSuccess(value))
|
|
1785
1785
|
}
|
|
1786
1786
|
|
|
1787
1787
|
make = <R>(
|
|
1788
|
-
fxOrEffect: Fx<R, E, A> | Effect.Effect<
|
|
1788
|
+
fxOrEffect: Fx<R, E, A> | Effect.Effect<A, E, R>,
|
|
1789
1789
|
options?: RefSubjectOptions<A>
|
|
1790
|
-
): Layer.Layer<
|
|
1790
|
+
): Layer.Layer<I, never, R> => this.tag.scoped(make(fxOrEffect, options))
|
|
1791
1791
|
}
|
|
1792
1792
|
|
|
1793
1793
|
/**
|
|
@@ -1811,11 +1811,11 @@ class RefSubjectFromTag<I, S, R, E, A> extends FxEffectBase<
|
|
|
1811
1811
|
readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
|
|
1812
1812
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
1813
1813
|
|
|
1814
|
-
readonly version: Effect.Effect<I | R
|
|
1815
|
-
readonly interrupt: Effect.Effect<I | R
|
|
1816
|
-
readonly subscriberCount: Effect.Effect<I | R
|
|
1814
|
+
readonly version: Effect.Effect<number, E, I | R>
|
|
1815
|
+
readonly interrupt: Effect.Effect<void, never, I | R>
|
|
1816
|
+
readonly subscriberCount: Effect.Effect<number, never, I | R>
|
|
1817
1817
|
|
|
1818
|
-
private _get: Effect.Effect<
|
|
1818
|
+
private _get: Effect.Effect<RefSubject<R, E, A>, never, I>
|
|
1819
1819
|
private _fx: Fx<I | R | Scope.Scope, E, A>
|
|
1820
1820
|
|
|
1821
1821
|
constructor(
|
|
@@ -1832,25 +1832,25 @@ class RefSubjectFromTag<I, S, R, E, A> extends FxEffectBase<
|
|
|
1832
1832
|
this.subscriberCount = Effect.flatMap(this._get, (ref) => ref.subscriberCount)
|
|
1833
1833
|
}
|
|
1834
1834
|
|
|
1835
|
-
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<I | R | R3 | Scope.Scope
|
|
1835
|
+
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<unknown, never, I | R | R3 | Scope.Scope> {
|
|
1836
1836
|
return this._fx.run(sink)
|
|
1837
1837
|
}
|
|
1838
1838
|
|
|
1839
|
-
toEffect(): Effect.Effect<I | R
|
|
1839
|
+
toEffect(): Effect.Effect<A, E, I | R> {
|
|
1840
1840
|
return Effect.flatten(this._get)
|
|
1841
1841
|
}
|
|
1842
1842
|
|
|
1843
1843
|
runUpdates<R2, E2, C>(
|
|
1844
|
-
run: (ref: GetSetDelete<I | R, E, A>) => Effect.Effect<
|
|
1845
|
-
): Effect.Effect<I | R | R2
|
|
1844
|
+
run: (ref: GetSetDelete<I | R, E, A>) => Effect.Effect<C, E2, R2>
|
|
1845
|
+
): Effect.Effect<C, E2, I | R | R2> {
|
|
1846
1846
|
return Effect.flatMap(this._get, (ref) => ref.runUpdates(run))
|
|
1847
1847
|
}
|
|
1848
1848
|
|
|
1849
|
-
onFailure(cause: Cause.Cause<E>): Effect.Effect<I | R
|
|
1849
|
+
onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, I | R> {
|
|
1850
1850
|
return Effect.flatMap(this._get, (ref) => ref.onFailure(cause))
|
|
1851
1851
|
}
|
|
1852
1852
|
|
|
1853
|
-
onSuccess(value: A): Effect.Effect<I | R
|
|
1853
|
+
onSuccess(value: A): Effect.Effect<unknown, never, I | R> {
|
|
1854
1854
|
return Effect.flatMap(this._get, (ref) => ref.onSuccess(value))
|
|
1855
1855
|
}
|
|
1856
1856
|
}
|
|
@@ -1919,9 +1919,9 @@ class ComputedFromTag<I, S, R, E, A> extends FxEffectBase<
|
|
|
1919
1919
|
> implements Computed<I | R, E, A> {
|
|
1920
1920
|
readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
|
|
1921
1921
|
|
|
1922
|
-
readonly version: Effect.Effect<I | R
|
|
1922
|
+
readonly version: Effect.Effect<number, E, I | R>
|
|
1923
1923
|
|
|
1924
|
-
private _get: Effect.Effect<
|
|
1924
|
+
private _get: Effect.Effect<Computed<R, E, A>, never, I>
|
|
1925
1925
|
|
|
1926
1926
|
constructor(
|
|
1927
1927
|
readonly tag: C.Tag<I, S>,
|
|
@@ -1933,11 +1933,11 @@ class ComputedFromTag<I, S, R, E, A> extends FxEffectBase<
|
|
|
1933
1933
|
this.version = Effect.flatMap(this._get, (ref) => ref.version)
|
|
1934
1934
|
}
|
|
1935
1935
|
|
|
1936
|
-
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<I | R | Scope.Scope | R3
|
|
1936
|
+
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<unknown, never, I | R | Scope.Scope | R3> {
|
|
1937
1937
|
return Effect.flatMap(this._get, (ref) => ref.run(sink))
|
|
1938
1938
|
}
|
|
1939
1939
|
|
|
1940
|
-
toEffect(): Effect.Effect<I | R
|
|
1940
|
+
toEffect(): Effect.Effect<A, E, I | R> {
|
|
1941
1941
|
return Effect.flatten(this._get)
|
|
1942
1942
|
}
|
|
1943
1943
|
}
|
|
@@ -1962,9 +1962,9 @@ class FilteredFromTag<I, S, R, E, A> extends FxEffectBase<
|
|
|
1962
1962
|
> implements Filtered<I | R, E, A> {
|
|
1963
1963
|
readonly [FilteredTypeId]: FilteredTypeId = FilteredTypeId
|
|
1964
1964
|
|
|
1965
|
-
readonly version: Effect.Effect<I | R
|
|
1965
|
+
readonly version: Effect.Effect<number, E, I | R>
|
|
1966
1966
|
|
|
1967
|
-
private _get: Effect.Effect<
|
|
1967
|
+
private _get: Effect.Effect<Filtered<R, E, A>, never, I>
|
|
1968
1968
|
|
|
1969
1969
|
constructor(
|
|
1970
1970
|
readonly tag: C.Tag<I, S>,
|
|
@@ -1976,11 +1976,11 @@ class FilteredFromTag<I, S, R, E, A> extends FxEffectBase<
|
|
|
1976
1976
|
this.version = Effect.flatMap(this._get, (ref) => ref.version)
|
|
1977
1977
|
}
|
|
1978
1978
|
|
|
1979
|
-
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<I | R | Scope.Scope | R3
|
|
1979
|
+
run<R3>(sink: Sink.Sink<R3, E, A>): Effect.Effect<unknown, never, I | R | Scope.Scope | R3> {
|
|
1980
1980
|
return Effect.flatMap(this._get, (ref) => ref.run(sink))
|
|
1981
1981
|
}
|
|
1982
1982
|
|
|
1983
|
-
toEffect(): Effect.Effect<
|
|
1983
|
+
toEffect(): Effect.Effect<A, E | Cause.NoSuchElementException, I | R> {
|
|
1984
1984
|
return Effect.flatten(this._get)
|
|
1985
1985
|
}
|
|
1986
1986
|
|
|
@@ -1999,7 +1999,7 @@ export const provide: {
|
|
|
1999
1999
|
<R, E, A>(ref: RefSubject<R, E, A>): RefSubject<Exclude<R, S>, E, A>
|
|
2000
2000
|
}
|
|
2001
2001
|
|
|
2002
|
-
<R2, S>(layer: Layer.Layer<
|
|
2002
|
+
<R2, S>(layer: Layer.Layer<S, never, R2>): {
|
|
2003
2003
|
<R, E, A>(filtered: Filtered<R, E, A>): Filtered<Exclude<R, S> | R2, E, A>
|
|
2004
2004
|
<R, E, A>(computed: Computed<R, E, A>): Computed<Exclude<R, S> | R2, E, A>
|
|
2005
2005
|
<R, E, A>(ref: RefSubject<R, E, A>): RefSubject<Exclude<R, S> | R2, E, A>
|
|
@@ -2018,15 +2018,15 @@ export const provide: {
|
|
|
2018
2018
|
context: C.Context<S> | Runtime.Runtime<S>
|
|
2019
2019
|
): RefSubject<Exclude<R, S>, E, A>
|
|
2020
2020
|
|
|
2021
|
-
<R, E, A, R2, S>(filtered: Filtered<R, E, A>, layer: Layer.Layer<
|
|
2022
|
-
<R, E, A, R2, S>(computed: Computed<R, E, A>, layer: Layer.Layer<
|
|
2023
|
-
<R, E, A, R2, S>(ref: RefSubject<R, E, A>, layer: Layer.Layer<
|
|
2021
|
+
<R, E, A, R2, S>(filtered: Filtered<R, E, A>, layer: Layer.Layer<S, never, R2>): Filtered<Exclude<R, S> | R2, E, A>
|
|
2022
|
+
<R, E, A, R2, S>(computed: Computed<R, E, A>, layer: Layer.Layer<S, never, R2>): Computed<Exclude<R, S> | R2, E, A>
|
|
2023
|
+
<R, E, A, R2, S>(ref: RefSubject<R, E, A>, layer: Layer.Layer<S, never, R2>): RefSubject<Exclude<R, S> | R2, E, A>
|
|
2024
2024
|
} = dual(2, function provide<R, E, A, R2 = never, S = never>(
|
|
2025
2025
|
ref: RefSubject<R, E, A> | Computed<R, E, A> | Filtered<R, E, A>,
|
|
2026
|
-
providing: Layer.Layer<
|
|
2026
|
+
providing: Layer.Layer<S, never, R2> | C.Context<S> | Runtime.Runtime<S>
|
|
2027
2027
|
) {
|
|
2028
2028
|
const layer = Layer.isLayer(providing)
|
|
2029
|
-
? providing as Layer.Layer<
|
|
2029
|
+
? providing as Layer.Layer<S, never, R2>
|
|
2030
2030
|
: C.isContext(providing)
|
|
2031
2031
|
? Layer.succeedContext(providing)
|
|
2032
2032
|
: runtimeToLayer(providing as Runtime.Runtime<S>)
|
|
@@ -2051,12 +2051,12 @@ class RefSubjectProvide<R, E, A, R2, S> extends FxEffectBase<
|
|
|
2051
2051
|
readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
|
|
2052
2052
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
2053
2053
|
|
|
2054
|
-
readonly interrupt: Effect.Effect<Exclude<R, S> | R2
|
|
2055
|
-
readonly subscriberCount: Effect.Effect<Exclude<R, S> | R2
|
|
2054
|
+
readonly interrupt: Effect.Effect<void, never, Exclude<R, S> | R2>
|
|
2055
|
+
readonly subscriberCount: Effect.Effect<number, never, Exclude<R, S> | R2>
|
|
2056
2056
|
|
|
2057
2057
|
constructor(
|
|
2058
2058
|
readonly ref: RefSubject<R, E, A>,
|
|
2059
|
-
readonly layer: Layer.Layer<
|
|
2059
|
+
readonly layer: Layer.Layer<S, never, R2>
|
|
2060
2060
|
) {
|
|
2061
2061
|
super()
|
|
2062
2062
|
|
|
@@ -2066,11 +2066,11 @@ class RefSubjectProvide<R, E, A, R2, S> extends FxEffectBase<
|
|
|
2066
2066
|
|
|
2067
2067
|
run<R3>(
|
|
2068
2068
|
sink: Sink.Sink<R3, E, A>
|
|
2069
|
-
): Effect.Effect<R2 | Scope.Scope | Exclude<Scope.Scope, S> | Exclude<R, S> | Exclude<R3, S
|
|
2069
|
+
): Effect.Effect<unknown, never, R2 | Scope.Scope | Exclude<Scope.Scope, S> | Exclude<R, S> | Exclude<R3, S>> {
|
|
2070
2070
|
return Effect.provide(this.ref.run(sink), this.layer)
|
|
2071
2071
|
}
|
|
2072
2072
|
|
|
2073
|
-
toEffect(): Effect.Effect<Exclude<R, S> | R2
|
|
2073
|
+
toEffect(): Effect.Effect<A, E, Exclude<R, S> | R2> {
|
|
2074
2074
|
return Effect.provide(this.ref, this.layer)
|
|
2075
2075
|
}
|
|
2076
2076
|
}
|
|
@@ -2079,7 +2079,7 @@ class RefSubjectProvide<R, E, A, R2, S> extends FxEffectBase<
|
|
|
2079
2079
|
* Set the value to true
|
|
2080
2080
|
* @since 1.18.0
|
|
2081
2081
|
*/
|
|
2082
|
-
export const asTrue: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<
|
|
2082
|
+
export const asTrue: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<boolean, E, R> = <R, E>(
|
|
2083
2083
|
ref: RefSubject<R, E, boolean>
|
|
2084
2084
|
) => set(ref, true)
|
|
2085
2085
|
|
|
@@ -2087,7 +2087,7 @@ export const asTrue: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<R,
|
|
|
2087
2087
|
* Set the value to false
|
|
2088
2088
|
* @since 1.18.0
|
|
2089
2089
|
*/
|
|
2090
|
-
export const asFalse: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<
|
|
2090
|
+
export const asFalse: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<boolean, E, R> = <R, E>(
|
|
2091
2091
|
ref: RefSubject<R, E, boolean>
|
|
2092
2092
|
) => set(ref, false)
|
|
2093
2093
|
|
|
@@ -2095,7 +2095,7 @@ export const asFalse: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<R,
|
|
|
2095
2095
|
* Toggle the boolean value between true and false
|
|
2096
2096
|
* @since 1.18.0
|
|
2097
2097
|
*/
|
|
2098
|
-
export const toggle: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<
|
|
2098
|
+
export const toggle: <R, E>(ref: RefSubject<R, E, boolean>) => Effect.Effect<boolean, E, R> = <R, E>(
|
|
2099
2099
|
ref: RefSubject<R, E, boolean>
|
|
2100
2100
|
) => update(ref, Boolean.not)
|
|
2101
2101
|
|
|
@@ -2105,7 +2105,7 @@ const add = (x: number): number => x + 1
|
|
|
2105
2105
|
* Set the value to true
|
|
2106
2106
|
* @since 1.18.0
|
|
2107
2107
|
*/
|
|
2108
|
-
export const increment: <R, E>(ref: RefSubject<R, E, number>) => Effect.Effect<
|
|
2108
|
+
export const increment: <R, E>(ref: RefSubject<R, E, number>) => Effect.Effect<number, E, R> = <R, E>(
|
|
2109
2109
|
ref: RefSubject<R, E, number>
|
|
2110
2110
|
) => update(ref, add)
|
|
2111
2111
|
|
|
@@ -2115,7 +2115,7 @@ const sub = (x: number): number => x - 1
|
|
|
2115
2115
|
* Set the value to false
|
|
2116
2116
|
* @since 1.18.0
|
|
2117
2117
|
*/
|
|
2118
|
-
export const decrement: <R, E>(ref: RefSubject<R, E, number>) => Effect.Effect<
|
|
2118
|
+
export const decrement: <R, E>(ref: RefSubject<R, E, number>) => Effect.Effect<number, E, R> = <R, E>(
|
|
2119
2119
|
ref: RefSubject<R, E, number>
|
|
2120
2120
|
) => update(ref, sub)
|
|
2121
2121
|
|
|
@@ -2156,9 +2156,9 @@ class RefSubjectSlice<R, E, A> extends FxEffectBase<R | Scope.Scope, E, A, R, E,
|
|
|
2156
2156
|
readonly [ComputedTypeId]: ComputedTypeId = ComputedTypeId
|
|
2157
2157
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
2158
2158
|
|
|
2159
|
-
readonly version: Effect.Effect<
|
|
2160
|
-
readonly interrupt: Effect.Effect<
|
|
2161
|
-
readonly subscriberCount: Effect.Effect<
|
|
2159
|
+
readonly version: Effect.Effect<number, E, R>
|
|
2160
|
+
readonly interrupt: Effect.Effect<void, never, R>
|
|
2161
|
+
readonly subscriberCount: Effect.Effect<number, never, R>
|
|
2162
2162
|
private _fx: Fx<Scope.Scope | R, E, A>
|
|
2163
2163
|
|
|
2164
2164
|
constructor(
|
|
@@ -2175,25 +2175,25 @@ class RefSubjectSlice<R, E, A> extends FxEffectBase<R | Scope.Scope, E, A, R, E,
|
|
|
2175
2175
|
this._effect = ref
|
|
2176
2176
|
}
|
|
2177
2177
|
|
|
2178
|
-
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<R | R2 | Scope.Scope
|
|
2178
|
+
run<R2>(sink: Sink.Sink<R2, E, A>): Effect.Effect<unknown, never, R | R2 | Scope.Scope> {
|
|
2179
2179
|
return this._fx.run(sink)
|
|
2180
2180
|
}
|
|
2181
2181
|
|
|
2182
|
-
toEffect(): Effect.Effect<
|
|
2182
|
+
toEffect(): Effect.Effect<A, E, R> {
|
|
2183
2183
|
return this.ref
|
|
2184
2184
|
}
|
|
2185
2185
|
|
|
2186
2186
|
runUpdates<R2, E2, C>(
|
|
2187
|
-
run: (ref: GetSetDelete<R, E, A>) => Effect.Effect<
|
|
2188
|
-
): Effect.Effect<R | R2
|
|
2187
|
+
run: (ref: GetSetDelete<R, E, A>) => Effect.Effect<C, E2, R2>
|
|
2188
|
+
): Effect.Effect<C, E2, R | R2> {
|
|
2189
2189
|
return this.ref.runUpdates(run)
|
|
2190
2190
|
}
|
|
2191
2191
|
|
|
2192
|
-
onFailure(cause: Cause.Cause<E>): Effect.Effect<
|
|
2192
|
+
onFailure(cause: Cause.Cause<E>): Effect.Effect<unknown, never, R> {
|
|
2193
2193
|
return this.ref.onFailure(cause)
|
|
2194
2194
|
}
|
|
2195
2195
|
|
|
2196
|
-
onSuccess(value: A): Effect.Effect<
|
|
2196
|
+
onSuccess(value: A): Effect.Effect<unknown, never, R> {
|
|
2197
2197
|
return this.ref.onSuccess(value)
|
|
2198
2198
|
}
|
|
2199
2199
|
}
|