@evolu/common 6.0.1-preview.32 → 6.0.1-preview.33

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.
@@ -1,56 +1,157 @@
1
1
  /**
2
- * 🔒 Immutable, type-safe array operations
2
+ * 🔒 Immutable, type-safe array helpers
3
3
  *
4
- * Helpers that preserve immutability through the type system. Native array
5
- * methods return mutable arrays even when called on readonly arrays. These
6
- * helpers ensure transformations return readonly types.
4
+ * Array types, guards, operations, transformations, accessors, and mutations.
7
5
  *
8
- * {@link NonEmptyArray} and {@link NonEmptyReadonlyArray} types represent arrays
9
- * with at least one element, eliminating runtime length checks and making
10
- * function requirements explicit.
6
+ * Prepared for TC39 Hack pipes:
7
+ *
8
+ * ```ts
9
+ * // Problem: nested calls are hard to follow
10
+ * const result = firstInArray(
11
+ * mapArray(dedupeArray(appendToArray(value, 2)), (x) => x * 2),
12
+ * );
13
+ *
14
+ * // Ideal: TC39 Hack pipes (when available)
15
+ * // const result = value
16
+ * // |> appendToArray(%, 2)
17
+ * // |> dedupeArray(%)
18
+ * // |> mapArray(%, (x) => x * 2)
19
+ * // |> firstInArray(%);
20
+ *
21
+ * // Pragmatic: name each step (or use p1, p2 if lazy)
22
+ * const p1 = appendToArray(value, 2);
23
+ * const p2 = dedupeArray(p1);
24
+ * const p3 = mapArray(p2, (x) => x * 2);
25
+ * const p4 = firstInArray(p3);
26
+ * ```
27
+ *
28
+ * Of course it's possible to use array instance methods, but they mutate and do
29
+ * not preserve {@link NonEmptyArray} and {@link NonEmptyReadonlyArray} types.
11
30
  *
12
31
  * ### Example
13
32
  *
14
33
  * ```ts
15
- * // Native methods return mutable arrays
34
+ * // Types - compile-time guarantee of at least one element
35
+ * const _valid: NonEmptyReadonlyArray<number> = [1, 2, 3];
36
+ * // ts-expect-error - empty array is not a valid NonEmptyReadonlyArray
37
+ * const _invalid: NonEmptyReadonlyArray<number> = [];
38
+ *
39
+ * // Guards
40
+ * const arr: ReadonlyArray<number> = [1, 2, 3];
41
+ * if (isNonEmptyReadonlyArray(arr)) {
42
+ * firstInArray(arr);
43
+ * }
44
+ *
45
+ * // Operations
46
+ * const appended = appendToArray([1, 2, 3], 4); // [1, 2, 3, 4]
47
+ * const prepended = prependToArray([2, 3], 1); // [1, 2, 3]
48
+ *
49
+ * // Transformations
16
50
  * const readonly: ReadonlyArray<number> = [1, 2, 3];
17
- * const mapped = readonly.map((x) => x * 2); // Array<number> (mutable!)
18
- *
19
- * // Helpers preserve immutability
20
- * const filtered = filterArray(readonly, (x) => x > 1); // ReadonlyArray<number>
21
- *
22
- * // NonEmptyArray enforces non-emptiness
23
- * const value = firstInArray(["a", "b"]); // "a"
24
- * firstInArray([]); // ❌ Compiler error
51
+ * const mapped = mapArray(readonly, (x) => x * 2); // [2, 4, 6]
52
+ * const filtered = filterArray(readonly, (x) => x > 1); // [2, 3]
53
+ * const deduped = dedupeArray([1, 2, 1, 3, 2]); // [1, 2, 3]
54
+ *
55
+ * // Accessors
56
+ * const first = firstInArray(["a", "b", "c"]); // "a"
57
+ * const last = lastInArray(["a", "b", "c"]); // "c"
58
+ *
59
+ * // Mutations
60
+ * const mutable: NonEmptyArray<number> = [1, 2, 3];
61
+ * shiftArray(mutable); // 1 (guaranteed to exist)
62
+ * mutable; // [2, 3]
25
63
  * ```
26
64
  *
27
65
  * @module
28
66
  */
29
- /** An array with at least one element. */
67
+ /**
68
+ * An array with at least one element.
69
+ *
70
+ * @category Types
71
+ */
30
72
  export type NonEmptyArray<T> = [T, ...Array<T>];
31
- /** Checks if an array is non-empty. */
32
- export declare const isNonEmptyArray: <T>(array: Array<T>) => array is NonEmptyArray<T>;
33
- /** A readonly array with at least one element. */
73
+ /**
74
+ * A readonly array with at least one element.
75
+ *
76
+ * @category Types
77
+ */
34
78
  export type NonEmptyReadonlyArray<T> = readonly [T, ...ReadonlyArray<T>];
35
- /** Checks if an array is non-empty. */
79
+ /**
80
+ * Checks if an array is non-empty and narrows its type to {@link NonEmptyArray}.
81
+ *
82
+ * Use `if (!isNonEmptyArray(arr))` for empty checks.
83
+ *
84
+ * ### Example
85
+ *
86
+ * ```ts
87
+ * const arr: Array<number> = [1, 2, 3];
88
+ * if (isNonEmptyArray(arr)) {
89
+ * firstInArray(arr); // arr is NonEmptyArray<number>
90
+ * }
91
+ * ```
92
+ *
93
+ * @category Type Guards
94
+ */
95
+ export declare const isNonEmptyArray: <T>(array: Array<T>) => array is NonEmptyArray<T>;
96
+ /**
97
+ * Checks if a readonly array is non-empty and narrows its type to
98
+ * {@link NonEmptyReadonlyArray}.
99
+ *
100
+ * Use `if (!isNonEmptyReadonlyArray(arr))` for empty checks.
101
+ *
102
+ * ### Example
103
+ *
104
+ * ```ts
105
+ * const arr: ReadonlyArray<number> = [1, 2, 3];
106
+ * if (isNonEmptyReadonlyArray(arr)) {
107
+ * firstInArray(arr); // arr is NonEmptyReadonlyArray<number>
108
+ * }
109
+ * ```
110
+ *
111
+ * @category Type Guards
112
+ */
36
113
  export declare const isNonEmptyReadonlyArray: <T>(array: ReadonlyArray<T>) => array is NonEmptyReadonlyArray<T>;
