effect 3.2.8 → 3.3.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.
Files changed (155) hide show
  1. package/Redacted/package.json +6 -0
  2. package/dist/cjs/Config.js +9 -1
  3. package/dist/cjs/Config.js.map +1 -1
  4. package/dist/cjs/Either.js +2 -1
  5. package/dist/cjs/Either.js.map +1 -1
  6. package/dist/cjs/Iterable.js +15 -2
  7. package/dist/cjs/Iterable.js.map +1 -1
  8. package/dist/cjs/Layer.js +11 -1
  9. package/dist/cjs/Layer.js.map +1 -1
  10. package/dist/cjs/Option.js +7 -1
  11. package/dist/cjs/Option.js.map +1 -1
  12. package/dist/cjs/Pool.js +26 -0
  13. package/dist/cjs/Pool.js.map +1 -1
  14. package/dist/cjs/Predicate.js +51 -1
  15. package/dist/cjs/Predicate.js.map +1 -1
  16. package/dist/cjs/Redacted.js +65 -0
  17. package/dist/cjs/Redacted.js.map +1 -0
  18. package/dist/cjs/STM.js.map +1 -1
  19. package/dist/cjs/Secret.js +7 -0
  20. package/dist/cjs/Secret.js.map +1 -1
  21. package/dist/cjs/Stream.js +32 -1
  22. package/dist/cjs/Stream.js.map +1 -1
  23. package/dist/cjs/Tuple.js +15 -1
  24. package/dist/cjs/Tuple.js.map +1 -1
  25. package/dist/cjs/Utils.js.map +1 -1
  26. package/dist/cjs/index.js +4 -2
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/internal/cause.js +14 -18
  29. package/dist/cjs/internal/cause.js.map +1 -1
  30. package/dist/cjs/internal/clock.js +1 -1
  31. package/dist/cjs/internal/clock.js.map +1 -1
  32. package/dist/cjs/internal/config.js +8 -1
  33. package/dist/cjs/internal/config.js.map +1 -1
  34. package/dist/cjs/internal/layer.js +14 -2
  35. package/dist/cjs/internal/layer.js.map +1 -1
  36. package/dist/cjs/internal/pool.js +206 -235
  37. package/dist/cjs/internal/pool.js.map +1 -1
  38. package/dist/cjs/internal/redacted.js +87 -0
  39. package/dist/cjs/internal/redacted.js.map +1 -0
  40. package/dist/cjs/internal/secret.js +40 -23
  41. package/dist/cjs/internal/secret.js.map +1 -1
  42. package/dist/cjs/internal/stm/stm.js +2 -1
  43. package/dist/cjs/internal/stm/stm.js.map +1 -1
  44. package/dist/cjs/internal/stream.js +15 -7
  45. package/dist/cjs/internal/stream.js.map +1 -1
  46. package/dist/cjs/internal/version.js +1 -1
  47. package/dist/dts/Config.d.ts +13 -6
  48. package/dist/dts/Config.d.ts.map +1 -1
  49. package/dist/dts/Context.d.ts +1 -1
  50. package/dist/dts/Context.d.ts.map +1 -1
  51. package/dist/dts/Either.d.ts.map +1 -1
  52. package/dist/dts/Iterable.d.ts +7 -0
  53. package/dist/dts/Iterable.d.ts.map +1 -1
  54. package/dist/dts/Layer.d.ts +20 -0
  55. package/dist/dts/Layer.d.ts.map +1 -1
  56. package/dist/dts/Option.d.ts.map +1 -1
  57. package/dist/dts/Pool.d.ts +31 -0
  58. package/dist/dts/Pool.d.ts.map +1 -1
  59. package/dist/dts/Predicate.d.ts +57 -0
  60. package/dist/dts/Predicate.d.ts.map +1 -1
  61. package/dist/dts/Redacted.d.ts +68 -0
  62. package/dist/dts/Redacted.d.ts.map +1 -0
  63. package/dist/dts/STM.d.ts +4 -1
  64. package/dist/dts/STM.d.ts.map +1 -1
  65. package/dist/dts/Secret.d.ts +14 -1
  66. package/dist/dts/Secret.d.ts.map +1 -1
  67. package/dist/dts/Stream.d.ts +61 -4
  68. package/dist/dts/Stream.d.ts.map +1 -1
  69. package/dist/dts/Tuple.d.ts +51 -0
  70. package/dist/dts/Tuple.d.ts.map +1 -1
  71. package/dist/dts/Types.d.ts +46 -0
  72. package/dist/dts/Types.d.ts.map +1 -1
  73. package/dist/dts/Utils.d.ts +6 -5
  74. package/dist/dts/Utils.d.ts.map +1 -1
  75. package/dist/dts/index.d.ts +5 -0
  76. package/dist/dts/index.d.ts.map +1 -1
  77. package/dist/dts/internal/layer.d.ts +15 -1
  78. package/dist/dts/internal/layer.d.ts.map +1 -1
  79. package/dist/dts/internal/redacted.d.ts +2 -0
  80. package/dist/dts/internal/redacted.d.ts.map +1 -0
  81. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  82. package/dist/dts/internal/stream.d.ts +1 -0
  83. package/dist/dts/internal/stream.d.ts.map +1 -1
  84. package/dist/esm/Config.js +8 -0
  85. package/dist/esm/Config.js.map +1 -1
  86. package/dist/esm/Either.js +2 -1
  87. package/dist/esm/Either.js.map +1 -1
  88. package/dist/esm/Iterable.js +12 -0
  89. package/dist/esm/Iterable.js.map +1 -1
  90. package/dist/esm/Layer.js +10 -0
  91. package/dist/esm/Layer.js.map +1 -1
  92. package/dist/esm/Option.js +7 -1
  93. package/dist/esm/Option.js.map +1 -1
  94. package/dist/esm/Pool.js +26 -0
  95. package/dist/esm/Pool.js.map +1 -1
  96. package/dist/esm/Predicate.js +50 -0
  97. package/dist/esm/Predicate.js.map +1 -1
  98. package/dist/esm/Redacted.js +33 -0
  99. package/dist/esm/Redacted.js.map +1 -0
  100. package/dist/esm/STM.js.map +1 -1
  101. package/dist/esm/Secret.js +7 -0
  102. package/dist/esm/Secret.js.map +1 -1
  103. package/dist/esm/Stream.js +31 -0
  104. package/dist/esm/Stream.js.map +1 -1
  105. package/dist/esm/Tuple.js +51 -0
  106. package/dist/esm/Tuple.js.map +1 -1
  107. package/dist/esm/Utils.js.map +1 -1
  108. package/dist/esm/index.js +5 -0
  109. package/dist/esm/index.js.map +1 -1
  110. package/dist/esm/internal/cause.js +14 -18
  111. package/dist/esm/internal/cause.js.map +1 -1
  112. package/dist/esm/internal/clock.js +1 -1
  113. package/dist/esm/internal/clock.js.map +1 -1
  114. package/dist/esm/internal/config.js +6 -0
  115. package/dist/esm/internal/config.js.map +1 -1
  116. package/dist/esm/internal/layer.js +12 -0
  117. package/dist/esm/internal/layer.js.map +1 -1
  118. package/dist/esm/internal/pool.js +205 -235
  119. package/dist/esm/internal/pool.js.map +1 -1
  120. package/dist/esm/internal/redacted.js +52 -0
  121. package/dist/esm/internal/redacted.js.map +1 -0
  122. package/dist/esm/internal/secret.js +39 -22
  123. package/dist/esm/internal/secret.js.map +1 -1
  124. package/dist/esm/internal/stm/stm.js +2 -1
  125. package/dist/esm/internal/stm/stm.js.map +1 -1
  126. package/dist/esm/internal/stream.js +13 -4
  127. package/dist/esm/internal/stream.js.map +1 -1
  128. package/dist/esm/internal/version.js +1 -1
  129. package/package.json +9 -1
  130. package/src/Config.ts +15 -7
  131. package/src/Context.ts +1 -1
  132. package/src/Either.ts +4 -1
  133. package/src/Iterable.ts +13 -0
  134. package/src/Layer.ts +22 -0
  135. package/src/Option.ts +7 -1
  136. package/src/Pool.ts +39 -6
  137. package/src/Predicate.ts +59 -0
  138. package/src/Redacted.ts +79 -0
  139. package/src/STM.ts +7 -2
  140. package/src/Secret.ts +14 -1
  141. package/src/Stream.ts +67 -7
  142. package/src/Tuple.ts +53 -0
  143. package/src/Types.ts +48 -0
  144. package/src/Utils.ts +9 -6
  145. package/src/index.ts +6 -0
  146. package/src/internal/cause.ts +14 -17
  147. package/src/internal/clock.ts +1 -6
  148. package/src/internal/config.ts +11 -0
  149. package/src/internal/layer.ts +63 -0
  150. package/src/internal/pool.ts +320 -447
  151. package/src/internal/redacted.ts +69 -0
  152. package/src/internal/secret.ts +39 -28
  153. package/src/internal/stm/stm.ts +4 -1
  154. package/src/internal/stream.ts +111 -50
  155. package/src/internal/version.ts +1 -1
