effect 3.12.8 → 3.12.10

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 (42) hide show
  1. package/dist/cjs/Array.js +2 -3
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/Context.js.map +1 -1
  4. package/dist/cjs/Duration.js +3 -0
  5. package/dist/cjs/Duration.js.map +1 -1
  6. package/dist/cjs/Effect.js.map +1 -1
  7. package/dist/cjs/ParseResult.js +162 -169
  8. package/dist/cjs/ParseResult.js.map +1 -1
  9. package/dist/cjs/Schema.js +1 -1
  10. package/dist/cjs/Schema.js.map +1 -1
  11. package/dist/cjs/internal/version.js +1 -1
  12. package/dist/cjs/internal/version.js.map +1 -1
  13. package/dist/dts/Array.d.ts +34 -1
  14. package/dist/dts/Array.d.ts.map +1 -1
  15. package/dist/dts/Context.d.ts +4 -2
  16. package/dist/dts/Context.d.ts.map +1 -1
  17. package/dist/dts/Duration.d.ts.map +1 -1
  18. package/dist/dts/Effect.d.ts.map +1 -1
  19. package/dist/dts/ParseResult.d.ts.map +1 -1
  20. package/dist/dts/STM.d.ts +1 -1
  21. package/dist/dts/Schema.d.ts.map +1 -1
  22. package/dist/esm/Array.js +2 -2
  23. package/dist/esm/Array.js.map +1 -1
  24. package/dist/esm/Context.js.map +1 -1
  25. package/dist/esm/Duration.js +3 -0
  26. package/dist/esm/Duration.js.map +1 -1
  27. package/dist/esm/Effect.js.map +1 -1
  28. package/dist/esm/ParseResult.js +162 -169
  29. package/dist/esm/ParseResult.js.map +1 -1
  30. package/dist/esm/Schema.js +1 -1
  31. package/dist/esm/Schema.js.map +1 -1
  32. package/dist/esm/internal/version.js +1 -1
  33. package/dist/esm/internal/version.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/Array.ts +35 -2
  36. package/src/Context.ts +6 -2
  37. package/src/Duration.ts +3 -0
  38. package/src/Effect.ts +1 -1
  39. package/src/ParseResult.ts +172 -190
  40. package/src/STM.ts +1 -1
  41. package/src/Schema.ts +1 -1
  42. package/src/internal/version.ts +1 -1
@@ -1,4 +1,4 @@
1
- let moduleVersion = "3.12.8";
1
+ let moduleVersion = "3.12.10";
2
2
  export const getCurrentVersion = () => moduleVersion;
3
3
  export const setCurrentVersion = version => {
4
4
  moduleVersion = version;
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","names":["moduleVersion","getCurrentVersion","setCurrentVersion","version"],"sources":["../../../src/internal/version.ts"],"sourcesContent":[null],"mappings":"AAAA,IAAIA,aAAa,GAAG,QAAQ;AAE5B,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAMD,aAAa;AAEpD,OAAO,MAAME,iBAAiB,GAAIC,OAAe,IAAI;EACnDH,aAAa,GAAGG,OAAO;AACzB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"version.js","names":["moduleVersion","getCurrentVersion","setCurrentVersion","version"],"sources":["../../../src/internal/version.ts"],"sourcesContent":[null],"mappings":"AAAA,IAAIA,aAAa,GAAG,SAAS;AAE7B,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAMD,aAAa;AAEpD,OAAO,MAAME,iBAAiB,GAAIC,OAAe,IAAI;EACnDH,aAAa,GAAGG,OAAO;AACzB,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect",
3
- "version": "3.12.8",
3
+ "version": "3.12.10",
4
4
  "description": "The missing standard library for TypeScript, for writing production-grade software.",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/Array.ts CHANGED
@@ -92,14 +92,47 @@ export const allocate = <A = never>(n: number): Array<A | undefined> => new Arra
92
92
  * @category constructors
93
93
  * @since 2.0.0
94
94
  */
95
- export const makeBy = <A>(n: number, f: (i: number) => A): NonEmptyArray<A> => {
95
+ export const makeBy: {
96
+ /**
97
+ * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`.
98
+ *
99
+ * **Note**. `n` is normalized to an integer >= 1.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * import { makeBy } from "effect/Array"
104
+ *
105
+ * assert.deepStrictEqual(makeBy(5, n => n * 2), [0, 2, 4, 6, 8])
106
+ * ```
107
+ *
108
+ * @category constructors
109
+ * @since 2.0.0
110
+ */
111
+ <A>(f: (i: number) => A): (n: number) => NonEmptyArray<A>
112
+ /**
113
+ * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`.
114
+ *
115
+ * **Note**. `n` is normalized to an integer >= 1.
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * import { makeBy } from "effect/Array"
120
+ *
121
+ * assert.deepStrictEqual(makeBy(5, n => n * 2), [0, 2, 4, 6, 8])
122
+ * ```
123
+ *
124
+ * @category constructors
125
+ * @since 2.0.0
126
+ */
127
+ <A>(n: number, f: (i: number) => A): NonEmptyArray<A>
128
+ } = dual(2, <A>(n: number, f: (i: number) => A) => {
96
129
  const max = Math.max(1, Math.floor(n))
97
130
  const out = new Array(max)
98
131
  for (let i = 0; i < max; i++) {
99
132
  out[i] = f(i)
100
133
  }
101
134
  return out as NonEmptyArray<A>
102
- }
135
+ })
103
136
 
104
137
  /**
105
138
  * Return a `NonEmptyArray` containing a range of integers, including both endpoints.
package/src/Context.ts CHANGED
@@ -87,20 +87,24 @@ export interface TagClassShape<Id, Shape> {
87
87
  readonly Id: Id
88
88
  }
89
89
 
90
+ // TODO(4.0): move key narrowing to the Tag interface
90
91
  /**
91
92
  * @since 2.0.0
92
93
  * @category models
93
94
  */
94
- export interface TagClass<Self, Id, Type> extends Tag<Self, Type> {
95
+ export interface TagClass<Self, Id extends string, Type> extends Tag<Self, Type> {
95
96
  new(_: never): TagClassShape<Id, Type>
97
+ readonly key: Id
96
98
  }
97
99
 
100
+ // TODO(4.0): move key narrowing to the Reference interface
98
101
  /**
99
102
  * @since 3.11.0
100
103
  * @category models
101
104
  */
102
- export interface ReferenceClass<Self, Id, Type> extends Reference<Self, Type> {
105
+ export interface ReferenceClass<Self, Id extends string, Type> extends Reference<Self, Type> {
103
106
  new(_: never): TagClassShape<Id, Type>
107
+ readonly key: Id
104
108
  }
105
109
 
106
110
  /**
package/src/Duration.ts CHANGED
@@ -961,6 +961,9 @@ export const format = (self: DurationInput): string => {
961
961
  if (duration.value._tag === "Infinity") {
962
962
  return "Infinity"
963
963
  }
964
+ if (isZero(duration)) {
965
+ return "0"
966
+ }
964
967
 
965
968
  const fragments = parts(duration)
966
969
  const pieces = []
package/src/Effect.ts CHANGED
@@ -2893,7 +2893,7 @@ export const forEach: {
2893
2893
  readonly concurrentFinalizers?: boolean | undefined
2894
2894
  }
2895
2895
  ): Effect<void, E, R>
2896
- } = fiberRuntime.forEach as any
2896
+ } = fiberRuntime.forEach
2897
2897
 
2898
2898
  /**
2899
2899
  * Returns the first element of the iterable if the collection is non-empty, or