@typed/fx 1.15.4 → 1.16.1
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/Computed.js +2 -2
- package/dist/Computed.js.map +1 -1
- package/dist/Fx.d.ts +2 -1
- package/dist/Fx.d.ts.map +1 -1
- package/dist/Fx.js +10 -4
- package/dist/Fx.js.map +1 -1
- package/dist/RefSubject.d.ts.map +1 -1
- package/dist/RefSubject.js +2 -10
- package/dist/RefSubject.js.map +1 -1
- package/dist/cjs/Computed.js +2 -2
- package/dist/cjs/Computed.js.map +1 -1
- package/dist/cjs/Fx.d.ts +2 -1
- package/dist/cjs/Fx.d.ts.map +1 -1
- package/dist/cjs/Fx.js +10 -4
- package/dist/cjs/Fx.js.map +1 -1
- package/dist/cjs/RefSubject.d.ts.map +1 -1
- package/dist/cjs/RefSubject.js +2 -10
- package/dist/cjs/RefSubject.js.map +1 -1
- package/dist/cjs/data-first.d.ts +1 -0
- package/dist/cjs/data-first.d.ts.map +1 -1
- package/dist/cjs/data-first.js +1 -0
- package/dist/cjs/data-first.js.map +1 -1
- package/dist/cjs/fromEffect.d.ts.map +1 -1
- package/dist/cjs/fromEffect.js +5 -0
- package/dist/cjs/fromEffect.js.map +1 -1
- package/dist/cjs/index.d.ts +6 -11
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -14
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/multicast.d.ts +1 -0
- package/dist/cjs/multicast.d.ts.map +1 -1
- package/dist/cjs/multicast.js +5 -0
- package/dist/cjs/multicast.js.map +1 -1
- package/dist/cjs/promise.d.ts +6 -12
- package/dist/cjs/promise.d.ts.map +1 -1
- package/dist/cjs/promise.js +1 -25
- package/dist/cjs/promise.js.map +1 -1
- package/dist/data-first.d.ts +1 -0
- package/dist/data-first.d.ts.map +1 -1
- package/dist/data-first.js +1 -0
- package/dist/data-first.js.map +1 -1
- package/dist/fromEffect.d.ts.map +1 -1
- package/dist/fromEffect.js +5 -0
- package/dist/fromEffect.js.map +1 -1
- package/dist/index.d.ts +6 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/multicast.d.ts +1 -0
- package/dist/multicast.d.ts.map +1 -1
- package/dist/multicast.js +5 -0
- package/dist/multicast.js.map +1 -1
- package/dist/promise.d.ts +6 -12
- package/dist/promise.d.ts.map +1 -1
- package/dist/promise.js +0 -18
- package/dist/promise.js.map +1 -1
- package/dist/tsconfig.cjs.build.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/Computed.ts +2 -2
- package/src/Fx.ts +13 -5
- package/src/RefSubject.ts +8 -25
- package/src/data-first.ts +1 -0
- package/src/fromEffect.ts +6 -0
- package/src/index.ts +10 -32
- package/src/multicast.ts +6 -0
- package/src/promise.ts +7 -41
- package/tsconfig.build.tsbuildinfo +1 -1
package/src/RefSubject.ts
CHANGED
|
@@ -199,12 +199,14 @@ function initializeFromContext<E, A>(ctx: RefSubjectContext<E, A>): Effect.Effec
|
|
|
199
199
|
Effect.flatMap(Effect.forkIn(restore(ctx.initial), ctx.scope), (fiber) => {
|
|
200
200
|
MutableRef.set(ctx.initializingFiberRef, Option.some(fiber))
|
|
201
201
|
|
|
202
|
-
return
|
|
203
|
-
Effect.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
202
|
+
return Fiber.join(fiber).pipe(
|
|
203
|
+
Effect.tap((a) =>
|
|
204
|
+
Effect.sync(() => {
|
|
205
|
+
MutableRef.increment(ctx.version)
|
|
206
|
+
MutableRef.set(ctx.currentRef, Option.some(a))
|
|
207
|
+
}),
|
|
208
|
+
),
|
|
209
|
+
Effect.ensuring(Effect.sync(() => MutableRef.set(ctx.initializingFiberRef, Option.none()))),
|
|
208
210
|
)
|
|
209
211
|
}),
|
|
210
212
|
)
|
|
@@ -753,23 +755,4 @@ export function asRef<R, E, A>(fx: Fx<R, E, A>) {
|
|
|
753
755
|
)
|
|
754
756
|
}),
|
|
755
757
|
)
|
|
756
|
-
|
|
757
|
-
return Effect.gen(function* ($) {
|
|
758
|
-
const deferred = yield* $(Deferred.make<E, A>())
|
|
759
|
-
const ref = yield* $(makeRef(Deferred.await(deferred)))
|
|
760
|
-
|
|
761
|
-
const onValue = (value: A) =>
|
|
762
|
-
Effect.flatMap(Deferred.succeed(deferred, value), (closed) =>
|
|
763
|
-
closed ? Effect.unit : ref.set(value),
|
|
764
|
-
)
|
|
765
|
-
|
|
766
|
-
yield* $(
|
|
767
|
-
switchMatchCauseEffect(fx, ref.error, onValue),
|
|
768
|
-
drain,
|
|
769
|
-
Effect.catchAllCause(ref.error),
|
|
770
|
-
Effect.forkScoped,
|
|
771
|
-
)
|
|
772
|
-
|
|
773
|
-
return ref
|
|
774
|
-
})
|
|
775
758
|
}
|
package/src/data-first.ts
CHANGED
package/src/fromEffect.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { pipeArguments } from '@effect/data/Pipeable'
|
|
1
2
|
import * as Effect from '@effect/io/Effect'
|
|
2
3
|
|
|
3
4
|
import { Fx, FxTypeId, Sink } from './Fx.js'
|
|
@@ -14,4 +15,9 @@ class FromEffect<R, E, A> implements Fx<R, E, A> {
|
|
|
14
15
|
run<R2>(sink: Sink<R2, E, A>): Effect.Effect<R | R2, never, void> {
|
|
15
16
|
return Effect.matchCauseEffect(this.effect, { onFailure: sink.error, onSuccess: sink.event })
|
|
16
17
|
}
|
|
18
|
+
|
|
19
|
+
pipe() {
|
|
20
|
+
// eslint-disable-next-line prefer-rest-params
|
|
21
|
+
return pipeArguments(this, arguments)
|
|
22
|
+
}
|
|
17
23
|
}
|
package/src/index.ts
CHANGED
|
@@ -606,52 +606,29 @@ export const onInterrupt: {
|
|
|
606
606
|
): Fx<R | R2, E | E2, A>
|
|
607
607
|
} = dual(2, (fx, f) => internal.onInterrupt(fx, f))
|
|
608
608
|
|
|
609
|
-
export const promise: <A>(f: () => Promise<A>) => Fx<never, never, A> = (f) =>
|
|
609
|
+
export const promise: <A>(f: (signal: AbortSignal) => Promise<A>) => Fx<never, never, A> = (f) =>
|
|
610
|
+
internal.promise(f)
|
|
610
611
|
|
|
611
|
-
export const
|
|
612
|
-
f
|
|
613
|
-
) =>
|
|
614
|
-
|
|
615
|
-
export const tryPromise: <A>(f: () => Promise<A>) => Fx<never, unknown, A> = (f) =>
|
|
616
|
-
internal.tryPromise(f)
|
|
617
|
-
|
|
618
|
-
export const tryPromiseInterrupt: <A>(
|
|
619
|
-
f: (signal: AbortSignal) => Promise<A>,
|
|
620
|
-
) => Fx<never, unknown, A> = (f) => internal.tryPromiseInterrupt(f)
|
|
612
|
+
export const tryPromise: <A>(f: (signal: AbortSignal) => Promise<A>) => Fx<never, unknown, A> = (
|
|
613
|
+
f,
|
|
614
|
+
) => internal.tryPromise(f)
|
|
621
615
|
|
|
622
616
|
export const tryCatchPromise: <A, E>(
|
|
623
|
-
f: () => Promise<A>,
|
|
624
|
-
g: (error: unknown) => E,
|
|
625
|
-
) => Fx<never, E, A> = (f, g) => internal.tryCatchPromise(f, g)
|
|
626
|
-
|
|
627
|
-
export const tryCatchPromiseInterrupt: <A, E>(
|
|
628
617
|
f: (signal: AbortSignal) => Promise<A>,
|
|
629
618
|
g: (error: unknown) => E,
|
|
630
|
-
) => Fx<never, E, A> = (f, g) => internal.
|
|
619
|
+
) => Fx<never, E, A> = (f, g) => internal.tryCatchPromise(f, g)
|
|
631
620
|
|
|
632
621
|
export const promiseFx: <R, E, A>(f: () => Promise<Fx<R, E, A>>) => Fx<R, E, A> = (f) =>
|
|
633
622
|
internal.promiseFx(f)
|
|
634
623
|
|
|
635
|
-
export const
|
|
624
|
+
export const tryPromiseFx: <R, E, A>(
|
|
636
625
|
f: (signal: AbortSignal) => Promise<Fx<R, E, A>>,
|
|
637
|
-
) => Fx<R,
|
|
638
|
-
|
|
639
|
-
export const tryPromiseFx: <R, E, A>(f: () => Promise<Fx<R, E, A>>) => Fx<R, unknown, A> = (f) =>
|
|
640
|
-
internal.tryPromiseFx(f)
|
|
641
|
-
|
|
642
|
-
export const tryPromiseInterruptFx: <R, E, A>(
|
|
643
|
-
f: (signal: AbortSignal) => Promise<Fx<R, E, A>>,
|
|
644
|
-
) => Fx<R, unknown, A> = (f) => internal.tryPromiseInterruptFx(f)
|
|
626
|
+
) => Fx<R, unknown, A> = (f) => internal.tryPromiseFx(f)
|
|
645
627
|
|
|
646
628
|
export const tryCatchPromiseFx: <R, E, A, E2>(
|
|
647
|
-
f: () => Promise<Fx<R, E, A>>,
|
|
648
|
-
g: (error: unknown) => E2,
|
|
649
|
-
) => Fx<R, E | E2, A> = (f, g) => internal.tryCatchPromiseFx(f, g)
|
|
650
|
-
|
|
651
|
-
export const tryCatchPromiseInterruptFx: <R, E, A, E2>(
|
|
652
629
|
f: (signal: AbortSignal) => Promise<Fx<R, E, A>>,
|
|
653
630
|
g: (error: unknown) => E2,
|
|
654
|
-
) => Fx<R, E | E2, A> = (f, g) => internal.
|
|
631
|
+
) => Fx<R, E | E2, A> = (f, g) => internal.tryCatchPromiseFx(f, g)
|
|
655
632
|
|
|
656
633
|
export const provideContext: {
|
|
657
634
|
<R>(context: Context.Context<R>): <E, A>(fx: Fx<R, E, A>) => Fx<never, E, A>
|
|
@@ -1086,6 +1063,7 @@ export const orElse: {
|
|
|
1086
1063
|
): Fx<R | R2, E2, B> => internal.orElse(fx, f),
|
|
1087
1064
|
)
|
|
1088
1065
|
|
|
1066
|
+
export * from './RefArray.js'
|
|
1089
1067
|
export * from './RefSubject.js'
|
|
1090
1068
|
export * from './Computed.js'
|
|
1091
1069
|
export * from './Filtered.js'
|
package/src/multicast.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type * as Context from '@effect/data/Context'
|
|
2
2
|
import { identity } from '@effect/data/Function'
|
|
3
|
+
import { pipeArguments } from '@effect/data/Pipeable'
|
|
3
4
|
import type * as Cause from '@effect/io/Cause'
|
|
4
5
|
import * as Effect from '@effect/io/Effect'
|
|
5
6
|
import * as Fiber from '@effect/io/Fiber'
|
|
@@ -84,6 +85,11 @@ export class MulticastFx<R, E, A> implements Fx<R, E, A>, Sink<never, E, A> {
|
|
|
84
85
|
)
|
|
85
86
|
}
|
|
86
87
|
|
|
88
|
+
pipe() {
|
|
89
|
+
// eslint-disable-next-line prefer-rest-params
|
|
90
|
+
return pipeArguments(this, arguments)
|
|
91
|
+
}
|
|
92
|
+
|
|
87
93
|
protected runEvent<R>(observer: MulticastObserver<R, E, A>, a: A) {
|
|
88
94
|
return Effect.catchAllCause(
|
|
89
95
|
Effect.provideContext(observer.sink.event(a), observer.context),
|
package/src/promise.ts
CHANGED
|
@@ -4,68 +4,34 @@ import type { Fx } from './Fx.js'
|
|
|
4
4
|
import { fromEffect } from './fromEffect.js'
|
|
5
5
|
import { fromFxEffect } from './fromFxEffect.js'
|
|
6
6
|
|
|
7
|
-
export function promise<A>(f: () => Promise<A>): Fx<never, never, A> {
|
|
7
|
+
export function promise<A>(f: (signal: AbortSignal) => Promise<A>): Fx<never, never, A> {
|
|
8
8
|
return fromEffect(Effect.promise(f))
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export function
|
|
12
|
-
return fromEffect(Effect.promiseInterrupt(f))
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function tryPromise<A>(f: () => Promise<A>): Fx<never, unknown, A> {
|
|
11
|
+
export function tryPromise<A>(f: (signal: AbortSignal) => Promise<A>): Fx<never, unknown, A> {
|
|
16
12
|
return fromEffect(Effect.tryPromise(f))
|
|
17
13
|
}
|
|
18
14
|
|
|
19
|
-
export function tryPromiseInterrupt<A>(
|
|
20
|
-
f: (signal: AbortSignal) => Promise<A>,
|
|
21
|
-
): Fx<never, unknown, A> {
|
|
22
|
-
return fromEffect(Effect.tryPromiseInterrupt(f))
|
|
23
|
-
}
|
|
24
|
-
|
|
25
15
|
export function tryCatchPromise<A, E>(
|
|
26
|
-
f: () => Promise<A>,
|
|
27
|
-
g: (error: unknown) => E,
|
|
28
|
-
): Fx<never, E, A> {
|
|
29
|
-
return fromEffect(Effect.tryPromise({ try: f, catch: g }))
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export function tryCatchPromiseInterrupt<A, E>(
|
|
33
16
|
f: (signal: AbortSignal) => Promise<A>,
|
|
34
17
|
g: (error: unknown) => E,
|
|
35
18
|
): Fx<never, E, A> {
|
|
36
|
-
return fromEffect(Effect.
|
|
19
|
+
return fromEffect(Effect.tryPromise({ try: f, catch: g }))
|
|
37
20
|
}
|
|
38
21
|
|
|
39
|
-
export function promiseFx<R, E, A>(f: () => Promise<Fx<R, E, A>>): Fx<R, E, A> {
|
|
22
|
+
export function promiseFx<R, E, A>(f: (signal: AbortSignal) => Promise<Fx<R, E, A>>): Fx<R, E, A> {
|
|
40
23
|
return fromFxEffect(Effect.promise(f))
|
|
41
24
|
}
|
|
42
25
|
|
|
43
|
-
export function
|
|
44
|
-
f: (signal: AbortSignal) => Promise<Fx<R, E, A>>,
|
|
45
|
-
): Fx<R, E, A> {
|
|
46
|
-
return fromFxEffect(Effect.promiseInterrupt(f))
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export function tryPromiseFx<R, E, A>(f: () => Promise<Fx<R, E, A>>): Fx<R, unknown, A> {
|
|
50
|
-
return fromFxEffect(Effect.tryPromise(f))
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export function tryPromiseInterruptFx<R, E, A>(
|
|
26
|
+
export function tryPromiseFx<R, E, A>(
|
|
54
27
|
f: (signal: AbortSignal) => Promise<Fx<R, E, A>>,
|
|
55
28
|
): Fx<R, unknown, A> {
|
|
56
|
-
return fromFxEffect(Effect.
|
|
29
|
+
return fromFxEffect(Effect.tryPromise(f))
|
|
57
30
|
}
|
|
58
31
|
|
|
59
32
|
export function tryCatchPromiseFx<R, E, A, E2>(
|
|
60
|
-
f: () => Promise<Fx<R, E, A>>,
|
|
61
|
-
g: (error: unknown) => E2,
|
|
62
|
-
): Fx<R, E | E2, A> {
|
|
63
|
-
return fromFxEffect(Effect.tryPromise({ try: f, catch: g }))
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export function tryCatchPromiseInterruptFx<R, E, A, E2>(
|
|
67
33
|
f: (signal: AbortSignal) => Promise<Fx<R, E, A>>,
|
|
68
34
|
g: (error: unknown) => E2,
|
|
69
35
|
): Fx<R, E | E2, A> {
|
|
70
|
-
return fromFxEffect(Effect.
|
|
36
|
+
return fromFxEffect(Effect.tryPromise({ try: f, catch: g }))
|
|
71
37
|
}
|