@satoshibits/functional 1.0.3 → 1.1.2

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 (134) hide show
  1. package/README.md +28 -145
  2. package/dist/array-utils.d.mts +13 -0
  3. package/dist/array-utils.d.mts.map +1 -1
  4. package/dist/array-utils.mjs +19 -3
  5. package/dist/array-utils.mjs.map +1 -1
  6. package/dist/array-utils.test.d.ts +2 -0
  7. package/dist/array-utils.test.d.ts.map +1 -0
  8. package/dist/array-utils.test.js +256 -0
  9. package/dist/array-utils.test.js.map +1 -0
  10. package/dist/composition.d.mts +53 -6
  11. package/dist/composition.d.mts.map +1 -1
  12. package/dist/composition.mjs +111 -22
  13. package/dist/composition.mjs.map +1 -1
  14. package/dist/composition.test.d.ts +2 -0
  15. package/dist/composition.test.d.ts.map +1 -0
  16. package/dist/composition.test.js +409 -0
  17. package/dist/composition.test.js.map +1 -0
  18. package/dist/index.d.mts +10 -5
  19. package/dist/index.d.mts.map +1 -1
  20. package/dist/index.mjs +10 -5
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/integration.test.d.mts +2 -0
  23. package/dist/integration.test.d.mts.map +1 -0
  24. package/dist/integration.test.mjs +486 -0
  25. package/dist/integration.test.mjs.map +1 -0
  26. package/dist/io.d.mts +338 -0
  27. package/dist/io.d.mts.map +1 -0
  28. package/dist/io.mjs +389 -0
  29. package/dist/io.mjs.map +1 -0
  30. package/dist/io.test.d.mts +2 -0
  31. package/dist/io.test.d.mts.map +1 -0
  32. package/dist/io.test.mjs +373 -0
  33. package/dist/io.test.mjs.map +1 -0
  34. package/dist/laws.test.d.mts +2 -0
  35. package/dist/laws.test.d.mts.map +1 -0
  36. package/dist/laws.test.mjs +614 -0
  37. package/dist/laws.test.mjs.map +1 -0
  38. package/dist/object-utils.d.mts +11 -0
  39. package/dist/object-utils.d.mts.map +1 -1
  40. package/dist/object-utils.mjs +11 -0
  41. package/dist/object-utils.mjs.map +1 -1
  42. package/dist/object-utils.test.d.ts +2 -0
  43. package/dist/object-utils.test.d.ts.map +1 -0
  44. package/dist/object-utils.test.js +286 -0
  45. package/dist/object-utils.test.js.map +1 -0
  46. package/dist/option-additions.test.d.mts +2 -0
  47. package/dist/option-additions.test.d.mts.map +1 -0
  48. package/dist/option-additions.test.mjs +325 -0
  49. package/dist/option-additions.test.mjs.map +1 -0
  50. package/dist/option.d.mts +202 -58
  51. package/dist/option.d.mts.map +1 -1
  52. package/dist/option.mjs +271 -63
  53. package/dist/option.mjs.map +1 -1
  54. package/dist/option.test.d.ts +6 -0
  55. package/dist/option.test.d.ts.map +1 -0
  56. package/dist/option.test.js +606 -0
  57. package/dist/option.test.js.map +1 -0
  58. package/dist/performance.d.mts +27 -10
  59. package/dist/performance.d.mts.map +1 -1
  60. package/dist/performance.mjs +42 -20
  61. package/dist/performance.mjs.map +1 -1
  62. package/dist/performance.test.d.ts +2 -0
  63. package/dist/performance.test.d.ts.map +1 -0
  64. package/dist/performance.test.js +424 -0
  65. package/dist/performance.test.js.map +1 -0
  66. package/dist/pipeline.d.mts +12 -0
  67. package/dist/pipeline.d.mts.map +1 -1
  68. package/dist/pipeline.mjs +12 -0
  69. package/dist/pipeline.mjs.map +1 -1
  70. package/dist/pipeline.test.d.ts +2 -0
  71. package/dist/pipeline.test.d.ts.map +1 -0
  72. package/dist/pipeline.test.js +445 -0
  73. package/dist/pipeline.test.js.map +1 -0
  74. package/dist/predicates.d.mts +12 -0
  75. package/dist/predicates.d.mts.map +1 -1
  76. package/dist/predicates.mjs +12 -0
  77. package/dist/predicates.mjs.map +1 -1
  78. package/dist/predicates.test.d.ts +2 -0
  79. package/dist/predicates.test.d.ts.map +1 -0
  80. package/dist/predicates.test.js +375 -0
  81. package/dist/predicates.test.js.map +1 -0
  82. package/dist/reader-result.d.mts +37 -16
  83. package/dist/reader-result.d.mts.map +1 -1
  84. package/dist/reader-result.mjs +37 -16
  85. package/dist/reader-result.mjs.map +1 -1
  86. package/dist/reader-result.test.d.ts +2 -0
  87. package/dist/reader-result.test.d.ts.map +1 -0
  88. package/dist/reader-result.test.js +1259 -0
  89. package/dist/reader-result.test.js.map +1 -0
  90. package/dist/reader.d.mts +443 -0
  91. package/dist/reader.d.mts.map +1 -0
  92. package/dist/reader.mjs +456 -0
  93. package/dist/reader.mjs.map +1 -0
  94. package/dist/reader.test.d.mts +2 -0
  95. package/dist/reader.test.d.mts.map +1 -0
  96. package/dist/reader.test.mjs +288 -0
  97. package/dist/reader.test.mjs.map +1 -0
  98. package/dist/result-additions.test.d.mts +2 -0
  99. package/dist/result-additions.test.d.mts.map +1 -0
  100. package/dist/result-additions.test.mjs +325 -0
  101. package/dist/result-additions.test.mjs.map +1 -0
  102. package/dist/result.d.mts +208 -0
  103. package/dist/result.d.mts.map +1 -1
  104. package/dist/result.mjs +287 -0
  105. package/dist/result.mjs.map +1 -1
  106. package/dist/result.test.d.ts +2 -0
  107. package/dist/result.test.d.ts.map +1 -0
  108. package/dist/result.test.js +453 -0
  109. package/dist/result.test.js.map +1 -0
  110. package/dist/task.d.mts +374 -0
  111. package/dist/task.d.mts.map +1 -0
  112. package/dist/task.mjs +386 -0
  113. package/dist/task.mjs.map +1 -0
  114. package/dist/task.test.d.mts +2 -0
  115. package/dist/task.test.d.mts.map +1 -0
  116. package/dist/task.test.mjs +1006 -0
  117. package/dist/task.test.mjs.map +1 -0
  118. package/dist/types.d.mts +12 -0
  119. package/dist/types.d.mts.map +1 -1
  120. package/dist/types.mjs +12 -0
  121. package/dist/types.mjs.map +1 -1
  122. package/dist/types.test.d.ts +6 -0
  123. package/dist/types.test.d.ts.map +1 -0
  124. package/dist/types.test.js +447 -0
  125. package/dist/types.test.js.map +1 -0
  126. package/dist/validation.d.mts +12 -0
  127. package/dist/validation.d.mts.map +1 -1
  128. package/dist/validation.mjs +22 -4
  129. package/dist/validation.mjs.map +1 -1
  130. package/dist/validation.test.d.ts +2 -0
  131. package/dist/validation.test.d.ts.map +1 -0
  132. package/dist/validation.test.js +518 -0
  133. package/dist/validation.test.js.map +1 -0
  134. package/package.json +77 -13