37
114
  /**
38
115
  * Appends an item to an array, returning a new non-empty readonly array.
39
116
  *
40
117
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
118
+ *
119
+ * ### Example
120
+ *
121
+ * ```ts
122
+ * appendToArray([1, 2, 3], 4); // [1, 2, 3, 4]
123
+ * ```
124
+ *
125
+ * @category Operations
41
126
  */
42
- export declare const appendToArray: <T>(item: T, array: ReadonlyArray<T>) => NonEmptyReadonlyArray<T>;
127
+ export declare const appendToArray: <T>(array: ReadonlyArray<T>, item: T) => NonEmptyReadonlyArray<T>;
43
128
  /**
44
129
  * Prepends an item to an array, returning a new non-empty readonly array.
45
130
  *
46
131
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
132
+ *
133
+ * ### Example
134
+ *
135
+ * ```ts
136
+ * prependToArray([2, 3], 1); // [1, 2, 3]
137
+ * ```
138
+ *
139
+ * @category Operations
47
140
  */
48
- export declare const prependToArray: <T>(item: T, array: ReadonlyArray<T>) => NonEmptyReadonlyArray<T>;
141
+ export declare const prependToArray: <T>(array: ReadonlyArray<T>, item: T) => NonEmptyReadonlyArray<T>;
49
142
  /**
50
- * Maps an array using a mapper function, preserving non-emptiness when
51
- * applicable.
143
+ * Maps an array using a mapper function.
52
144
  *
53
145
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
146
+ * Preserves non-empty type.
147
+ *
148
+ * ### Example
149
+ *
150
+ * ```ts
151
+ * mapArray([1, 2, 3], (x) => x * 2); // [2, 4, 6]
152
+ * ```
153
+ *
154
+ * @category Transformations
54
155
  */
55
156
  export declare function mapArray<T, U>(array: NonEmptyReadonlyArray<T> | NonEmptyArray<T>, mapper: (item: T, index: number) => U): NonEmptyReadonlyArray<U>;
56
157
  export declare function mapArray<T, U>(array: ReadonlyArray<T> | Array<T>, mapper: (item: T, index: number) => U): ReadonlyArray<U>;
