effect 2.4.16 → 2.4.18
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/Iterable/package.json +6 -0
- package/dist/cjs/Effect.js +11 -4
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Inspectable.js +23 -1
- package/dist/cjs/Inspectable.js.map +1 -1
- package/dist/cjs/Iterable.js +938 -0
- package/dist/cjs/Iterable.js.map +1 -0
- package/dist/cjs/Logger.js +11 -1
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/ReadonlyArray.js +2 -17
- package/dist/cjs/ReadonlyArray.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +19 -25
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/logger.js +8 -22
- package/dist/cjs/internal/logger.js.map +1 -1
- package/dist/cjs/internal/runtime.js +42 -50
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Config.d.ts +2 -2
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +30 -20
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Inspectable.d.ts +8 -0
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/Iterable.d.ts +495 -0
- package/dist/dts/Iterable.d.ts.map +1 -0
- package/dist/dts/Logger.d.ts +10 -0
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/ReadonlyArray.d.ts.map +1 -1
- package/dist/dts/index.d.ts +6 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/logger.d.ts +0 -1
- package/dist/dts/internal/logger.d.ts.map +1 -1
- package/dist/esm/Effect.js +7 -0
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Inspectable.js +20 -0
- package/dist/esm/Inspectable.js.map +1 -1
- package/dist/esm/Iterable.js +893 -0
- package/dist/esm/Iterable.js.map +1 -0
- package/dist/esm/Logger.js +10 -0
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/ReadonlyArray.js +2 -17
- package/dist/esm/ReadonlyArray.js.map +1 -1
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +16 -23
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/logger.js +6 -19
- package/dist/esm/internal/logger.js.map +1 -1
- package/dist/esm/internal/runtime.js +42 -50
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +9 -1
- package/src/Config.ts +2 -2
- package/src/Effect.ts +64 -47
- package/src/Inspectable.ts +30 -0
- package/src/Iterable.ts +1009 -0
- package/src/Logger.ts +12 -0
- package/src/ReadonlyArray.ts +2 -20
- package/src/index.ts +7 -0
- package/src/internal/config.ts +2 -2
- package/src/internal/core-effect.ts +11 -9
- package/src/internal/effect/circular.ts +19 -7
- package/src/internal/fiberRuntime.ts +63 -54
- package/src/internal/logger.ts +6 -28
- package/src/internal/runtime.ts +45 -52
- package/src/internal/schedule.ts +3 -3
- package/src/internal/version.ts +1 -1
package/src/Effect.ts
CHANGED
|
@@ -476,15 +476,15 @@ export declare namespace All {
|
|
|
476
476
|
* @since 2.0.0
|
|
477
477
|
* @category collecting & elements
|
|
478
478
|
*/
|
|
479
|
-
export const allSuccesses: <
|
|
480
|
-
elements: Iterable<
|
|
479
|
+
export const allSuccesses: <X extends Effect<any, any, any>>(
|
|
480
|
+
elements: Iterable<X>,
|
|
481
481
|
options?:
|
|
482
482
|
| {
|
|
483
483
|
readonly concurrency?: Concurrency | undefined
|
|
484
484
|
readonly batching?: boolean | "inherit" | undefined
|
|
485
485
|
}
|
|
486
486
|
| undefined
|
|
487
|
-
) => Effect<Array<
|
|
487
|
+
) => Effect<Array<Effect.Success<X>>, never, Effect.Context<X>> = fiberRuntime.allSuccesses
|
|
488
488
|
|
|
489
489
|
/**
|
|
490
490
|
* Drops all elements until the effectful predicate returns true.
|
|
@@ -579,6 +579,22 @@ export const filter: {
|
|
|
579
579
|
): Effect<Array<A>, E, R>
|
|
580
580
|
} = fiberRuntime.filter
|
|
581
581
|
|
|
582
|
+
/**
|
|
583
|
+
* Performs a filter and map in a single step.
|
|
584
|
+
*
|
|
585
|
+
* @since 2.0.0
|
|
586
|
+
* @category collecting & elements
|
|
587
|
+
*/
|
|
588
|
+
export const filterMap: {
|
|
589
|
+
<Eff extends Effect<any, any, any>, B>(
|
|
590
|
+
pf: (a: Effect.Success<Eff>) => Option.Option<B>
|
|
591
|
+
): (elements: Iterable<Eff>) => Effect<Array<B>, Effect.Error<Eff>, Effect.Context<Eff>>
|
|
592
|
+
<Eff extends Effect<any, any, any>, B>(
|
|
593
|
+
elements: Iterable<Eff>,
|
|
594
|
+
pf: (a: Effect.Success<Eff>) => Option.Option<B>
|
|
595
|
+
): Effect<Array<B>, Effect.Error<Eff>, Effect.Context<Eff>>
|
|
596
|
+
} = effect.filterMap
|
|
597
|
+
|
|
582
598
|
/**
|
|
583
599
|
* Returns the first element that satisfies the effectful predicate.
|
|
584
600
|
*
|
|
@@ -614,7 +630,9 @@ export const findFirst: {
|
|
|
614
630
|
* @since 2.0.0
|
|
615
631
|
* @category collecting & elements
|
|
616
632
|
*/
|
|
617
|
-
export const firstSuccessOf: <
|
|
633
|
+
export const firstSuccessOf: <Eff extends Effect<any, any, any>>(
|
|
634
|
+
effects: Iterable<Eff>
|
|
635
|
+
) => Effect<Effect.Success<Eff>, Effect.Error<Eff>, Effect.Context<Eff>> = effect.firstSuccessOf
|
|
618
636
|
|
|
619
637
|
/**
|
|
620
638
|
* @since 2.0.0
|
|
@@ -675,21 +693,21 @@ export const head: <A, E, R>(self: Effect<Iterable<A>, E, R>) => Effect<A, Cause
|
|
|
675
693
|
* @category collecting & elements
|
|
676
694
|
*/
|
|
677
695
|
export const mergeAll: {
|
|
678
|
-
<Z,
|
|
696
|
+
<Z, Eff extends Effect<any, any, any>>(
|
|
679
697
|
zero: Z,
|
|
680
|
-
f: (z: Z, a:
|
|
698
|
+
f: (z: Z, a: Effect.Success<Eff>, i: number) => Z,
|
|
681
699
|
options?:
|
|
682
700
|
| { readonly concurrency?: Concurrency | undefined; readonly batching?: boolean | "inherit" | undefined }
|
|
683
701
|
| undefined
|
|
684
|
-
):
|
|
685
|
-
<
|
|
686
|
-
elements: Iterable<
|
|
702
|
+
): (elements: Iterable<Eff>) => Effect<Z, Effect.Error<Eff>, Effect.Context<Eff>>
|
|
703
|
+
<Eff extends Effect<any, any, any>, Z>(
|
|
704
|
+
elements: Iterable<Eff>,
|
|
687
705
|
zero: Z,
|
|
688
|
-
f: (z: Z, a:
|
|
706
|
+
f: (z: Z, a: Effect.Success<Eff>, i: number) => Z,
|
|
689
707
|
options?:
|
|
690
708
|
| { readonly concurrency?: Concurrency | undefined; readonly batching?: boolean | "inherit" | undefined }
|
|
691
709
|
| undefined
|
|
692
|
-
): Effect<Z,
|
|
710
|
+
): Effect<Z, Effect.Error<Eff>, Effect.Context<Eff>>
|
|
693
711
|
} = fiberRuntime.mergeAll
|
|
694
712
|
|
|
695
713
|
/**
|
|
@@ -734,23 +752,21 @@ export const reduce: {
|
|
|
734
752
|
* @category collecting & elements
|
|
735
753
|
*/
|
|
736
754
|
export const reduceEffect: {
|
|
737
|
-
<
|
|
738
|
-
zero: Effect<
|
|
739
|
-
f: (acc: NoInfer<
|
|
740
|
-
options?:
|
|
741
|
-
readonly concurrency?: Concurrency | undefined
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
}
|
|
753
|
-
): Effect<A, E, R>
|
|
755
|
+
<Z, E, R, Eff extends Effect<any, any, any>>(
|
|
756
|
+
zero: Effect<Z, E, R>,
|
|
757
|
+
f: (acc: NoInfer<Z>, a: Effect.Success<Eff>, i: number) => Z,
|
|
758
|
+
options?:
|
|
759
|
+
| { readonly concurrency?: Concurrency | undefined; readonly batching?: boolean | "inherit" | undefined }
|
|
760
|
+
| undefined
|
|
761
|
+
): (elements: Iterable<Eff>) => Effect<Z, E | Effect.Error<Eff>, R | Effect.Context<Eff>>
|
|
762
|
+
<Eff extends Effect<any, any, any>, Z, E, R>(
|
|
763
|
+
elements: Iterable<Eff>,
|
|
764
|
+
zero: Effect<Z, E, R>,
|
|
765
|
+
f: (acc: NoInfer<Z>, a: Effect.Success<Eff>, i: number) => Z,
|
|
766
|
+
options?:
|
|
767
|
+
| { readonly concurrency?: Concurrency | undefined; readonly batching?: boolean | "inherit" | undefined }
|
|
768
|
+
| undefined
|
|
769
|
+
): Effect<Z, E | Effect.Error<Eff>, R | Effect.Context<Eff>>
|
|
754
770
|
} = fiberRuntime.reduceEffect
|
|
755
771
|
|
|
756
772
|
/**
|
|
@@ -1822,12 +1838,12 @@ export const retryOrElse: {
|
|
|
1822
1838
|
<A1, E, R1, A2, E2, R2>(
|
|
1823
1839
|
policy: Schedule.Schedule<A1, NoInfer<E>, R1>,
|
|
1824
1840
|
orElse: (e: NoInfer<E>, out: A1) => Effect<A2, E2, R2>
|
|
1825
|
-
): <A, R>(self: Effect<A, E, R>) => Effect<A2 | A,
|
|
1841
|
+
): <A, R>(self: Effect<A, E, R>) => Effect<A2 | A, E2, R1 | R2 | R>
|
|
1826
1842
|
<A, E, R, A1, R1, A2, E2, R2>(
|
|
1827
1843
|
self: Effect<A, E, R>,
|
|
1828
1844
|
policy: Schedule.Schedule<A1, NoInfer<E>, R1>,
|
|
1829
1845
|
orElse: (e: NoInfer<E>, out: A1) => Effect<A2, E2, R2>
|
|
1830
|
-
): Effect<A | A2,
|
|
1846
|
+
): Effect<A | A2, E2, R | R1 | R2>
|
|
1831
1847
|
} = _schedule.retryOrElse_Effect
|
|
1832
1848
|
|
|
1833
1849
|
const try_: {
|
|
@@ -2617,22 +2633,21 @@ export const forkDaemon: <A, E, R>(self: Effect<A, E, R>) => Effect<Fiber.Runtim
|
|
|
2617
2633
|
*/
|
|
2618
2634
|
export const forkAll: {
|
|
2619
2635
|
(
|
|
2620
|
-
options?: {
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
)
|
|
2624
|
-
(
|
|
2625
|
-
readonly discard: true
|
|
2626
|
-
|
|
2627
|
-
<
|
|
2628
|
-
effects: Iterable<
|
|
2629
|
-
options?: {
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
}): Effect<void, never, R>
|
|
2636
|
+
options?: { readonly discard?: false | undefined } | undefined
|
|
2637
|
+
): <Eff extends Effect<any, any, any>>(
|
|
2638
|
+
effects: Iterable<Eff>
|
|
2639
|
+
) => Effect<Fiber.Fiber<Array<Effect.Success<Eff>>, Effect.Error<Eff>>, never, Effect.Context<Eff>>
|
|
2640
|
+
(
|
|
2641
|
+
options: { readonly discard: true }
|
|
2642
|
+
): <Eff extends Effect<any, any, any>>(effects: Iterable<Eff>) => Effect<void, never, Effect.Context<Eff>>
|
|
2643
|
+
<Eff extends Effect<any, any, any>>(
|
|
2644
|
+
effects: Iterable<Eff>,
|
|
2645
|
+
options?: { readonly discard?: false | undefined } | undefined
|
|
2646
|
+
): Effect<Fiber.Fiber<Array<Effect.Success<Eff>>, Effect.Error<Eff>>, never, Effect.Context<Eff>>
|
|
2647
|
+
<Eff extends Effect<any, any, any>>(
|
|
2648
|
+
effects: Iterable<Eff>,
|
|
2649
|
+
options: { readonly discard: true }
|
|
2650
|
+
): Effect<void, never, Effect.Context<Eff>>
|
|
2636
2651
|
} = circular.forkAll
|
|
2637
2652
|
|
|
2638
2653
|
/**
|
|
@@ -3644,7 +3659,9 @@ export const flatten: <A, E1, R1, E, R>(self: Effect<Effect<A, E1, R1>, E, R>) =
|
|
|
3644
3659
|
* @since 2.0.0
|
|
3645
3660
|
* @category sequencing
|
|
3646
3661
|
*/
|
|
3647
|
-
export const raceAll: <
|
|
3662
|
+
export const raceAll: <Eff extends Effect<any, any, any>>(
|
|
3663
|
+
all: Iterable<Eff>
|
|
3664
|
+
) => Effect<Effect.Success<Eff>, Effect.Error<Eff>, Effect.Context<Eff>> = fiberRuntime.raceAll
|
|
3648
3665
|
|
|
3649
3666
|
/**
|
|
3650
3667
|
* Returns an effect that races this effect with the specified effect,
|
package/src/Inspectable.ts
CHANGED
|
@@ -82,3 +82,33 @@ export abstract class Class {
|
|
|
82
82
|
return format(this.toJSON())
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @since 2.0.0
|
|
88
|
+
*/
|
|
89
|
+
export const toStringUnknown = (u: unknown, whitespace: number | string | undefined = 2): string => {
|
|
90
|
+
try {
|
|
91
|
+
return typeof u === "object" ? stringifyCircular(u, whitespace) : String(u)
|
|
92
|
+
} catch (_) {
|
|
93
|
+
return String(u)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @since 2.0.0
|
|
99
|
+
*/
|
|
100
|
+
export const stringifyCircular = (obj: unknown, whitespace?: number | string | undefined): string => {
|
|
101
|
+
let cache: Array<unknown> = []
|
|
102
|
+
const retVal = JSON.stringify(
|
|
103
|
+
obj,
|
|
104
|
+
(_key, value) =>
|
|
105
|
+
typeof value === "object" && value !== null
|
|
106
|
+
? cache.includes(value)
|
|
107
|
+
? undefined // circular reference
|
|
108
|
+
: cache.push(value) && value
|
|
109
|
+
: value,
|
|
110
|
+
whitespace
|
|
111
|
+
)
|
|
112
|
+
;(cache as any) = undefined
|
|
113
|
+
return retVal
|
|
114
|
+
}
|