package/dist/io.mjs ADDED
@@ -0,0 +1,389 @@
1
+ "use strict";
2
+ /**
3
+ * @module io
4
+ * @description IO represents a synchronous computation that may have side effects.
5
+ * An IO is a thunk (a function with no arguments) that performs a computation when called.
6
+ * This provides a way to make side effects referentially transparent by wrapping them
7
+ * in a function, delaying their execution until explicitly requested.
8
+ *
9
+ * ### For Dummies
10
+ * - An `IO<T>` is just `() => T`; you keep side effects in a box until you open it.
11
+ * - Build the pipeline now, run it later—great for tests and deterministic wiring.
12
+ * - No promises here: everything happens synchronously once you call `IO.run` or the IO itself.
13
+ *
14
+ * ### Decision Tree
15
+ * - Got a plain value? Wrap it with `IO.of(value)` to start a chain.
16
+ * - Need to transform without running? Use `IO.map(fn)(io)`.
17
+ * - Want the next step to also be an IO? Use `IO.chain(nextStep)(io)` (aka `flatMap`).
18
+ * - Collecting side-effect functions? Compose them with `IO.ap`, `IO.map`, or `IO.chain`.
19
+ * - Ready to execute? Either call the thunk directly or use `IO.run(io)` for clarity.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { IO } from './io.mts';
24
+ *
25
+ * // basic usage
26
+ * const getCurrentTime: IO<number> = () => Date.now();
27
+ * const randomNumber: IO<number> = () => Math.random();
28
+ *
29
+ * // composing IO operations
30
+ * const program = IO.chain((time: number) =>
31
+ * IO.map((rand: number) => `Time: ${time}, Random: ${rand}`)(
32
+ * randomNumber
33
+ * )
34
+ * )(getCurrentTime);
35
+ *
36
+ * // running IO
37
+ * const result = IO.run(program);
38
+ * ```
39
+ *
40
+ * @category Core
41
+ * @since 2025-09-18
42
+ */
43
+ var __assign = (this && this.__assign) || function () {
44
+ __assign = Object.assign || function(t) {
45
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
46
+ s = arguments[i];
47
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
48
+ t[p] = s[p];
49
+ }
50
+ return t;
51
+ };
52
+ return __assign.apply(this, arguments);
53
+ };
54
+ /**
55
+ * IO utility functions for working with IO types.
56
+ * @description Provides a functional API for creating, transforming, and composing IOs.
57
+ * All functions are curried to support functional composition and partial application.
58
+ *
59
+ * @category Utilities
60
+ * @since 2025-09-18
61
+ */
62
+ export var IO = {
63
+ /**
64
+ * Creates an IO that returns the given value.
65
+ * @description Factory function for creating IOs from values. The resulting
66
+ * IO will always return the provided value when run.
67
+ *
68
+ * @template A - The type of the value
69
+ * @param {A} value - The value to wrap in an IO
70
+ * @returns {IO<A>} An IO that returns the value
71
+ *
72
+ * @category Constructors
73
+ * @example
74
+ * ```typescript
75
+ * const io = IO.of(42);
76
+ * IO.run(io); // => 42
77
+ *
78
+ * // Useful for starting chains
79
+ * const result = IO.run(
80
+ * IO.chain((n: number) => IO.of(n * 2))(
81
+ * IO.of(21)
82
+ * )
83
+ * ); // => 42
84
+ * ```
85
+ *
86
+ * @since 2025-09-18
87
+ */
88
+ of: function (value) {
89
+ return function () {
90
+ return value;
91
+ };
92
+ },
93
+ /**
94
+ * Transforms the value inside an IO using the given function.
95
+ * @description Applies a pure function to the value produced by an IO,
96
+ * creating a new IO with the transformed value. This is the functor
97
+ * map operation for IO types.
98
+ *
99
+ * @template A - The input type
100
+ * @template B - The output type
101
+ * @param {function(A): B} f - Function to transform the value
102
+ * @returns {function(IO<A>): IO<B>} A function that transforms IOs
103
+ *
104
+ * @category Transformations
105
+ * @example
106
+ * ```typescript
107
+ * const double = IO.map((n: number) => n * 2);
108
+ * const io = IO.of(21);
109
+ * const doubled = double(io);
110
+ * IO.run(doubled); // => 42
111
+ *
112
+ * // With side effects
113
+ * const random = () => Math.random();
114
+ * const percent = IO.map((n: number) => Math.round(n * 100))(random);
115
+ * IO.run(percent); // => random number 0-100
116
+ * ```
117
+ *
118
+ * @since 2025-09-18
119
+ */
120
+ map: function (f) {
121
+ return function (io) {
122
+ return function () {
123
+ return f(io());
124
+ };
125
+ };
126
+ },
127
+ /**
128
+ * Chains IO-returning operations.
129
+ * @description Sequences two IOs where the second depends on the result
130
+ * of the first. This is the monadic bind operation for IO types.
131
+ *
132
+ * @template A - The input type
133
+ * @template B - The output type
134
+ * @param {function(A): IO<B>} f - Function that returns a new IO
135
+ * @returns {function(IO<A>): IO<B>} A function that chains IOs
136
+ *
137
+ * @category Combinators
138
+ * @example
139
+ * ```typescript
140
+ * const readLine: IO<string> = () => prompt('Enter text:') || '';
141
+ * const toUpper = (s: string): IO<string> => IO.of(s.toUpperCase());
142
+ *
143
+ * const program = IO.chain(toUpper)(readLine);
144
+ * IO.run(program); // prompts user, returns uppercase input
145
+ * ```
146
+ *
147
+ * @since 2025-09-18
148
+ */
149
+ chain: function (f) {
150
+ return function (io) {
151
+ return function () {
152
+ return f(io())();
153
+ };
154
+ };
155
+ },
156
+ /**
157
+ * Alias for chain to match fp-ts naming.
158
+ * @description See {@link chain} for details.
159
+ *
160
+ * @category Combinators
161
+ * @since 2025-09-18
162
+ */
163
+ flatMap: function (f) {
164
+ return function (io) {
165
+ return function () {
166
+ return f(io())();
167
+ };
168
+ };
169
+ },
170
+ /**
171
+ * Applies an IO of a function to an IO of a value.
172
+ * @description Enables applying functions wrapped in IOs to values wrapped
173
+ * in IOs. This is the applicative apply operation for IO types.
174
+ *
175
+ * @template A - The input type
176
+ * @template B - The output type
177
+ * @param {IO<A>} ioValue - IO containing a value
178
+ * @returns {function(IO<function(A): B>): IO<B>} A function that applies IO functions
179
+ *
180
+ * @category Combinators
181
+ * @example
182
+ * ```typescript
183
+ * const add = (a: number) => (b: number) => a + b;
184
+ * const ioAdd = IO.of(add);
185
+ * const io5 = IO.of(5);
186
+ * const io3 = IO.of(3);
187
+ *
188
+ * const result = IO.run(
189
+ * IO.ap(io3)(
190
+ * IO.ap(io5)(
191
+ * IO.map(add)(IO.of(10))
192
+ * )
193
+ * )
194
+ * ); // => 18
195
+ * ```
196
+ *
197
+ * @since 2025-09-18
198
+ */
199
+ ap: function (ioValue) {
200
+ return function (ioFn) {
201
+ return function () {
202
+ return ioFn()(ioValue());
203
+ };
204
+ };
205
+ },
206
+ /**
207
+ * Runs an IO to completion and returns its value.
208
+ * @description Executes an IO, triggering the computation and returning
209
+ * the result. This is where side effects actually occur.
210
+ *
211
+ * @template A - The type of the value
212
+ * @param {IO<A>} io - The IO to run
213
+ * @returns {A} The result of running the IO
214
+ *
215
+ * @category Execution
216
+ * @example
217
+ * ```typescript
218
+ * const io = IO.of(42);
219
+ * const result = IO.run(io); // => 42
220
+ *
221
+ * const sideEffect = () => {
222
+ * console.log('Side effect!');
223
+ * return 'done';
224
+ * };
225
+ * IO.run(sideEffect); // logs "Side effect!", returns 'done'
226
+ * ```
227
+ *
228
+ * @since 2025-09-18
229
+ */
230
+ run: function (io) { return io(); },
231
+ /**
232
+ * Converts an array of IOs into an IO of an array.
233
+ * @description Sequences multiple IOs, running them in order and collecting
234
+ * their results.
235
+ *
236
+ * @template A - The type of values in the IOs
237
+ * @param {IO<A>[]} ios - Array of IOs to sequence
238
+ * @returns {IO<A[]>} An IO containing an array of results
239
+ *
240
+ * @category Combinators
241
+ * @example
242
+ * ```typescript
243
+ * const ios = [
244
+ * IO.of(1),
245
+ * IO.of(2),
246
+ * IO.of(3)
247
+ * ];
248
+ * const combined = IO.sequence(ios);
249
+ * IO.run(combined); // => [1, 2, 3]
250
+ * ```
251
+ *
252
+ * @since 2025-09-18
253
+ */
254
+ sequence: function (ios) {
255
+ return function () {
256
+ return ios.map(function (io) { return io(); });
257
+ };
258
+ },
259
+ /**
260
+ * Maps a function returning an IO over an array and sequences the results.
261
+ * @description Applies an IO-returning function to each element of an array
262
+ * and runs all resulting IOs in sequence.
263
+ *
264
+ * @template A - The input type
265
+ * @template B - The output type
266
+ * @param {function(A): IO<B>} f - Function that returns an IO
267
+ * @returns {function(A[]): IO<B[]>} A function that traverses arrays with IOs
268
+ *
269
+ * @category Combinators
270
+ * @example
271
+ * ```typescript
272
+ * const log = (msg: string): IO<string> => () => {
273
+ * console.log(msg);
274
+ * return msg;
275
+ * };
276
+ *
277
+ * const logAll = IO.traverse(log);
278
+ * const messages = IO.run(
279
+ * logAll(['Hello', 'World'])
280
+ * ); // logs each message, returns ['Hello', 'World']
281
+ * ```
282
+ *
283
+ * @since 2025-09-18
284
+ */
285
+ traverse: function (f) {
286
+ return function (as) {
287
+ return IO.sequence(as.map(f));
288
+ };
289
+ },
290
+ /**
291
+ * Combines the results of a tuple of IOs into an IO of a tuple.
292
+ * @description Takes multiple IOs and returns an IO containing a tuple
293
+ * of their results.
294
+ *
295
+ * @template T - Tuple type of IOs
296
+ * @param {...T} ios - IOs to combine
297
+ * @returns {IO<{ [K in keyof T]: T[K] extends IO<infer U> ? U : never }>} IO of tuple
298
+ *
299
+ * @category Combinators
300
+ * @example
301
+ * ```typescript
302
+ * const io1 = IO.of(1);
303
+ * const io2 = IO.of('hello');
304
+ * const io3 = IO.of(true);
305
+ *
306
+ * const combined = IO.sequenceT(io1, io2, io3);
307
+ * IO.run(combined); // => [1, 'hello', true]
308
+ * ```
309
+ *
310
+ * @since 2025-09-18
311
+ */
312
+ sequenceT: function () {
313
+ var ios = [];
314
+ for (var _i = 0; _i < arguments.length; _i++) {
315
+ ios[_i] = arguments[_i];
316
+ }
317
+ return function () {
318
+ return ios.map(function (io) { return io(); });
319
+ };
320
+ },
321
+ /**
322
+ * Combines the results of a record of IOs into an IO of a record.
323
+ * @description Takes an object with IO values and returns an IO containing
324
+ * an object with the results.
325
+ *
326
+ * @template R - Record type with IO values
327
+ * @param {R} ios - Record of IOs to combine
328
+ * @returns {IO<{ [K in keyof R]: R[K] extends IO<infer U> ? U : never }>} IO of record
329
+ *
330
+ * @category Combinators
331
+ * @example
332
+ * ```typescript
333
+ * const ios = {
334
+ * user: IO.of({ name: 'Alice' }),
335
+ * count: IO.of(42),
336
+ * enabled: IO.of(true)
337
+ * };
338
+ *
339
+ * const combined = IO.sequenceS(ios);
340
+ * IO.run(combined);
341
+ * // => { user: { name: 'Alice' }, count: 42, enabled: true }
342
+ * ```
343
+ *
344
+ * @since 2025-09-18
345
+ */
346
+ sequenceS: function (ios) {
347
+ return function () {
348
+ var entries = Object.entries(ios);
349
+ var result = entries.reduce(function (acc, _a) {
350
+ var _b;
351
+ var key = _a[0], io = _a[1];
352
+ return (__assign(__assign({}, acc), (_b = {}, _b[key] = io(), _b)));
353
+ }, {});
354
+ return result;
355
+ };
356
+ },
357
+ /**
358
+ * Executes an IO for its side effects, discarding the result.
359
+ * @description Runs an IO but returns the original value, useful for IOs
360
+ * that perform side effects where the result isn't needed.
361
+ *
362
+ * @template A - The type of the value
363
+ * @param {function(A): IO<unknown>} f - Function that returns an IO (result discarded)
364
+ * @returns {function(IO<A>): IO<A>} A function that executes side effects
365
+ *
366
+ * @category Combinators
367
+ * @example
368
+ * ```typescript
369
+ * const log = (msg: string): IO<void> => () => console.log(msg);
370
+ *
371
+ * const io = IO.chainFirst((n: number) => log(`Got: ${n}`))(
372
+ * IO.of(42)
373
+ * );
374
+ * IO.run(io); // logs "Got: 42", returns 42
375
+ * ```
376
+ *
377
+ * @since 2025-09-18
378
+ */
379
+ chainFirst: function (f) {
380
+ return function (io) {
381
+ return function () {
382
+ var a = io();
383
+ f(a)();
384
+ return a;
385
+ };
386
+ };
387
+ },
388
+ };
389
+ //# sourceMappingURL=io.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.mjs","sourceRoot":"","sources":["../src/io.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=io.test.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.test.d.mts","sourceRoot":"","sources":["../src/io.test.mts"],"names":[],"mappings":""}