@@ -58,37 +159,88 @@ export declare function mapArray<T, U>(array: ReadonlyArray<T> | Array<T>, mappe
58
159
  * Filters an array using a predicate function, returning a new readonly array.
59
160
  *
60
161
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
162
+ *
163
+ * ### Example
164
+ *
165
+ * ```ts
166
+ * filterArray([1, 2, 3, 4, 5], (x) => x % 2 === 0); // [2, 4]
167
+ * ```
168
+ *
169
+ * @category Transformations
61
170
  */
62
171
  export declare const filterArray: <T>(array: ReadonlyArray<T>, predicate: (item: T, index: number) => boolean) => ReadonlyArray<T>;
63
172
  /**
64
- * Shifts an item from a non-empty mutable array, guaranteed to return T.
173
+ * Returns a new readonly array with duplicate items removed. If `by` is
174
+ * provided, it will be used to derive the key for uniqueness; otherwise values
175
+ * are used directly. Dedupes by reference equality of values (or extracted keys
176
+ * when `by` is used).
177
+ *
178
+ * Accepts both mutable and readonly arrays. Does not mutate the original array.
179
+ * Preserves non-empty type.
65
180
  *
66
- * **Mutates** the original array. Use only with mutable arrays.
181
+ * ### Example
182
+ *
183
+ * ```ts
184
+ * // Dedupe primitives by value
185
+ * dedupeArray([1, 2, 1, 3, 2]); // [1, 2, 3]
186
+ *
187
+ * // Dedupe objects by property
188
+ * dedupeArray(
189
+ * [
190
+ * { id: 1, name: "Alice" },
191
+ * { id: 2, name: "Bob" },
192
+ * { id: 1, name: "Alice 2" },
193
+ * ],
194
+ * (item) => item.id,
195
+ * ); // [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }]
196
+ * ```
197
+ *
198
+ * @category Transformations
67
199
  */
68
- export declare const shiftArray: <T>(array: NonEmptyArray<T>) => T;
200
+ export declare function dedupeArray<T>(array: NonEmptyReadonlyArray<T> | NonEmptyArray<T>, by?: (item: T) => unknown): NonEmptyReadonlyArray<T>;
201
+ export declare function dedupeArray<T>(array: ReadonlyArray<T> | Array<T>, by?: (item: T) => unknown): ReadonlyArray<T>;
69
202
  /**
70
- * Returns the first element of a non-empty readonly array.
203
+ * Returns the first element of a non-empty array.
204
+ *
205
+ * Accepts both mutable and readonly arrays. Does not mutate the original array.
71
206
  *
72
- * Does not mutate the original array.
207
+ * ### Example
208
+ *
209
+ * ```ts
210
+ * firstInArray(["a", "b", "c"]); // "a"
211
+ * ```
212
+ *
213
+ * @category Accessors
73
214
  */
74
215
  export declare const firstInArray: <T>(array: NonEmptyReadonlyArray<T>) => T;
75
216
  /**
76
- * Returns the last element of a non-empty readonly array.
217
+ * Returns the last element of a non-empty array.
218
+ *
219
+ * Accepts both mutable and readonly arrays. Does not mutate the original array.
220
+ *
221
+ * ### Example
222
+ *
223
+ * ```ts
224
+ * lastInArray(["a", "b", "c"]); // "c"
225
+ * ```
77
226
  *
78
- * Does not mutate the original array.
227
+ * @category Accessors
79
228
  */
80
229
  export declare const lastInArray: <T>(array: NonEmptyReadonlyArray<T>) => T;
81
230
  /**
82
- * Returns a new readonly array with duplicate items removed based on a key
83
- * extractor function. Preserves the first occurrence of each distinct key.
231
+ * Shifts an item from a non-empty mutable array, guaranteed to return T.
84
232
  *
85
- * Accepts both mutable and readonly arrays. Does not mutate the original array.
86
- */
87
- /**
88
- * Deduplicates items in an array. If `by` is provided, it will be used to
89
- * derive the key for uniqueness; otherwise values are used directly.
233
+ * **Mutates** the original array.
90
234
  *
91
- * Returns a new readonly array and does not mutate the input.
235
+ * ### Example
236
+ *
237
+ * ```ts
238
+ * const arr: NonEmptyArray<number> = [1, 2, 3];
239
+ * shiftArray(arr); // 1
240
+ * arr; // [2, 3]
241
+ * ```
242
+ *
243
+ * @category Mutations
92
244
  */
93
- export declare const dedupeArray: <T>(array: ReadonlyArray<T>, by?: (item: T) => unknown) => ReadonlyArray<T>;
245
+ export declare const shiftArray: <T>(array: NonEmptyArray<T>) => T;
94
246
  //# sourceMappingURL=Array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../src/Array.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhD,uCAAuC;AACvC,eAAO,MAAM,eAAe,GAAI,CAAC,EAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,KACd,KAAK,IAAI,aAAa,CAAC,CAAC,CAAqB,CAAC;AAEjD,kDAAkD;AAClD,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzE,uCAAuC;AACvC,eAAO,MAAM,uBAAuB,GAAI,CAAC,EACvC,OAAO,aAAa,CAAC,CAAC,CAAC,KACtB,KAAK,IAAI,qBAAqB,CAAC,CAAC,CAAqB,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,MAAM,CAAC,EACP,OAAO,aAAa,CAAC,CAAC,CAAC,KACtB,qBAAqB,CAAC,CAAC,CACwC,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAC9B,MAAM,CAAC,EACP,OAAO,aAAa,CAAC,CAAC,CAAC,KACtB,qBAAqB,CAAC,CAAC,CAAiD,CAAC;AAE5E;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAC3B,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAClD,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GACpC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC5B,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAC3B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAClC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GACpC,aAAa,CAAC,CAAC,CAAC,CAAC;AAQpB;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,OAAO,aAAa,CAAC,CAAC,CAAC,EACvB,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,KAC7C,aAAa,CAAC,CAAC,CAAgD,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,KAAG,CAAuB,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,OAAO,qBAAqB,CAAC,CAAC,CAAC,KAAG,CAAa,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,OAAO,qBAAqB,CAAC,CAAC,CAAC,KAAG,CACxC,CAAC;AAE1B;;;;;GAKG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,OAAO,aAAa,CAAC,CAAC,CAAC,EACvB,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,KACxB,aAAa,CAAC,CAAC,CAYjB,CAAC"}
1
+ {"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../src/Array.ts"],"names":[],"mappings":"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"}
package/dist/src/Array.js CHANGED
@@ -1,47 +1,132 @@
1
1
  /**
2
- * 🔒 Immutable, type-safe array operations
2
+ * 🔒 Immutable, type-safe array helpers
3
3
  *
4
- * Helpers that preserve immutability through the type system. Native array
5
- * methods return mutable arrays even when called on readonly arrays. These
6
- * helpers ensure transformations return readonly types.
4
+ * Array types, guards, operations, transformations, accessors, and mutations.
7
5
  *
8
- * {@link NonEmptyArray} and {@link NonEmptyReadonlyArray} types represent arrays
9
- * with at least one element, eliminating runtime length checks and making
10
- * function requirements explicit.
6
+ * Prepared for TC39 Hack pipes:
7
+ *
8
+ * ```ts
9
+ * // Problem: nested calls are hard to follow
10
+ * const result = firstInArray(
11
+ * mapArray(dedupeArray(appendToArray(value, 2)), (x) => x * 2),
12
+ * );
13
+ *
14
+ * // Ideal: TC39 Hack pipes (when available)
15
+ * // const result = value
16
+ * // |> appendToArray(%, 2)
17
+ * // |> dedupeArray(%)
18
+ * // |> mapArray(%, (x) => x * 2)
19
+ * // |> firstInArray(%);
20
+ *
21
+ * // Pragmatic: name each step (or use p1, p2 if lazy)
22
+ * const p1 = appendToArray(value, 2);
23
+ * const p2 = dedupeArray(p1);
24
+ * const p3 = mapArray(p2, (x) => x * 2);
25
+ * const p4 = firstInArray(p3);
26
+ * ```
27
+ *
28
+ * Of course it's possible to use array instance methods, but they mutate and do
29
+ * not preserve {@link NonEmptyArray} and {@link NonEmptyReadonlyArray} types.
11
30
  *
12
31
  * ### Example
13
32
  *
14
33
  * ```ts
15
- * // Native methods return mutable arrays
34
+ * // Types - compile-time guarantee of at least one element
35
+ * const _valid: NonEmptyReadonlyArray<number> = [1, 2, 3];
36
+ * // ts-expect-error - empty array is not a valid NonEmptyReadonlyArray
37
+ * const _invalid: NonEmptyReadonlyArray<number> = [];
38
+ *
39
+ * // Guards
40
+ * const arr: ReadonlyArray<number> = [1, 2, 3];
41
+ * if (isNonEmptyReadonlyArray(arr)) {
42
+ * firstInArray(arr);
43
+ * }
44
+ *
45
+ * // Operations
46
+ * const appended = appendToArray([1, 2, 3], 4); // [1, 2, 3, 4]
47
+ * const prepended = prependToArray([2, 3], 1); // [1, 2, 3]
48
+ *
49
+ * // Transformations
16
50
  * const readonly: ReadonlyArray<number> = [1, 2, 3];
17
- * const mapped = readonly.map((x) => x * 2); // Array<number> (mutable!)
51
+ * const mapped = mapArray(readonly, (x) => x * 2); // [2, 4, 6]
52
+ * const filtered = filterArray(readonly, (x) => x > 1); // [2, 3]
53
+ * const deduped = dedupeArray([1, 2, 1, 3, 2]); // [1, 2, 3]
18
54
  *
19
- * // ✅ Helpers preserve immutability
20
- * const filtered = filterArray(readonly, (x) => x > 1); // ReadonlyArray<number>
55
+ * // Accessors
56
+ * const first = firstInArray(["a", "b", "c"]); // "a"
57
+ * const last = lastInArray(["a", "b", "c"]); // "c"
21
58
  *
22
- * // ✅ NonEmptyArray enforces non-emptiness
23
- * const value = firstInArray(["a", "b"]); // "a"
24
- * firstInArray([]); // Compiler error
59
+ * // Mutations
60
+ * const mutable: NonEmptyArray<number> = [1, 2, 3];
61
+ * shiftArray(mutable); // 1 (guaranteed to exist)
62
+ * mutable; // [2, 3]
25
63
  * ```
26
64
  *
27
65
  * @module
28
66
  */
