effect 4.0.0-beta.57 → 4.0.0-beta.59
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/Stream.d.ts.map +1 -1
- package/dist/Stream.js +17 -9
- package/dist/Stream.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +3 -3
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +12 -2
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +37 -17
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +9 -0
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/package.json +1 -1
- package/src/Stream.ts +24 -13
- package/src/unstable/cluster/EntityProxyServer.ts +3 -3
- package/src/unstable/http/HttpClientResponse.ts +12 -2
- package/src/unstable/reactivity/AsyncResult.ts +59 -17
|
@@ -684,54 +684,85 @@ export const builder = <A extends AsyncResult<any, any>>(self: A): Builder<
|
|
|
684
684
|
never,
|
|
685
685
|
A extends Success<infer _A, infer _E> ? _A : never,
|
|
686
686
|
A extends Failure<infer _A, infer _E> ? _E : never,
|
|
687
|
-
A extends Initial<infer _A, infer _E> ? true : never
|
|
687
|
+
A extends Initial<infer _A, infer _E> ? true : never,
|
|
688
|
+
A extends Failure<infer _A, infer _E> ? Defect | Interrupt : never
|
|
688
689
|
> => new BuilderImpl(self) as any
|
|
689
690
|
|
|
690
691
|
/**
|
|
691
692
|
* @since 4.0.0
|
|
692
693
|
* @category Builder
|
|
693
694
|
*/
|
|
694
|
-
export
|
|
695
|
+
export interface Defect {
|
|
696
|
+
readonly _: unique symbol
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
/**
|
|
700
|
+
* @since 4.0.0
|
|
701
|
+
* @category Builder
|
|
702
|
+
*/
|
|
703
|
+
export interface Interrupt {
|
|
704
|
+
readonly _: unique symbol
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* @since 4.0.0
|
|
709
|
+
* @category Builder
|
|
710
|
+
*/
|
|
711
|
+
export type Builder<Out, A, E, I, F> =
|
|
695
712
|
& Pipeable
|
|
696
713
|
& {
|
|
697
|
-
onWaiting<B>(f: (result: AsyncResult<A, E>) => B): Builder<Out | B, A, E, I>
|
|
698
|
-
onDefect<B>(f: (defect: unknown, result: Failure<A, E>) => B): Builder<Out | B, A, E, I>
|
|
714
|
+
onWaiting<B>(f: (result: AsyncResult<A, E>) => B): Builder<Out | B, A, E, I, F>
|
|
699
715
|
orElse<B>(orElse: LazyArg<B>): Out | B
|
|
700
716
|
orNull(): Out | null
|
|
701
717
|
render(): [A | I] extends [never] ? Out : Out | null
|
|
702
718
|
}
|
|
703
|
-
& ([I] extends [never] ? {
|
|
719
|
+
& ([A | E | I | F] extends [never] ? {
|
|
720
|
+
exhaustive(): Out
|
|
721
|
+
} :
|
|
722
|
+
unknown)
|
|
723
|
+
& ([I] extends [never] ? unknown :
|
|
704
724
|
{
|
|
705
|
-
onInitial<B>(f: (result: Initial<A, E>) => B): Builder<Out | B, A, E, never>
|
|
706
|
-
onInitialOrWaiting<B>(f: (result: AsyncResult<A, E>) => B): Builder<Out | B, A, E, never>
|
|
725
|
+
onInitial<B>(f: (result: Initial<A, E>) => B): Builder<Out | B, A, E, never, F>
|
|
726
|
+
onInitialOrWaiting<B>(f: (result: AsyncResult<A, E>) => B): Builder<Out | B, A, E, never, F>
|
|
707
727
|
})
|
|
708
|
-
& ([A] extends [never] ?
|
|
728
|
+
& ([A] extends [never] ? unknown :
|
|
709
729
|
{
|
|
710
|
-
onSuccess<B>(f: (value: A, result: Success<A, E>) => B): Builder<Out | B, never, E, I>
|
|
730
|
+
onSuccess<B>(f: (value: A, result: Success<A, E>) => B): Builder<Out | B, never, E, I, F>
|
|
711
731
|
})
|
|
712
|
-
& ([E] extends [never] ?
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
onError<B>(f: (error: E, result: Failure<A, E>) => B): Builder<Out | B, A, never, I>
|
|
732
|
+
& ([E] extends [never] ? unknown : {
|
|
733
|
+
onError<B>(f: (error: E, result: Failure<A, E>) => B): Builder<Out | B, A, never, I, F>
|
|
716
734
|
|
|
717
735
|
onErrorIf<B extends E, C>(
|
|
718
736
|
refinement: Refinement<E, B>,
|
|
719
737
|
f: (error: B, result: Failure<A, E>) => C
|
|
720
|
-
): Builder<Out | C, A, Types.EqualsWith<E, B, E, Exclude<E, B>>, I>
|
|
738
|
+
): Builder<Out | C, A, Types.EqualsWith<E, B, E, Exclude<E, B>>, I, F>
|
|
721
739
|
onErrorIf<C>(
|
|
722
740
|
predicate: Predicate<E>,
|
|
723
741
|
f: (error: E, result: Failure<A, E>) => C
|
|
724
|
-
): Builder<Out | C, A, E, I>
|
|
742
|
+
): Builder<Out | C, A, E, I, F>
|
|
725
743
|
|
|
726
744
|
onErrorTag<const Tags extends ReadonlyArray<Types.Tags<E>>, B>(
|
|
727
745
|
tags: Tags,
|
|
728
746
|
f: (error: Types.ExtractTag<E, Tags[number]>, result: Failure<A, E>) => B
|
|
729
|
-
): Builder<Out | B, A, Types.ExcludeTag<E, Tags[number]>, I>
|
|
747
|
+
): Builder<Out | B, A, Types.ExcludeTag<E, Tags[number]>, I, F>
|
|
730
748
|
onErrorTag<const Tag extends Types.Tags<E>, B>(
|
|
731
749
|
tag: Tag,
|
|
732
750
|
f: (error: Types.ExtractTag<E, Tag>, result: Failure<A, E>) => B
|
|
733
|
-
): Builder<Out | B, A, Types.ExcludeTag<E, Tag>, I>
|
|
751
|
+
): Builder<Out | B, A, Types.ExcludeTag<E, Tag>, I, F>
|
|
734
752
|
})
|
|
753
|
+
& ([E | F] extends [never] ? unknown : {
|
|
754
|
+
onFailure<B>(f: (cause: Cause.Cause<E>, result: Failure<A, E>) => B): Builder<Out | B, A, never, I, never>
|
|
755
|
+
})
|
|
756
|
+
& (Interrupt extends F ? {
|
|
757
|
+
onInterrupt<B>(
|
|
758
|
+
f: (interruptors: ReadonlySet<number>, result: Failure<A, E>) => B
|
|
759
|
+
): Builder<Out | B, A, E, I, Exclude<F, Interrupt>>
|
|
760
|
+
} :
|
|
761
|
+
unknown)
|
|
762
|
+
& (Defect extends F ? {
|
|
763
|
+
onDefect<B>(f: (defect: unknown, result: Failure<A, E>) => B): Builder<Out | B, A, E, I, Exclude<F, Defect>>
|
|
764
|
+
} :
|
|
765
|
+
unknown)
|
|
735
766
|
|
|
736
767
|
class BuilderImpl<Out, A, E> {
|
|
737
768
|
constructor(result: AsyncResult<A, E>) {
|
|
@@ -817,6 +848,13 @@ class BuilderImpl<Out, A, E> {
|
|
|
817
848
|
})
|
|
818
849
|
}
|
|
819
850
|
|
|
851
|
+
onInterrupt<B>(f: (interruptors: ReadonlySet<number>, result: Failure<A, E>) => B): BuilderImpl<Out | B, A, E> {
|
|
852
|
+
return this.when(isFailure, (result) => {
|
|
853
|
+
const interruptors = Cause.filterInterruptors(result.cause)
|
|
854
|
+
return Result.isFailure(interruptors) ? Option.none() : Option.some(f(interruptors.success, result))
|
|
855
|
+
})
|
|
856
|
+
}
|
|
857
|
+
|
|
820
858
|
orElse<B>(orElse: LazyArg<B>): Out | B {
|
|
821
859
|
return Option.getOrElse(this.output, orElse)
|
|
822
860
|
}
|
|
@@ -833,6 +871,10 @@ class BuilderImpl<Out, A, E> {
|
|
|
833
871
|
}
|
|
834
872
|
return null
|
|
835
873
|
}
|
|
874
|
+
|
|
875
|
+
exhaustive(): Out {
|
|
876
|
+
return this.render() as Out
|
|
877
|
+
}
|
|
836
878
|
}
|
|
837
879
|
|
|
838
880
|
/**
|