@satoshibits/functional 1.0.3 → 1.1.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.
- package/dist/array-utils.d.mts.map +1 -1
- package/dist/array-utils.mjs +6 -3
- package/dist/array-utils.mjs.map +1 -1
- package/dist/composition.d.mts +40 -6
- package/dist/composition.d.mts.map +1 -1
- package/dist/composition.mjs +98 -22
- package/dist/composition.mjs.map +1 -1
- package/dist/index.d.mts +10 -5
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +10 -5
- package/dist/index.mjs.map +1 -1
- package/dist/io.d.mts +326 -0
- package/dist/io.d.mts.map +1 -0
- package/dist/io.mjs +377 -0
- package/dist/io.mjs.map +1 -0
- package/dist/option.d.mts +182 -55
- package/dist/option.d.mts.map +1 -1
- package/dist/option.mjs +251 -60
- package/dist/option.mjs.map +1 -1
- package/dist/performance.d.mts +1 -1
- package/dist/performance.d.mts.map +1 -1
- package/dist/performance.mjs +16 -11
- package/dist/performance.mjs.map +1 -1
- package/dist/reader.d.mts +431 -0
- package/dist/reader.d.mts.map +1 -0
- package/dist/reader.mjs +444 -0
- package/dist/reader.mjs.map +1 -0
- package/dist/result.d.mts +196 -0
- package/dist/result.d.mts.map +1 -1
- package/dist/result.mjs +275 -0
- package/dist/result.mjs.map +1 -1
- package/dist/task.d.mts +361 -0
- package/dist/task.d.mts.map +1 -0
- package/dist/task.mjs +373 -0
- package/dist/task.mjs.map +1 -0
- package/dist/validation.d.mts.map +1 -1
- package/dist/validation.mjs +10 -4
- package/dist/validation.mjs.map +1 -1
- package/package.json +1 -1
package/dist/task.mjs
ADDED
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @module task
|
|
4
|
+
* @description Task represents a lazy asynchronous computation.
|
|
5
|
+
* A Task is simply a thunk that returns a Promise. This provides a lazy, composable
|
|
6
|
+
* wrapper around async operations, ensuring referential transparency and making
|
|
7
|
+
* async code more predictable and testable. Note that Tasks can reject - for
|
|
8
|
+
* explicit error handling, consider using Task<Result<T, E>> pattern.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { Task } from './task.mts';
|
|
13
|
+
*
|
|
14
|
+
* // basic usage
|
|
15
|
+
* const readFile = (path: string): Task<string> =>
|
|
16
|
+
* () => fs.promises.readFile(path, 'utf-8');
|
|
17
|
+
*
|
|
18
|
+
* // composing tasks
|
|
19
|
+
* const processFile = Task.chain((content: string) =>
|
|
20
|
+
* Task.of(content.toUpperCase())
|
|
21
|
+
* )(readFile('data.txt'));
|
|
22
|
+
*
|
|
23
|
+
* // running tasks
|
|
24
|
+
* const result = await Task.run(processFile);
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @category Core
|
|
28
|
+
* @since 2025-09-18
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Task utility functions for working with Task types.
|
|
32
|
+
* @description Provides a functional API for creating, transforming, and composing Tasks.
|
|
33
|
+
* All functions are curried to support functional composition and partial application.
|
|
34
|
+
*
|
|
35
|
+
* @category Utilities
|
|
36
|
+
* @since 2025-09-18
|
|
37
|
+
*/
|
|
38
|
+
export var Task = {
|
|
39
|
+
/**
|
|
40
|
+
* Creates a Task that immediately resolves with the given value.
|
|
41
|
+
* @description Factory function for creating tasks from values. The resulting
|
|
42
|
+
* task will always succeed with the provided value.
|
|
43
|
+
*
|
|
44
|
+
* @template A - The type of the value
|
|
45
|
+
* @param {A} value - The value to wrap in a Task
|
|
46
|
+
* @returns {Task<A>} A Task that resolves to the value
|
|
47
|
+
*
|
|
48
|
+
* @category Constructors
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const task = Task.of(42);
|
|
52
|
+
* await Task.run(task); // => 42
|
|
53
|
+
*
|
|
54
|
+
* // Useful for starting chains
|
|
55
|
+
* const result = await Task.run(
|
|
56
|
+
* Task.chain((n: number) => Task.of(n * 2))(
|
|
57
|
+
* Task.of(21)
|
|
58
|
+
* )
|
|
59
|
+
* ); // => 42
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* @since 2025-09-18
|
|
63
|
+
*/
|
|
64
|
+
of: function (value) { return function () { return Promise.resolve(value); }; },
|
|
65
|
+
/**
|
|
66
|
+
* Creates a Task from a Promise.
|
|
67
|
+
* @description Wraps a Promise in a Task, making it lazy. The Promise
|
|
68
|
+
* won't execute until the Task is run.
|
|
69
|
+
*
|
|
70
|
+
* @template A - The type of the value the Promise resolves to
|
|
71
|
+
* @param {() => Promise<A>} f - A function that returns a Promise
|
|
72
|
+
* @returns {Task<A>} A Task wrapping the Promise
|
|
73
|
+
*
|
|
74
|
+
* @category Constructors
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const fetchData = Task.fromPromise(() =>
|
|
78
|
+
* fetch('/api/data').then(r => r.json())
|
|
79
|
+
* );
|
|
80
|
+
*
|
|
81
|
+
* // Promise doesn't execute until run
|
|
82
|
+
* const result = await Task.run(fetchData);
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* @since 2025-09-18
|
|
86
|
+
*/
|
|
87
|
+
fromPromise: function (f) { return f; },
|
|
88
|
+
/**
|
|
89
|
+
* Transforms the value inside a Task using the given function.
|
|
90
|
+
* @description Applies a pure function to the eventual value of a Task,
|
|
91
|
+
* creating a new Task with the transformed value. This is the functor
|
|
92
|
+
* map operation for Task types.
|
|
93
|
+
*
|
|
94
|
+
* @template A - The input type
|
|
95
|
+
* @template B - The output type
|
|
96
|
+
* @param {function(A): B} f - Function to transform the value
|
|
97
|
+
* @returns {function(Task<A>): Task<B>} A function that transforms Tasks
|
|
98
|
+
*
|
|
99
|
+
* @category Transformations
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const double = Task.map((n: number) => n * 2);
|
|
103
|
+
* const task = Task.of(21);
|
|
104
|
+
* const doubled = double(task);
|
|
105
|
+
* await Task.run(doubled); // => 42
|
|
106
|
+
* ```
|
|
107
|
+
*
|
|
108
|
+
* @since 2025-09-18
|
|
109
|
+
*/
|
|
110
|
+
map: function (f) { return function (task) {
|
|
111
|
+
return function () { return task().then(f); };
|
|
112
|
+
}; },
|
|
113
|
+
/**
|
|
114
|
+
* Chains Task-returning operations.
|
|
115
|
+
* @description Sequences two Tasks where the second depends on the result
|
|
116
|
+
* of the first. This is the monadic bind operation for Task types.
|
|
117
|
+
*
|
|
118
|
+
* @template A - The input type
|
|
119
|
+
* @template B - The output type
|
|
120
|
+
* @param {function(A): Task<B>} f - Function that returns a new Task
|
|
121
|
+
* @returns {function(Task<A>): Task<B>} A function that chains Tasks
|
|
122
|
+
*
|
|
123
|
+
* @category Combinators
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* const readFile = (path: string): Task<string> =>
|
|
127
|
+
* () => fs.promises.readFile(path, 'utf-8');
|
|
128
|
+
*
|
|
129
|
+
* const parseJson = <T>(content: string): Task<T> =>
|
|
130
|
+
* Task.of(JSON.parse(content));
|
|
131
|
+
*
|
|
132
|
+
* const loadConfig = Task.chain(parseJson<Config>)(
|
|
133
|
+
* readFile('config.json')
|
|
134
|
+
* );
|
|
135
|
+
* ```
|
|
136
|
+
*
|
|
137
|
+
* @since 2025-09-18
|
|
138
|
+
*/
|
|
139
|
+
chain: function (f) { return function (task) {
|
|
140
|
+
return function () { return task().then(function (a) { return f(a)(); }); };
|
|
141
|
+
}; },
|
|
142
|
+
/**
|
|
143
|
+
* Alias for chain to match fp-ts naming.
|
|
144
|
+
* @description See {@link chain} for details.
|
|
145
|
+
*
|
|
146
|
+
* @category Combinators
|
|
147
|
+
* @since 2025-09-18
|
|
148
|
+
*/
|
|
149
|
+
flatMap: function (f) { return function (task) {
|
|
150
|
+
return function () { return task().then(function (a) { return f(a)(); }); };
|
|
151
|
+
}; },
|
|
152
|
+
/**
|
|
153
|
+
* Applies a Task of a function to a Task of a value.
|
|
154
|
+
* @description Enables applying functions wrapped in Tasks to values wrapped
|
|
155
|
+
* in Tasks. This is the applicative apply operation for Task types.
|
|
156
|
+
*
|
|
157
|
+
* @template A - The input type
|
|
158
|
+
* @template B - The output type
|
|
159
|
+
* @param {Task<A>} taskValue - Task containing a value
|
|
160
|
+
* @returns {function(Task<function(A): B>): Task<B>} A function that applies Task functions
|
|
161
|
+
*
|
|
162
|
+
* @category Combinators
|
|
163
|
+
* @example
|
|
164
|
+
* ```typescript
|
|
165
|
+
* const add = (a: number) => (b: number) => a + b;
|
|
166
|
+
* const taskAdd = Task.of(add);
|
|
167
|
+
* const task5 = Task.of(5);
|
|
168
|
+
* const task3 = Task.of(3);
|
|
169
|
+
*
|
|
170
|
+
* const result = await Task.run(
|
|
171
|
+
* Task.ap(task3)(
|
|
172
|
+
* Task.ap(task5)(
|
|
173
|
+
* Task.map(add)(Task.of(10))
|
|
174
|
+
* )
|
|
175
|
+
* )
|
|
176
|
+
* ); // => 18
|
|
177
|
+
* ```
|
|
178
|
+
*
|
|
179
|
+
* @since 2025-09-18
|
|
180
|
+
*/
|
|
181
|
+
ap: function (taskValue) { return function (taskFn) {
|
|
182
|
+
return function () { return Promise.all([taskFn(), taskValue()]).then(function (_a) {
|
|
183
|
+
var f = _a[0], a = _a[1];
|
|
184
|
+
return f(a);
|
|
185
|
+
}); };
|
|
186
|
+
}; },
|
|
187
|
+
/**
|
|
188
|
+
* Runs a Task to completion and returns its Promise.
|
|
189
|
+
* @description Executes a Task, triggering the async computation and
|
|
190
|
+
* returning the resulting Promise.
|
|
191
|
+
*
|
|
192
|
+
* @template A - The type of the value
|
|
193
|
+
* @param {Task<A>} task - The Task to run
|
|
194
|
+
* @returns {Promise<A>} The result of running the Task
|
|
195
|
+
*
|
|
196
|
+
* @category Execution
|
|
197
|
+
* @example
|
|
198
|
+
* ```typescript
|
|
199
|
+
* const task = Task.of(42);
|
|
200
|
+
* const result = await Task.run(task); // => 42
|
|
201
|
+
* ```
|
|
202
|
+
*
|
|
203
|
+
* @since 2025-09-18
|
|
204
|
+
*/
|
|
205
|
+
run: function (task) { return task(); },
|
|
206
|
+
/**
|
|
207
|
+
* Converts an array of Tasks into a Task of an array.
|
|
208
|
+
* @description Runs all Tasks in parallel and collects their results.
|
|
209
|
+
* All Tasks must succeed for the resulting Task to succeed.
|
|
210
|
+
*
|
|
211
|
+
* @template A - The type of values in the Tasks
|
|
212
|
+
* @param {Task<A>[]} tasks - Array of Tasks to sequence
|
|
213
|
+
* @returns {Task<A[]>} A Task containing an array of results
|
|
214
|
+
*
|
|
215
|
+
* @category Combinators
|
|
216
|
+
* @example
|
|
217
|
+
* ```typescript
|
|
218
|
+
* const tasks = [
|
|
219
|
+
* Task.of(1),
|
|
220
|
+
* Task.of(2),
|
|
221
|
+
* Task.of(3)
|
|
222
|
+
* ];
|
|
223
|
+
* const combined = Task.sequence(tasks);
|
|
224
|
+
* await Task.run(combined); // => [1, 2, 3]
|
|
225
|
+
* ```
|
|
226
|
+
*
|
|
227
|
+
* @since 2025-09-18
|
|
228
|
+
*/
|
|
229
|
+
sequence: function (tasks) {
|
|
230
|
+
return function () { return Promise.all(tasks.map(function (t) { return t(); })); };
|
|
231
|
+
},
|
|
232
|
+
/**
|
|
233
|
+
* Maps a function returning a Task over an array and sequences the results.
|
|
234
|
+
* @description Applies a Task-returning function to each element of an array
|
|
235
|
+
* and runs all resulting Tasks in parallel.
|
|
236
|
+
*
|
|
237
|
+
* @template A - The input type
|
|
238
|
+
* @template B - The output type
|
|
239
|
+
* @param {function(A): Task<B>} f - Function that returns a Task
|
|
240
|
+
* @returns {function(A[]): Task<B[]>} A function that traverses arrays with Tasks
|
|
241
|
+
*
|
|
242
|
+
* @category Combinators
|
|
243
|
+
* @example
|
|
244
|
+
* ```typescript
|
|
245
|
+
* const fetchUser = (id: string): Task<User> =>
|
|
246
|
+
* () => fetch(`/api/users/${id}`).then(r => r.json());
|
|
247
|
+
*
|
|
248
|
+
* const fetchAllUsers = Task.traverse(fetchUser);
|
|
249
|
+
* const users = await Task.run(
|
|
250
|
+
* fetchAllUsers(['1', '2', '3'])
|
|
251
|
+
* );
|
|
252
|
+
* ```
|
|
253
|
+
*
|
|
254
|
+
* @since 2025-09-18
|
|
255
|
+
*/
|
|
256
|
+
traverse: function (f) { return function (as) {
|
|
257
|
+
return Task.sequence(as.map(f));
|
|
258
|
+
}; },
|
|
259
|
+
/**
|
|
260
|
+
* Creates a Task that delays for the specified milliseconds.
|
|
261
|
+
* @description Returns a Task that waits for the given duration before
|
|
262
|
+
* resolving with void.
|
|
263
|
+
*
|
|
264
|
+
* @param {number} ms - Number of milliseconds to delay
|
|
265
|
+
* @returns {Task<void>} A Task that delays
|
|
266
|
+
*
|
|
267
|
+
* @category Utilities
|
|
268
|
+
* @example
|
|
269
|
+
* ```typescript
|
|
270
|
+
* const delayed = Task.chain(() => Task.of('done'))(
|
|
271
|
+
* Task.delay(1000)
|
|
272
|
+
* );
|
|
273
|
+
* await Task.run(delayed); // => 'done' (after 1 second)
|
|
274
|
+
* ```
|
|
275
|
+
*
|
|
276
|
+
* @since 2025-09-18
|
|
277
|
+
*/
|
|
278
|
+
delay: function (ms) {
|
|
279
|
+
return function () { return new Promise(function (resolve) { return setTimeout(resolve, ms); }); };
|
|
280
|
+
},
|
|
281
|
+
/**
|
|
282
|
+
* Combines the results of a tuple of Tasks into a Task of a tuple.
|
|
283
|
+
* @description Takes multiple Tasks and returns a Task containing a tuple
|
|
284
|
+
* of their results. All Tasks run in parallel.
|
|
285
|
+
*
|
|
286
|
+
* @template T - Tuple type of Tasks
|
|
287
|
+
* @param {...T} tasks - Tasks to combine
|
|
288
|
+
* @returns {Task<{ [K in keyof T]: T[K] extends Task<infer U> ? U : never }>} Task of tuple
|
|
289
|
+
*
|
|
290
|
+
* @category Combinators
|
|
291
|
+
* @example
|
|
292
|
+
* ```typescript
|
|
293
|
+
* const task1 = Task.of(1);
|
|
294
|
+
* const task2 = Task.of('hello');
|
|
295
|
+
* const task3 = Task.of(true);
|
|
296
|
+
*
|
|
297
|
+
* const combined = Task.sequenceT(task1, task2, task3);
|
|
298
|
+
* await Task.run(combined); // => [1, 'hello', true]
|
|
299
|
+
* ```
|
|
300
|
+
*
|
|
301
|
+
* @since 2025-09-18
|
|
302
|
+
*/
|
|
303
|
+
sequenceT: function () {
|
|
304
|
+
var tasks = [];
|
|
305
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
306
|
+
tasks[_i] = arguments[_i];
|
|
307
|
+
}
|
|
308
|
+
return function () { return Promise.all(tasks.map(function (t) { return t(); })); };
|
|
309
|
+
},
|
|
310
|
+
/**
|
|
311
|
+
* Combines the results of a record of Tasks into a Task of a record.
|
|
312
|
+
* @description Takes an object with Task values and returns a Task containing
|
|
313
|
+
* an object with the results. All Tasks run in parallel.
|
|
314
|
+
*
|
|
315
|
+
* @template R - Record type with Task values
|
|
316
|
+
* @param {R} tasks - Record of Tasks to combine
|
|
317
|
+
* @returns {Task<{ [K in keyof R]: R[K] extends Task<infer U> ? U : never }>} Task of record
|
|
318
|
+
*
|
|
319
|
+
* @category Combinators
|
|
320
|
+
* @example
|
|
321
|
+
* ```typescript
|
|
322
|
+
* const tasks = {
|
|
323
|
+
* user: Task.of({ name: 'Alice' }),
|
|
324
|
+
* count: Task.of(42),
|
|
325
|
+
* enabled: Task.of(true)
|
|
326
|
+
* };
|
|
327
|
+
*
|
|
328
|
+
* const combined = Task.sequenceS(tasks);
|
|
329
|
+
* await Task.run(combined);
|
|
330
|
+
* // => { user: { name: 'Alice' }, count: 42, enabled: true }
|
|
331
|
+
* ```
|
|
332
|
+
*
|
|
333
|
+
* @since 2025-09-18
|
|
334
|
+
*/
|
|
335
|
+
sequenceS: function (tasks) {
|
|
336
|
+
return function () {
|
|
337
|
+
var keys = Object.keys(tasks);
|
|
338
|
+
return Promise.all(keys.map(function (k) { return tasks[k](); })).then(function (values) {
|
|
339
|
+
return keys.reduce(function (acc, k, i) {
|
|
340
|
+
acc[k] = values[i];
|
|
341
|
+
return acc;
|
|
342
|
+
}, {});
|
|
343
|
+
});
|
|
344
|
+
};
|
|
345
|
+
},
|
|
346
|
+
/**
|
|
347
|
+
* Executes a Task for its side effects, discarding the result.
|
|
348
|
+
* @description Runs a Task but returns void, useful for Tasks that
|
|
349
|
+
* perform side effects where the result isn't needed.
|
|
350
|
+
*
|
|
351
|
+
* @template A - The type of the value (discarded)
|
|
352
|
+
* @param {function(A): Task<unknown>} f - Function that returns a Task (result discarded)
|
|
353
|
+
* @returns {function(Task<A>): Task<A>} A function that executes side effects
|
|
354
|
+
*
|
|
355
|
+
* @category Combinators
|
|
356
|
+
* @example
|
|
357
|
+
* ```typescript
|
|
358
|
+
* const log = (msg: string): Task<void> =>
|
|
359
|
+
* () => Promise.resolve(console.log(msg));
|
|
360
|
+
*
|
|
361
|
+
* const task = Task.chainFirst((n: number) => log(`Got: ${n}`))(
|
|
362
|
+
* Task.of(42)
|
|
363
|
+
* );
|
|
364
|
+
* await Task.run(task); // logs "Got: 42", returns 42
|
|
365
|
+
* ```
|
|
366
|
+
*
|
|
367
|
+
* @since 2025-09-18
|
|
368
|
+
*/
|
|
369
|
+
chainFirst: function (f) { return function (task) {
|
|
370
|
+
return function () { return task().then(function (a) { return f(a)().then(function () { return a; }); }); };
|
|
371
|
+
}; },
|
|
372
|
+
};
|
|
373
|
+
//# sourceMappingURL=task.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.mjs","sourceRoot":"","sources":["../src/task.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.mts","sourceRoot":"","sources":["../src/validation.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,eAAgB,SAAQ,KAAK;aAMZ,MAAM,EAAE,MAAM,EAAE;IAL5C;;;;OAIG;gBACyB,MAAM,EAAE,MAAM,EAAE;IAK5C;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,eAAe;IAI/C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIhC;;;;;;;;;;;;OAYG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;CAGjC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AAEpE;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU;IACrB;;;;;;;;;;;;;;;;OAgBG;cAEA,CAAC,OAAM,SAAS,CAAC,CAAC,CAAC;IAItB;;;;;;;;;;;;;;;;;OAiBG;cAEA,CAAC,SAAU,MAAM,KAAG,SAAS,CAAC,CAAC,CAAC;IAInC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;oBAEA,CAAC,aAAc,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,SAAS,MAAM,KAAG,SAAS,CAAC,CAAC,CAAC;IAMrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;UAEA,CAAC,iBAAkB,SAAS,CAAC,CAAC,CAAC,EAAE,KAAG,SAAS,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.mts","sourceRoot":"","sources":["../src/validation.mts"],"names":[],"mappings":"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"}
|
package/dist/validation.mjs
CHANGED
|
@@ -306,7 +306,8 @@ export var Validation = {
|
|
|
306
306
|
var validator = validators_1[_i];
|
|
307
307
|
var result = validator(value);
|
|
308
308
|
if (!result.success) {
|
|
309
|
-
errors.push.apply(errors, result.error
|
|
309
|
+
errors.push.apply(errors, result.error
|
|
310
|
+
.errors);
|
|
310
311
|
}
|
|
311
312
|
}
|
|
312
313
|
return errors.length === 0
|
|
@@ -356,7 +357,8 @@ export var Validation = {
|
|
|
356
357
|
return result;
|
|
357
358
|
}
|
|
358
359
|
else {
|
|
359
|
-
errors.push.apply(errors, result.error
|
|
360
|
+
errors.push.apply(errors, result.error
|
|
361
|
+
.errors);
|
|
360
362
|
}
|
|
361
363
|
}
|
|
362
364
|
return Result.err(new ValidationError(errors));
|
|
@@ -392,7 +394,9 @@ export var Validation = {
|
|
|
392
394
|
return function (validator) {
|
|
393
395
|
return function (value) {
|
|
394
396
|
var result = validator(value);
|
|
395
|
-
return result.success
|
|
397
|
+
return result.success
|
|
398
|
+
? Result.ok(fn(result.data))
|
|
399
|
+
: result;
|
|
396
400
|
};
|
|
397
401
|
};
|
|
398
402
|
},
|
|
@@ -670,7 +674,9 @@ export var validators = {
|
|
|
670
674
|
email: function () {
|
|
671
675
|
return Validation.fromPredicate(
|
|
672
676
|
// A more permissive regex, see https://emailregex.com/
|
|
673
|
-
function (str) {
|
|
677
|
+
function (str) {
|
|
678
|
+
return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(str);
|
|
679
|
+
}, "Invalid email format");
|
|
674
680
|
},
|
|
675
681
|
url: function () {
|
|
676
682
|
return Validation.fromPredicate(function (str) {
|
package/dist/validation.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.mjs","sourceRoot":"","sources":["../src/validation.mts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;IAAqC,mCAAK;IACxC;;;;OAIG;IACH,yBAA4B,MAAgB;QAC1C,YAAA,MAAK,YAAC,6BAAsB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC,SAAC;QADvB,YAAM,GAAN,MAAM,CAAU;QAE1C,KAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;;IAChC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,mCAAS,GAAT,UAAU,SAAmB;QAC3B,OAAO,IAAI,eAAe,iCAAK,IAAI,CAAC,MAAM,SAAK,SAAS,QAAE,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,kCAAQ,GAAR,UAAS,KAAa;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,oCAAU,GAAV;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACH,sBAAC;AAAD,CAAC,AA9DD,CAAqC,KAAK,GA8DzC;;AAyBD;;;;;;;;GAQG;AACH,MAAM,CAAC,IAAM,UAAU,GAAG;IACxB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,EACL;QACA,OAAA,UAAC,KAAQ;YACP,OAAA,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;QAAhB,CAAgB;IADlB,CACkB;IAEpB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,EACL,UAAK,KAAa;QAClB,OAAA;YACE,OAAA,MAAM,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAAxC,CAAwC;IAD1C,CAC0C;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,aAAa,EACX,UAAK,SAAgC,EAAE,KAAa;QACpD,OAAA,UAAC,KAAQ;YACP,OAAA,SAAS,CAAC,KAAK,CAAC;gBACd,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;gBAClB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAF5C,CAE4C;IAH9C,CAG8C;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,GAAG,EACD;QAAK,oBAA6B;aAA7B,UAA6B,EAA7B,qBAA6B,EAA7B,IAA6B;YAA7B,+BAA6B;;QAClC,OAAA,UAAC,KAAQ;YACP,IAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,KAAwB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE,CAAC;gBAAhC,IAAM,SAAS,mBAAA;gBAClB,IAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,OAAX,MAAM,
|
|
1
|
+
{"version":3,"file":"validation.mjs","sourceRoot":"","sources":["../src/validation.mts"],"names":[],"mappings":"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"}
|