29
- /** Checks if an array is non-empty. */
67
+ /**
68
+ * Checks if an array is non-empty and narrows its type to {@link NonEmptyArray}.
69
+ *
70
+ * Use `if (!isNonEmptyArray(arr))` for empty checks.
71
+ *
72
+ * ### Example
73
+ *
74
+ * ```ts
75
+ * const arr: Array<number> = [1, 2, 3];
76
+ * if (isNonEmptyArray(arr)) {
77
+ * firstInArray(arr); // arr is NonEmptyArray<number>
78
+ * }
79
+ * ```
80
+ *
81
+ * @category Type Guards
82
+ */
30
83
  export const isNonEmptyArray = (array) => array.length > 0;
31
- /** Checks if an array is non-empty. */
84
+ /**
85
+ * Checks if a readonly array is non-empty and narrows its type to
86
+ * {@link NonEmptyReadonlyArray}.
87
+ *
88
+ * Use `if (!isNonEmptyReadonlyArray(arr))` for empty checks.
89
+ *
90
+ * ### Example
91
+ *
92
+ * ```ts
93
+ * const arr: ReadonlyArray<number> = [1, 2, 3];
94
+ * if (isNonEmptyReadonlyArray(arr)) {
95
+ * firstInArray(arr); // arr is NonEmptyReadonlyArray<number>
96
+ * }
97
+ * ```
98
+ *
99
+ * @category Type Guards
100
+ */
32
101
  export const isNonEmptyReadonlyArray = (array) => array.length > 0;
33
102
  /**
34
103
  * Appends an item to an array, returning a new non-empty readonly array.
35
104
  *
36
105
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
106
+ *
107
+ * ### Example
108
+ *
109
+ * ```ts
110
+ * appendToArray([1, 2, 3], 4); // [1, 2, 3, 4]
111
+ * ```
112
+ *
113
+ * @category Operations
37
114
  */
38
- export const appendToArray = (item, array) => [...array, item];
115
+ export const appendToArray = (array, item) => [...array, item];
39
116
  /**
40
117
  * Prepends an item to an array, returning a new non-empty readonly array.
41
118
  *
42
119
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
120
+ *
121
+ * ### Example
122
+ *
123
+ * ```ts
124
+ * prependToArray([2, 3], 1); // [1, 2, 3]
125
+ * ```
126
+ *
127
+ * @category Operations
43
128
  */
44
- export const prependToArray = (item, array) => [item, ...array];
129
+ export const prependToArray = (array, item) => [item, ...array];
45
130
  export function mapArray(array, mapper) {
46
131
  return array.map(mapper);
47
132
  }