@@ -66,12 +66,24 @@ export declare const isPool: (u: unknown) => u is Pool<unknown, unknown>;
66
66
  * because the `Scope` is closed, the individual items allocated by the pool
67
67
  * will be released in some unspecified order.
68
68
  *
69
+ * By setting the `concurrency` parameter, you can control the level of concurrent
70
+ * access per pool item. By default, the number of permits is set to `1`.
71
+ *
72
+ * `targetUtilization` determines when to create new pool items. It is a value
73
+ * between 0 and 1, where 1 means only create new pool items when all the existing
74
+ * items are fully utilized.
75
+ *
76
+ * A `targetUtilization` of 0.5 will create new pool items when the existing items are
77
+ * 50% utilized.
78
+ *
69
79
  * @since 2.0.0
70
80
  * @category constructors
71
81
  */
72
82
  export declare const make: <A, E, R>(options: {
73
83
  readonly acquire: Effect.Effect<A, E, R>;
74
84
  readonly size: number;
85
+ readonly concurrency?: number | undefined;
86
+ readonly targetUtilization?: number | undefined;
75
87
  }) => Effect.Effect<Pool<A, E>, never, Scope.Scope | R>;
76
88
  /**
77
89
  * Makes a new pool with the specified minimum and maximum sizes and time to
@@ -81,6 +93,22 @@ export declare const make: <A, E, R>(options: {
81
93
  * used, the individual items allocated by the pool will be released in some
82
94
  * unspecified order.
83
95
  *
96
+ * By setting the `concurrency` parameter, you can control the level of concurrent
97
+ * access per pool item. By default, the number of permits is set to `1`.
98
+ *
99
+ * `targetUtilization` determines when to create new pool items. It is a value
100
+ * between 0 and 1, where 1 means only create new pool items when all the existing
101
+ * items are fully utilized.
102
+ *
103
+ * A `targetUtilization` of 0.5 will create new pool items when the existing items are
104
+ * 50% utilized.
105
+ *
106
+ * The `timeToLiveStrategy` determines how items are invalidated. If set to
107
+ * "creation", then items are invalidated based on their creation time. If set
108
+ * to "usage", then items are invalidated based on pool usage.
109
+ *
110
+ * By default, the `timeToLiveStrategy` is set to "usage".
111
+ *
84
112
  * ```ts
85
113
  * import { createConnection } from "mysql2";
86
114
  * import { Duration, Effect, Pool } from "effect"
@@ -108,7 +136,10 @@ export declare const makeWithTTL: <A, E, R>(options: {
108
136
  readonly acquire: Effect.Effect<A, E, R>;
109
137
  readonly min: number;
110
138
  readonly max: number;
139
+ readonly concurrency?: number | undefined;
140
+ readonly targetUtilization?: number | undefined;
111
141
  readonly timeToLive: Duration.DurationInput;
142
+ readonly timeToLiveStrategy?: "creation" | "usage" | undefined;
112
143
  }) => Effect.Effect<Pool<A, E>, never, Scope.Scope | R>;
113
144
  /**
114
145
  * Retrieves an item from the pool in a scoped effect. Note that if
@@ -1 +1 @@
1
- {"version":3,"file":"Pool.d.ts","sourceRoot":"","sources":["../../src/Pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pool.d.ts","sourceRoot":"","sources":["../../src/Pool.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { TypeLambda } from "./HKT.js";
2
+ import type { TupleOf, TupleOfAtLeast } from "./Types.js";
2
3
  /**
3
4
  * @category models
4
5
  * @since 2.0.0
@@ -43,6 +44,62 @@ export declare const mapInput: {
43
44
  <B, A>(f: (b: B) => A): (self: Predicate<A>) => Predicate<B>;
44
45
  <A, B>(self: Predicate<A>, f: (b: B) => A): Predicate<B>;
45
46
  };
47
+ /**
48
+ * Determine if an `Array` is a tuple with exactly `N` elements, narrowing down the type to `TupleOf`.
49
+ *
50
+ * An `Array` is considered to be a `TupleOf` if its length is exactly `N`.
51
+ *
52
+ * @param self - The `Array` to check.
53
+ * @param n - The exact number of elements that the `Array` should have to be considered a `TupleOf`.
54
+ *
55
+ * @example
56
+ * import { isTupleOf } from "effect/Predicate"
57
+ *
58
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 3), true);
59
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 2), false);
60
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 4), false);
61
+ *
62
+ * const arr: number[] = [1, 2, 3];
63
+ * if (isTupleOf(arr, 3)) {
64
+ * console.log(arr);
65
+ * // ^? [number, number, number]
66
+ * }
67
+ *
68
+ * @category guards
69
+ * @since 3.3.0
70
+ */
71
+ export declare const isTupleOf: {
72
+ <N extends number>(n: N): <T>(self: ReadonlyArray<T>) => self is TupleOf<N, T>;
73
+ <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOf<N, T>;
74
+ };
75
+ /**
76
+ * Determine if an `Array` is a tuple with at least `N` elements, narrowing down the type to `TupleOfAtLeast`.
77
+ *
78
+ * An `Array` is considered to be a `TupleOfAtLeast` if its length is at least `N`.
79
+ *
80
+ * @param self - The `Array` to check.
81
+ * @param n - The minimum number of elements that the `Array` should have to be considered a `TupleOfAtLeast`.
82
+ *
83
+ * @example
84
+ * import { isTupleOfAtLeast } from "effect/Predicate"
85
+ *
86
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 3), true);
87
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 2), true);
88
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 4), false);
89
+ *
90
+ * const arr: number[] = [1, 2, 3, 4];
91
+ * if (isTupleOfAtLeast(arr, 3)) {
92
+ * console.log(arr);
93
+ * // ^? [number, number, number, ...number[]]
94
+ * }
95
+ *
96
+ * @category guards
97
+ * @since 3.3.0
98
+ */
99
+ export declare const isTupleOfAtLeast: {
100
+ <N extends number>(n: N): <T>(self: ReadonlyArray<T>) => self is TupleOfAtLeast<N, T>;
101
+ <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOfAtLeast<N, T>;
102
+ };
46
103
  /**
47
104
  * Tests if a value is `truthy`.
48
105
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Predicate.d.ts","sourceRoot":"","sources":["../../src/Predicate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Predicate.d.ts","sourceRoot":"","sources":["../../src/Predicate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @since 3.3.0
3
+ */
4
+ import type * as Equal from "./Equal.js";
5
+ import * as Equivalence from "./Equivalence.js";
6
+ import type { Pipeable } from "./Pipeable.js";
7
+ import type { Covariant } from "./Types.js";
8
+ /**
9
+ * @since 3.3.0
10
+ * @category symbols
11
+ */
12
+ export declare const RedactedTypeId: unique symbol;
13
+ /**
14
+ * @since 3.3.0
15
+ * @category symbols
16
+ */
17
+ export type RedactedTypeId = typeof RedactedTypeId;
18
+ /**
19
+ * @since 3.3.0
20
+ * @category models
21
+ */
22
+ export interface Redacted<out A = string> extends Redacted.Variance<A>, Equal.Equal, Pipeable {
23
+ }
24
+ /**
25
+ * @since 3.3.0
26
+ */
27
+ export declare namespace Redacted {
28
+ /**
29
+ * @since 3.3.0
30
+ * @category models
31
+ */
32
+ interface Variance<out A> {
33
+ readonly [RedactedTypeId]: {
34
+ readonly _A: Covariant<A>;
35
+ };
36
+ }
37
+ /**
38
+ * @since 3.3.0
39
+ * @category type-level
40
+ */
41
+ type Value<T extends Redacted<any>> = [T] extends [Redacted<infer _A>] ? _A : never;
42
+ }
43
+ /**
44
+ * @since 3.3.0
45
+ * @category refinements
46
+ */
47
+ export declare const isRedacted: (u: unknown) => u is Redacted<unknown>;
48
+ /**
49
+ * @since 3.3.0
50
+ * @category constructors
51
+ */
52
+ export declare const make: <A>(value: A) => Redacted<A>;
53
+ /**
54
+ * @since 3.3.0
55
+ * @category getters
56
+ */
57
+ export declare const value: <A>(self: Redacted<A>) => A;
58
+ /**
59
+ * @since 3.3.0
60
+ * @category unsafe
61
+ */
62
+ export declare const unsafeWipe: <A>(self: Redacted<A>) => boolean;
63
+ /**
64
+ * @category equivalence
65
+ * @since 3.3.0
66
+ */
67
+ export declare const getEquivalence: <A>(isEquivalent: Equivalence.Equivalence<A>) => Equivalence.Equivalence<Redacted<A>>;
68
+ //# sourceMappingURL=Redacted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Redacted.d.ts","sourceRoot":"","sources":["../../src/Redacted.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,MAAiC,CAAA;AAErE;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAA;AAElD;;;GAGG;AACH,MAAM,WAAW,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ;CAC5F;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC;;;OAGG;IACH,UAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7B,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE;YACzB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAC1B,CAAA;KACF;IAED;;;OAGG;IACH,KAAY,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;CAC3F;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAwB,CAAA;AAEtF;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAkB,CAAA;AAEhE;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAmB,CAAA;AAEjE;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAA8B,CAAA;AAEjF;;;GAGG;AACH,eAAO,MAAM,cAAc,oBAAqB,YAAY,WAAW,CAAC,CAAC,CAAC,KAAG,YAAY,WAAW,CAAC,SAAS,CAAC,CAAC,CACrC,CAAA"}
package/dist/dts/STM.d.ts CHANGED
@@ -720,7 +720,10 @@ export interface Adapter {
720
720
  * @since 2.0.0
721
721
  * @category constructors
722
722
  */
723
- export declare const gen: <Eff extends YieldWrap<STM<any, any, any>>, AEff>(f: (resume: Adapter) => Generator<Eff, AEff, never>) => STM<AEff, [
723
+ export declare const gen: <Self, Eff extends YieldWrap<STM<any, any, any>>, AEff>(...args: [
724
+ self: Self,
725
+ body: (this: Self, resume: Adapter) => Generator<Eff, AEff, never>
726
+ ] | [body: (resume: Adapter) => Generator<Eff, AEff, never>]) => STM<AEff, [
724
727
  Eff
725
728
  ] extends [never] ? never : [Eff] extends [YieldWrap<STM<infer _A, infer E, infer _R>>] ? E : never, [
726
729
  Eff