@@ -49,39 +134,17 @@ export function mapArray(array, mapper) {
49
134
  * Filters an array using a predicate function, returning a new readonly array.
50
135
  *
51
136
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
52
- */
53
- export const filterArray = (array, predicate) => array.filter(predicate);
54
- /**
55
- * Shifts an item from a non-empty mutable array, guaranteed to return T.
56
- *
57
- * **Mutates** the original array. Use only with mutable arrays.
58
- */
59
- export const shiftArray = (array) => array.shift();
60
- /**
61
- * Returns the first element of a non-empty readonly array.
62
137
  *
63
- * Does not mutate the original array.
64
- */
65
- export const firstInArray = (array) => array[0];
66
- /**
67
- * Returns the last element of a non-empty readonly array.
68
- *
69
- * Does not mutate the original array.
70
- */
71
- export const lastInArray = (array) => array[array.length - 1];
72
- /**
73
- * Returns a new readonly array with duplicate items removed based on a key
74
- * extractor function. Preserves the first occurrence of each distinct key.
138
+ * ### Example
75
139
  *
76
- * Accepts both mutable and readonly arrays. Does not mutate the original array.
77
- */
78
- /**
79
- * Deduplicates items in an array. If `by` is provided, it will be used to
80
- * derive the key for uniqueness; otherwise values are used directly.
140
+ * ```ts
141
+ * filterArray([1, 2, 3, 4, 5], (x) => x % 2 === 0); // [2, 4]
142
+ * ```
81
143
  *
82
- * Returns a new readonly array and does not mutate the input.
144
+ * @category Transformations
83
145
  */
84
- export const dedupeArray = (array, by) => {
146
+ export const filterArray = (array, predicate) => array.filter(predicate);
147
+ export function dedupeArray(array, by) {
85
148
  if (by == null) {
86
149
  return Array.from(new Set(array));
87
150
  }
@@ -93,4 +156,48 @@ export const dedupeArray = (array, by) => {
93
156
  seen.add(key);
94
157
  return true;
95
158
  });
96
- };
159
+ }
160
+ /**
161
+ * Returns the first element of a non-empty array.
162
+ *
163
+ * Accepts both mutable and readonly arrays. Does not mutate the original array.
164
+ *
165
+ * ### Example
166
+ *
167
+ * ```ts
168
+ * firstInArray(["a", "b", "c"]); // "a"
169
+ * ```
170
+ *
171
+ * @category Accessors
172
+ */
173
+ export const firstInArray = (array) => array[0];
174
+ /**
175
+ * Returns the last element of a non-empty array.
176
+ *
177
+ * Accepts both mutable and readonly arrays. Does not mutate the original array.
178
+ *
179
+ * ### Example
180
+ *
181
+ * ```ts
182
+ * lastInArray(["a", "b", "c"]); // "c"
183
+ * ```
184
+ *
185
+ * @category Accessors
186
+ */
187
+ export const lastInArray = (array) => array[array.length - 1];
188
+ /**
189
+ * Shifts an item from a non-empty mutable array, guaranteed to return T.
190
+ *
191
+ * **Mutates** the original array.
192
+ *
193
+ * ### Example
194
+ *
195
+ * ```ts
196
+ * const arr: NonEmptyArray<number> = [1, 2, 3];
197
+ * shiftArray(arr); // 1
198
+ * arr; // [2, 3]
199
+ * ```
200
+ *
201
+ * @category Mutations
202
+ */
203
+ export const shiftArray = (array) => array.shift();
@@ -128,10 +128,9 @@ export declare const maxNodeId: NodeId;
128
128
  * queue:
129
129
  *
130
130
  * 1. Write changes immediately to a local-only table
131
- * 2. Periodically/randomly flush messages to sync tables
132
- * 3. This decouples user activity from sync timing
131
+ * 2. Periodically and randomly flush messages to sync tables
133
132
  *
134
- * Tradeoff: It breaks real-time collaboration.
133
+ * **Trade-off:** It breaks real-time collaboration.
135
134
  */
136
135
  export declare const Timestamp: import("../Type.js").ObjectType<{
137
136
  millis: import("../Type.js").BrandType<import("../Type.js").BrandType<import("../Type.js").Type<"Brand", number & Brand<"Int"> & Brand<"NonNegative">, number, import("../Type.js").NonNegativeError, number & Brand<"Int">, import("../Type.js").IntError | import("../Type.js").NumberError>, `LessThanOrEqualTo${number}`, import("../Type.js").LessThanOrEqualToError<number>, import("../Type.js").NonNegativeError | import("../Type.js").IntError | import("../Type.js").NumberError>, "Millis", import("../Type.js").BrandWithoutRefineError<"Millis", import("../Type.js").NonNegativeError | import("../Type.js").IntError | import("../Type.js").NumberError | import("../Type.js").LessThanOrEqualToError<number>>, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../src/Evolu/Timestamp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../src/Evolu/Timestamp.ts"],"names":[],"mappings":"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"}
@@ -103,10 +103,9 @@ export const maxNodeId = "ffffffffffffffff";
103
103
  * queue:
104
104
  *
105
105
  * 1. Write changes immediately to a local-only table
106
- * 2. Periodically/randomly flush messages to sync tables
107
- * 3. This decouples user activity from sync timing
106
+ * 2. Periodically and randomly flush messages to sync tables
108
107
  *
109
- * Tradeoff: It breaks real-time collaboration.
108
+ * **Trade-off:** It breaks real-time collaboration.
110
109
  */
111
110
  export const Timestamp = object({
112
111
  millis: Millis,
@@ -15,13 +15,17 @@
15
15
  * messages.
16
16
  * - **Consistent constraints via {@link Brand}** – every constraint becomes part
17
17
  * of the type.
18
- * - **No user-land chaining DSL** – designed with the upcoming ES pipe operator
19
- * in mind.
20
18
  * - **Selective validation** – parent validations are skipped when already proved
21
19
  * by typing.
22
20
  * - **Simple, top-down implementation** – readable source code from top to bottom
23
21
  * with no hidden magic; just plain functions and composition.
24
22
  *
23
+ * TODO: Refactor Type factories and composition for Hack pipes compatibility.
24
+ * Currently, brand factories like `minLength(min)(Type)` use constraint-first
25
+ * currying. For optimal Hack pipe support, these should be refactored to
26
+ * `minLength(Type, min)` to enable: `Type |> minLength(%, 1) |> maxLength(%,
27
+ * 100)`
28
+ *
25
29
  * ### Base Types Quick Start
26
30
  *
27
31
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../src/Type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../src/Type.ts"],"names":[],"mappings":"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"}
package/dist/src/Type.js CHANGED
@@ -15,13 +15,17 @@
15
15
  * messages.
16
16
  * - **Consistent constraints via {@link Brand}** – every constraint becomes part
17
17
  * of the type.
18
- * - **No user-land chaining DSL** – designed with the upcoming ES pipe operator
19
- * in mind.
20
18
  * - **Selective validation** – parent validations are skipped when already proved
21
19
  * by typing.
22
20
  * - **Simple, top-down implementation** – readable source code from top to bottom
23
21
  * with no hidden magic; just plain functions and composition.
24
22
  *
23
+ * TODO: Refactor Type factories and composition for Hack pipes compatibility.
24
+ * Currently, brand factories like `minLength(min)(Type)` use constraint-first
25
+ * currying. For optimal Hack pipe support, these should be refactored to
26
+ * `minLength(Type, min)` to enable: `Type |> minLength(%, 1) |> maxLength(%,
27
+ * 100)`
28
+ *
25
29
  * ### Base Types Quick Start
26
30
  *
27
31
  * ```ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evolu/common",
3
- "version": "6.0.1-preview.32",
3
+ "version": "6.0.1-preview.33",
4
4
  "description": "TypeScript library and local-first framework",
5
5
  "keywords": [
6
6
  "evolu",
package/src/Array.ts CHANGED
@@ -1,44 +1,121 @@
1
1
  /**
2
- * 🔒 Immutable, type-safe array operations
2
+ * 🔒 Immutable, type-safe array helpers
3
3
  *
4
- * Helpers that preserve immutability through the type system. Native array
5
- * methods return mutable arrays even when called on readonly arrays. These
6
- * helpers ensure transformations return readonly types.
4
+ * Array types, guards, operations, transformations, accessors, and mutations.
7
5
  *
8
- * {@link NonEmptyArray} and {@link NonEmptyReadonlyArray} types represent arrays
9
- * with at least one element, eliminating runtime length checks and making
10
- * function requirements explicit.
6
+ * Prepared for TC39 Hack pipes:
7
+ *
8
+ * ```ts
9
+ * // Problem: nested calls are hard to follow
10
+ * const result = firstInArray(
11
+ * mapArray(dedupeArray(appendToArray(value, 2)), (x) => x * 2),
12
+ * );
13
+ *
14
+ * // Ideal: TC39 Hack pipes (when available)
15
+ * // const result = value
16
+ * // |> appendToArray(%, 2)
17
+ * // |> dedupeArray(%)
18
+ * // |> mapArray(%, (x) => x * 2)
19
+ * // |> firstInArray(%);
20
+ *
21
+ * // Pragmatic: name each step (or use p1, p2 if lazy)
22
+ * const p1 = appendToArray(value, 2);
23
+ * const p2 = dedupeArray(p1);
24
+ * const p3 = mapArray(p2, (x) => x * 2);
25
+ * const p4 = firstInArray(p3);
26
+ * ```
27
+ *
28
+ * Of course it's possible to use array instance methods, but they mutate and do
29
+ * not preserve {@link NonEmptyArray} and {@link NonEmptyReadonlyArray} types.
11
30
  *
12
31
  * ### Example
13
32
  *
14
33
  * ```ts
15
- * // Native methods return mutable arrays
34
+ * // Types - compile-time guarantee of at least one element
35
+ * const _valid: NonEmptyReadonlyArray<number> = [1, 2, 3];
36
+ * // ts-expect-error - empty array is not a valid NonEmptyReadonlyArray
37
+ * const _invalid: NonEmptyReadonlyArray<number> = [];
38
+ *
39
+ * // Guards
40
+ * const arr: ReadonlyArray<number> = [1, 2, 3];
41
+ * if (isNonEmptyReadonlyArray(arr)) {
42
+ * firstInArray(arr);
43
+ * }
44
+ *
45
+ * // Operations
46
+ * const appended = appendToArray([1, 2, 3], 4); // [1, 2, 3, 4]
47
+ * const prepended = prependToArray([2, 3], 1); // [1, 2, 3]
48
+ *
49
+ * // Transformations
16
50
  * const readonly: ReadonlyArray<number> = [1, 2, 3];
17
- * const mapped = readonly.map((x) => x * 2); // Array<number> (mutable!)
51
+ * const mapped = mapArray(readonly, (x) => x * 2); // [2, 4, 6]
52
+ * const filtered = filterArray(readonly, (x) => x > 1); // [2, 3]
53
+ * const deduped = dedupeArray([1, 2, 1, 3, 2]); // [1, 2, 3]
18
54
  *
19
- * // ✅ Helpers preserve immutability
20
- * const filtered = filterArray(readonly, (x) => x > 1); // ReadonlyArray<number>
55
+ * // Accessors
56
+ * const first = firstInArray(["a", "b", "c"]); // "a"
57
+ * const last = lastInArray(["a", "b", "c"]); // "c"
21
58
  *
22
- * // ✅ NonEmptyArray enforces non-emptiness
23
- * const value = firstInArray(["a", "b"]); // "a"
24
- * firstInArray([]); // Compiler error
59
+ * // Mutations
60
+ * const mutable: NonEmptyArray<number> = [1, 2, 3];
61
+ * shiftArray(mutable); // 1 (guaranteed to exist)
62
+ * mutable; // [2, 3]
25
63
  * ```
26
64
  *
27
65
  * @module
28
66
  */
29
67
 
30
- /** An array with at least one element. */
68
+ /**
69
+ * An array with at least one element.
70
+ *
71
+ * @category Types
72
+ */
31
73
  export type NonEmptyArray<T> = [T, ...Array<T>];
32
74
 
33
- /** Checks if an array is non-empty. */
75
+ /**
76
+ * A readonly array with at least one element.
77
+ *
78
+ * @category Types
79
+ */
80
+ export type NonEmptyReadonlyArray<T> = readonly [T, ...ReadonlyArray<T>];
81
+
82
+ /**
83
+ * Checks if an array is non-empty and narrows its type to {@link NonEmptyArray}.
84
+ *
85
+ * Use `if (!isNonEmptyArray(arr))` for empty checks.
86
+ *
87
+ * ### Example
88
+ *
89
+ * ```ts
90
+ * const arr: Array<number> = [1, 2, 3];
91
+ * if (isNonEmptyArray(arr)) {
92
+ * firstInArray(arr); // arr is NonEmptyArray<number>
93
+ * }
94
+ * ```
95
+ *
96
+ * @category Type Guards
97
+ */
34
98
  export const isNonEmptyArray = <T>(
35
99
  array: Array<T>,
36
100
  ): array is NonEmptyArray<T> => array.length > 0;
37
101
 
38
- /** A readonly array with at least one element. */
39
- export type NonEmptyReadonlyArray<T> = readonly [T, ...ReadonlyArray<T>];
40
-
41
- /** Checks if an array is non-empty. */
102
+ /**
103
+ * Checks if a readonly array is non-empty and narrows its type to
104
+ * {@link NonEmptyReadonlyArray}.
105
+ *
106
+ * Use `if (!isNonEmptyReadonlyArray(arr))` for empty checks.
107
+ *
108
+ * ### Example
109
+ *
110
+ * ```ts
111
+ * const arr: ReadonlyArray<number> = [1, 2, 3];
112
+ * if (isNonEmptyReadonlyArray(arr)) {
113
+ * firstInArray(arr); // arr is NonEmptyReadonlyArray<number>
114
+ * }
115
+ * ```
116
+ *
117
+ * @category Type Guards
118
+ */
42
119
  export const isNonEmptyReadonlyArray = <T>(
43
120
  array: ReadonlyArray<T>,
44
121
  ): array is NonEmptyReadonlyArray<T> => array.length > 0;
@@ -47,10 +124,18 @@ export const isNonEmptyReadonlyArray = <T>(
47
124
  * Appends an item to an array, returning a new non-empty readonly array.
48
125
  *
49
126
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
127
+ *
128
+ * ### Example
129
+ *
130
+ * ```ts
131
+ * appendToArray([1, 2, 3], 4); // [1, 2, 3, 4]
132
+ * ```
133
+ *
134
+ * @category Operations
50
135
  */
51
136
  export const appendToArray = <T>(
52
- item: T,
53
137
  array: ReadonlyArray<T>,
138
+ item: T,
54
139
  ): NonEmptyReadonlyArray<T> =>
55
140
  [...array, item] as ReadonlyArray<T> as NonEmptyReadonlyArray<T>;
56
141
 
@@ -58,17 +143,33 @@ export const appendToArray = <T>(
58
143
  * Prepends an item to an array, returning a new non-empty readonly array.
59
144
  *
60
145
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
146
+ *
147
+ * ### Example
148
+ *
149
+ * ```ts
150
+ * prependToArray([2, 3], 1); // [1, 2, 3]
151
+ * ```
152
+ *
153
+ * @category Operations
61
154
  */
62
155
  export const prependToArray = <T>(
63
- item: T,
64
156
  array: ReadonlyArray<T>,
157
+ item: T,
65
158
  ): NonEmptyReadonlyArray<T> => [item, ...array] as NonEmptyReadonlyArray<T>;
66
159
 
67
160
  /**
68
- * Maps an array using a mapper function, preserving non-emptiness when
69
- * applicable.
161
+ * Maps an array using a mapper function.
70
162
  *
71
163
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
164
+ * Preserves non-empty type.
165
+ *
166
+ * ### Example
167
+ *
168
+ * ```ts
169
+ * mapArray([1, 2, 3], (x) => x * 2); // [2, 4, 6]
170
+ * ```
171
+ *
172
+ * @category Transformations
72
173
  */
73
174
  export function mapArray<T, U>(
74
175
  array: NonEmptyReadonlyArray<T> | NonEmptyArray<T>,
@@ -89,6 +190,14 @@ export function mapArray<T, U>(
89
190
  * Filters an array using a predicate function, returning a new readonly array.
90
191
  *
91
192
  * Accepts both mutable and readonly arrays. Does not mutate the original array.
193
+ *
194
+ * ### Example
195
+ *
196
+ * ```ts
197
+ * filterArray([1, 2, 3, 4, 5], (x) => x % 2 === 0); // [2, 4]
198
+ * ```
199
+ *
200
+ * @category Transformations
92
201
  */
93
202
  export const filterArray = <T>(
94
203
  array: ReadonlyArray<T>,
@@ -96,44 +205,45 @@ export const filterArray = <T>(
96
205
  ): ReadonlyArray<T> => array.filter(predicate) as ReadonlyArray<T>;
97
206
 
98
207
  /**
99
- * Shifts an item from a non-empty mutable array, guaranteed to return T.
208
+ * Returns a new readonly array with duplicate items removed. If `by` is
209
+ * provided, it will be used to derive the key for uniqueness; otherwise values
210
+ * are used directly. Dedupes by reference equality of values (or extracted keys
211
+ * when `by` is used).
100
212
  *
101
- * **Mutates** the original array. Use only with mutable arrays.
102
- */
103
- export const shiftArray = <T>(array: NonEmptyArray<T>): T => array.shift() as T;
104
-
105
- /**
106
- * Returns the first element of a non-empty readonly array.
213
+ * Accepts both mutable and readonly arrays. Does not mutate the original array.
214
+ * Preserves non-empty type.
107
215
  *
108
- * Does not mutate the original array.
109
- */
110
- export const firstInArray = <T>(array: NonEmptyReadonlyArray<T>): T => array[0];
111
-
112
- /**
113
- * Returns the last element of a non-empty readonly array.
216
+ * ### Example
114
217
  *
115
- * Does not mutate the original array.
116
- */
117
- export const lastInArray = <T>(array: NonEmptyReadonlyArray<T>): T =>
118
- array[array.length - 1];
119
-
120
- /**
121
- * Returns a new readonly array with duplicate items removed based on a key
122
- * extractor function. Preserves the first occurrence of each distinct key.
218
+ * ```ts
219
+ * // Dedupe primitives by value
220
+ * dedupeArray([1, 2, 1, 3, 2]); // [1, 2, 3]
123
221
  *
124
- * Accepts both mutable and readonly arrays. Does not mutate the original array.
125
- */
126
-
127
- /**
128
- * Deduplicates items in an array. If `by` is provided, it will be used to
129
- * derive the key for uniqueness; otherwise values are used directly.
222
+ * // Dedupe objects by property
223
+ * dedupeArray(
224
+ * [
225
+ * { id: 1, name: "Alice" },
226
+ * { id: 2, name: "Bob" },
227
+ * { id: 1, name: "Alice 2" },
228
+ * ],
229
+ * (item) => item.id,
230
+ * ); // [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }]
231
+ * ```
130
232
  *
131
- * Returns a new readonly array and does not mutate the input.
233
+ * @category Transformations
132
234
  */
133
- export const dedupeArray = <T>(
235
+ export function dedupeArray<T>(
236
+ array: NonEmptyReadonlyArray<T> | NonEmptyArray<T>,
237
+ by?: (item: T) => unknown,
238
+ ): NonEmptyReadonlyArray<T>;
239
+ export function dedupeArray<T>(
240
+ array: ReadonlyArray<T> | Array<T>,
241
+ by?: (item: T) => unknown,
242
+ ): ReadonlyArray<T>;
243
+ export function dedupeArray<T>(
134
244
  array: ReadonlyArray<T>,
135
245
  by?: (item: T) => unknown,
136
- ): ReadonlyArray<T> => {
246
+ ): ReadonlyArray<T> {
137
247
  if (by == null) {
138
248
  return Array.from(new Set(array)) as ReadonlyArray<T>;
139
249
  }
@@ -145,4 +255,52 @@ export const dedupeArray = <T>(
145
255
  seen.add(key);
146
256
  return true;
147
257
  }) as ReadonlyArray<T>;
148
- };
258
+ }
259
+
260
+ /**
261
+ * Returns the first element of a non-empty array.
262
+ *
263
+ * Accepts both mutable and readonly arrays. Does not mutate the original array.
264
+ *
265
+ * ### Example
266
+ *
267
+ * ```ts
268
+ * firstInArray(["a", "b", "c"]); // "a"
269
+ * ```
270
+ *
271
+ * @category Accessors
272
+ */
273
+ export const firstInArray = <T>(array: NonEmptyReadonlyArray<T>): T => array[0];
274
+
275
+ /**
276
+ * Returns the last element of a non-empty array.
277
+ *
278
+ * Accepts both mutable and readonly arrays. Does not mutate the original array.
279
+ *
280
+ * ### Example
281
+ *
282
+ * ```ts
283
+ * lastInArray(["a", "b", "c"]); // "c"
284
+ * ```
285
+ *
286
+ * @category Accessors
287
+ */
288
+ export const lastInArray = <T>(array: NonEmptyReadonlyArray<T>): T =>
289
+ array[array.length - 1];
290
+
291
+ /**
292
+ * Shifts an item from a non-empty mutable array, guaranteed to return T.
293
+ *
294
+ * **Mutates** the original array.
295
+ *
296
+ * ### Example
297
+ *
298
+ * ```ts
299
+ * const arr: NonEmptyArray<number> = [1, 2, 3];
300
+ * shiftArray(arr); // 1
301
+ * arr; // [2, 3]
302
+ * ```
303
+ *
304
+ * @category Mutations
305
+ */
306
+ export const shiftArray = <T>(array: NonEmptyArray<T>): T => array.shift() as T;
@@ -163,10 +163,9 @@ export const maxNodeId = "ffffffffffffffff" as NodeId;
163
163
  * queue:
164
164
  *
165
165
  * 1. Write changes immediately to a local-only table
166
- * 2. Periodically/randomly flush messages to sync tables
167
- * 3. This decouples user activity from sync timing
166
+ * 2. Periodically and randomly flush messages to sync tables
168
167
  *
169
- * Tradeoff: It breaks real-time collaboration.
168
+ * **Trade-off:** It breaks real-time collaboration.
170
169
  */
171
170
  export const Timestamp = object({
172
171
  millis: Millis,
package/src/Type.ts CHANGED
@@ -15,13 +15,17 @@
15
15
  * messages.
16
16
  * - **Consistent constraints via {@link Brand}** – every constraint becomes part
17
17
  * of the type.
18
- * - **No user-land chaining DSL** – designed with the upcoming ES pipe operator
19
- * in mind.
20
18
  * - **Selective validation** – parent validations are skipped when already proved
21
19
  * by typing.
22
20
  * - **Simple, top-down implementation** – readable source code from top to bottom
23
21
  * with no hidden magic; just plain functions and composition.
24
22
  *
23
+ * TODO: Refactor Type factories and composition for Hack pipes compatibility.
24
+ * Currently, brand factories like `minLength(min)(Type)` use constraint-first
25
+ * currying. For optimal Hack pipe support, these should be refactored to
26
+ * `minLength(Type, min)` to enable: `Type |> minLength(%, 1) |> maxLength(%,
27
+ * 100)`
28
+ *
25
29
  * ### Base Types Quick Start
26
30
  *
27
31
  * ```ts