@satoshibits/functional 1.1.0 → 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 (130) 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 +13 -0
  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 +13 -0
  11. package/dist/composition.d.mts.map +1 -1
  12. package/dist/composition.mjs +13 -0
  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/integration.test.d.mts +2 -0
  19. package/dist/integration.test.d.mts.map +1 -0
  20. package/dist/integration.test.mjs +486 -0
  21. package/dist/integration.test.mjs.map +1 -0
  22. package/dist/io.d.mts +12 -0
  23. package/dist/io.d.mts.map +1 -1
  24. package/dist/io.mjs +12 -0
  25. package/dist/io.mjs.map +1 -1
  26. package/dist/io.test.d.mts +2 -0
  27. package/dist/io.test.d.mts.map +1 -0
  28. package/dist/io.test.mjs +373 -0
  29. package/dist/io.test.mjs.map +1 -0
  30. package/dist/laws.test.d.mts +2 -0
  31. package/dist/laws.test.d.mts.map +1 -0
  32. package/dist/laws.test.mjs +614 -0
  33. package/dist/laws.test.mjs.map +1 -0
  34. package/dist/object-utils.d.mts +11 -0
  35. package/dist/object-utils.d.mts.map +1 -1
  36. package/dist/object-utils.mjs +11 -0
  37. package/dist/object-utils.mjs.map +1 -1
  38. package/dist/object-utils.test.d.ts +2 -0
  39. package/dist/object-utils.test.d.ts.map +1 -0
  40. package/dist/object-utils.test.js +286 -0
  41. package/dist/object-utils.test.js.map +1 -0
  42. package/dist/option-additions.test.d.mts +2 -0
  43. package/dist/option-additions.test.d.mts.map +1 -0
  44. package/dist/option-additions.test.mjs +325 -0
  45. package/dist/option-additions.test.mjs.map +1 -0
  46. package/dist/option.d.mts +20 -3
  47. package/dist/option.d.mts.map +1 -1
  48. package/dist/option.mjs +20 -3
  49. package/dist/option.mjs.map +1 -1
  50. package/dist/option.test.d.ts +6 -0
  51. package/dist/option.test.d.ts.map +1 -0
  52. package/dist/option.test.js +606 -0
  53. package/dist/option.test.js.map +1 -0
  54. package/dist/performance.d.mts +26 -9
  55. package/dist/performance.d.mts.map +1 -1
  56. package/dist/performance.mjs +26 -9
  57. package/dist/performance.mjs.map +1 -1
  58. package/dist/performance.test.d.ts +2 -0
  59. package/dist/performance.test.d.ts.map +1 -0
  60. package/dist/performance.test.js +424 -0
  61. package/dist/performance.test.js.map +1 -0
  62. package/dist/pipeline.d.mts +12 -0
  63. package/dist/pipeline.d.mts.map +1 -1
  64. package/dist/pipeline.mjs +12 -0
  65. package/dist/pipeline.mjs.map +1 -1
  66. package/dist/pipeline.test.d.ts +2 -0
  67. package/dist/pipeline.test.d.ts.map +1 -0
  68. package/dist/pipeline.test.js +445 -0
  69. package/dist/pipeline.test.js.map +1 -0
  70. package/dist/predicates.d.mts +12 -0
  71. package/dist/predicates.d.mts.map +1 -1
  72. package/dist/predicates.mjs +12 -0
  73. package/dist/predicates.mjs.map +1 -1
  74. package/dist/predicates.test.d.ts +2 -0
  75. package/dist/predicates.test.d.ts.map +1 -0
  76. package/dist/predicates.test.js +375 -0
  77. package/dist/predicates.test.js.map +1 -0
  78. package/dist/reader-result.d.mts +37 -16
  79. package/dist/reader-result.d.mts.map +1 -1
  80. package/dist/reader-result.mjs +37 -16
  81. package/dist/reader-result.mjs.map +1 -1
  82. package/dist/reader-result.test.d.ts +2 -0
  83. package/dist/reader-result.test.d.ts.map +1 -0
  84. package/dist/reader-result.test.js +1259 -0
  85. package/dist/reader-result.test.js.map +1 -0
  86. package/dist/reader.d.mts +12 -0
  87. package/dist/reader.d.mts.map +1 -1
  88. package/dist/reader.mjs +12 -0
  89. package/dist/reader.mjs.map +1 -1
  90. package/dist/reader.test.d.mts +2 -0
  91. package/dist/reader.test.d.mts.map +1 -0
  92. package/dist/reader.test.mjs +288 -0
  93. package/dist/reader.test.mjs.map +1 -0
  94. package/dist/result-additions.test.d.mts +2 -0
  95. package/dist/result-additions.test.d.mts.map +1 -0
  96. package/dist/result-additions.test.mjs +325 -0
  97. package/dist/result-additions.test.mjs.map +1 -0
  98. package/dist/result.d.mts +12 -0
  99. package/dist/result.d.mts.map +1 -1
  100. package/dist/result.mjs +12 -0
  101. package/dist/result.mjs.map +1 -1
  102. package/dist/result.test.d.ts +2 -0
  103. package/dist/result.test.d.ts.map +1 -0
  104. package/dist/result.test.js +453 -0
  105. package/dist/result.test.js.map +1 -0
  106. package/dist/task.d.mts +13 -0
  107. package/dist/task.d.mts.map +1 -1
  108. package/dist/task.mjs +13 -0
  109. package/dist/task.mjs.map +1 -1
  110. package/dist/task.test.d.mts +2 -0
  111. package/dist/task.test.d.mts.map +1 -0
  112. package/dist/task.test.mjs +1006 -0
  113. package/dist/task.test.mjs.map +1 -0
  114. package/dist/types.d.mts +12 -0
  115. package/dist/types.d.mts.map +1 -1
  116. package/dist/types.mjs +12 -0
  117. package/dist/types.mjs.map +1 -1
  118. package/dist/types.test.d.ts +6 -0
  119. package/dist/types.test.d.ts.map +1 -0
  120. package/dist/types.test.js +447 -0
  121. package/dist/types.test.js.map +1 -0
  122. package/dist/validation.d.mts +12 -0
  123. package/dist/validation.d.mts.map +1 -1
  124. package/dist/validation.mjs +12 -0
  125. package/dist/validation.mjs.map +1 -1
  126. package/dist/validation.test.d.ts +2 -0
  127. package/dist/validation.test.d.ts.map +1 -0
  128. package/dist/validation.test.js +518 -0
  129. package/dist/validation.test.js.map +1 -0
  130. package/package.json +77 -13
@@ -0,0 +1,373 @@
1
+ "use strict";
2
+ import { describe, expect, it, vi } from "vitest";
3
+ import { IO } from "./io.mjs";
4
+ describe("IO", function () {
5
+ describe("laziness", function () {
6
+ it("should not execute until run", function () {
7
+ var effect = vi.fn(function () { return 42; });
8
+ var io = effect;
9
+ expect(effect).not.toHaveBeenCalled();
10
+ var result = IO.run(io);
11
+ expect(effect).toHaveBeenCalledTimes(1);
12
+ expect(result).toBe(42);
13
+ });
14
+ it("should execute each time run is called", function () {
15
+ var effect = vi.fn(function () { return "test"; });
16
+ var io = effect;
17
+ IO.run(io);
18
+ IO.run(io);
19
+ expect(effect).toHaveBeenCalledTimes(2);
20
+ });
21
+ });
22
+ describe("run", function () {
23
+ it("should execute an IO and return its value", function () {
24
+ var io = IO.of(42);
25
+ var result = IO.run(io);
26
+ expect(result).toBe(42);
27
+ });
28
+ it("should handle IO side effects", function () {
29
+ var sideEffectValue = 0;
30
+ var io = function () {
31
+ sideEffectValue = 100;
32
+ return sideEffectValue;
33
+ };
34
+ expect(sideEffectValue).toBe(0);
35
+ var result = IO.run(io);
36
+ expect(sideEffectValue).toBe(100);
37
+ expect(result).toBe(100);
38
+ });
39
+ it("should handle IO that throws errors", function () {
40
+ var io = function () {
41
+ throw new Error("IO error");
42
+ };
43
+ expect(function () { return IO.run(io); }).toThrow("IO error");
44
+ });
45
+ it("should work with complex IO chains", function () {
46
+ var io = IO.chain(function (n) {
47
+ return IO.chain(function (doubled) {
48
+ return IO.of(doubled + 1);
49
+ })(IO.of(n * 2));
50
+ })(IO.of(5));
51
+ expect(IO.run(io)).toBe(11);
52
+ });
53
+ });
54
+ describe("of", function () {
55
+ it("should create an IO that returns the value", function () {
56
+ var io = IO.of(42);
57
+ expect(IO.run(io)).toBe(42);
58
+ });
59
+ it("should work with complex values", function () {
60
+ var value = { a: 1, b: "test" };
61
+ var io = IO.of(value);
62
+ expect(IO.run(io)).toEqual(value);
63
+ });
64
+ it("should always return the same value", function () {
65
+ var io = IO.of(42);
66
+ expect(IO.run(io)).toBe(42);
67
+ expect(IO.run(io)).toBe(42);
68
+ expect(IO.run(io)).toBe(42);
69
+ });
70
+ });
71
+ describe("map", function () {
72
+ it("should transform the value", function () {
73
+ var io = IO.of(5);
74
+ var mapped = IO.map(function (n) { return n * 2; })(io);
75
+ expect(IO.run(mapped)).toBe(10);
76
+ });
77
+ it("should not execute the original IO until run", function () {
78
+ var effect = vi.fn(function () { return 5; });
79
+ var io = effect;
80
+ var mapped = IO.map(function (n) { return n + 1; })(io);
81
+ expect(effect).not.toHaveBeenCalled();
82
+ IO.run(mapped);
83
+ expect(effect).toHaveBeenCalledTimes(1);
84
+ });
85
+ it("should chain transformations", function () {
86
+ var io = IO.of(5);
87
+ var mapped = IO.map(function (n) { return n * 2; })(IO.map(function (n) { return n + 1; })(io));
88
+ expect(IO.run(mapped)).toBe(12); // (5 + 1) * 2
89
+ });
90
+ });
91
+ describe("chain / flatMap", function () {
92
+ it("should sequence computations", function () {
93
+ var state = 0;
94
+ var io1 = function () {
95
+ state = 10;
96
+ return state;
97
+ };
98
+ var io2 = function (n) { return function () {
99
+ state = n * 2;
100
+ return state;
101
+ }; };
102
+ var chained = IO.chain(io2)(io1);
103
+ var result = IO.run(chained);
104
+ expect(result).toBe(20);
105
+ expect(state).toBe(20);
106
+ });
107
+ it("flatMap should be an alias for chain", function () {
108
+ var io1 = IO.of(5);
109
+ var io2 = function (n) { return IO.of(n * 2); };
110
+ var chained = IO.chain(io2)(io1);
111
+ var flatMapped = IO.flatMap(io2)(io1);
112
+ expect(IO.run(chained)).toBe(10);
113
+ expect(IO.run(flatMapped)).toBe(10);
114
+ });
115
+ it("should maintain laziness through the chain", function () {
116
+ var effect1 = vi.fn(function () { return 1; });
117
+ var effect2 = vi.fn(function (n) { return n + 1; });
118
+ var io1 = effect1;
119
+ var chained = IO.chain(function (n) { return function () { return effect2(n); }; })(io1);
120
+ expect(effect1).not.toHaveBeenCalled();
121
+ expect(effect2).not.toHaveBeenCalled();
122
+ IO.run(chained);
123
+ expect(effect1).toHaveBeenCalledTimes(1);
124
+ expect(effect2).toHaveBeenCalledTimes(1);
125
+ });
126
+ });
127
+ describe("side effect ordering", function () {
128
+ it("should preserve side effect ordering in chain", function () {
129
+ var log = [];
130
+ var io1 = function () {
131
+ log.push("io1");
132
+ return 1;
133
+ };
134
+ var io2 = function (n) {
135
+ return function () {
136
+ log.push("io2:".concat(n));
137
+ return n * 2;
138
+ };
139
+ };
140
+ var io3 = function (n) {
141
+ return function () {
142
+ log.push("io3:".concat(n));
143
+ return n + 1;
144
+ };
145
+ };
146
+ var program = IO.chain(io3)(IO.chain(io2)(io1));
147
+ expect(log).toEqual([]);
148
+ var result = IO.run(program);
149
+ expect(log).toEqual(["io1", "io2:1", "io3:2"]);
150
+ expect(result).toBe(3);
151
+ });
152
+ });
153
+ describe("ap", function () {
154
+ it("should apply an IO of a function to an IO of a value", function () {
155
+ var add = function (a) { return function (b) { return a + b; }; };
156
+ var ioFn = IO.of(add(5));
157
+ var ioValue = IO.of(3);
158
+ var result = IO.ap(ioValue)(ioFn);
159
+ expect(IO.run(result)).toBe(8);
160
+ });
161
+ it("should maintain laziness", function () {
162
+ var fnEffect = vi.fn(function () { return function (n) { return n * 2; }; });
163
+ var valueEffect = vi.fn(function () { return 5; });
164
+ var ioFn = fnEffect;
165
+ var ioValue = valueEffect;
166
+ var applied = IO.ap(ioValue)(ioFn);
167
+ expect(fnEffect).not.toHaveBeenCalled();
168
+ expect(valueEffect).not.toHaveBeenCalled();
169
+ var result = IO.run(applied);
170
+ expect(fnEffect).toHaveBeenCalledTimes(1);
171
+ expect(valueEffect).toHaveBeenCalledTimes(1);
172
+ expect(result).toBe(10);
173
+ });
174
+ });
175
+ describe("sequence", function () {
176
+ it("should convert array of IOs to IO of array", function () {
177
+ var ios = [IO.of(1), IO.of(2), IO.of(3)];
178
+ var sequenced = IO.sequence(ios);
179
+ expect(IO.run(sequenced)).toEqual([1, 2, 3]);
180
+ });
181
+ it("should execute IOs in order", function () {
182
+ var log = [];
183
+ var ios = [1, 2, 3].map(function (n) { return function () {
184
+ log.push(n);
185
+ return n;
186
+ }; });
187
+ var sequenced = IO.sequence(ios);
188
+ expect(log).toEqual([]);
189
+ IO.run(sequenced);
190
+ expect(log).toEqual([1, 2, 3]);
191
+ });
192
+ it("should handle empty array", function () {
193
+ var sequenced = IO.sequence([]);
194
+ expect(IO.run(sequenced)).toEqual([]);
195
+ });
196
+ });
197
+ describe("traverse", function () {
198
+ it("should map and sequence", function () {
199
+ var fn = function (n) { return IO.of(n * 2); };
200
+ var traverse = IO.traverse(fn);
201
+ var result = IO.run(traverse([1, 2, 3]));
202
+ expect(result).toEqual([2, 4, 6]);
203
+ });
204
+ it("should handle empty array", function () {
205
+ var fn = function (n) { return IO.of(n * 2); };
206
+ var traverse = IO.traverse(fn);
207
+ var result = IO.run(traverse([]));
208
+ expect(result).toEqual([]);
209
+ });
210
+ it("should execute in order", function () {
211
+ var log = [];
212
+ var fn = function (n) {
213
+ return function () {
214
+ log.push("process:".concat(n));
215
+ return n * 2;
216
+ };
217
+ };
218
+ var traverse = IO.traverse(fn);
219
+ var io = traverse([1, 2, 3]);
220
+ expect(log).toEqual([]);
221
+ var result = IO.run(io);
222
+ expect(log).toEqual(["process:1", "process:2", "process:3"]);
223
+ expect(result).toEqual([2, 4, 6]);
224
+ });
225
+ });
226
+ describe("sequenceT", function () {
227
+ it("should combine tuple of IOs", function () {
228
+ var io1 = IO.of(1);
229
+ var io2 = IO.of("hello");
230
+ var io3 = IO.of(true);
231
+ var result = IO.run(IO.sequenceT(io1, io2, io3));
232
+ expect(result).toEqual([1, "hello", true]);
233
+ });
234
+ it("should handle empty tuple", function () {
235
+ var result = IO.run(IO.sequenceT());
236
+ expect(result).toEqual([]);
237
+ });
238
+ it("should maintain laziness", function () {
239
+ var effect1 = vi.fn(function () { return 1; });
240
+ var effect2 = vi.fn(function () { return "test"; });
241
+ var combined = IO.sequenceT(effect1, effect2);
242
+ expect(effect1).not.toHaveBeenCalled();
243
+ expect(effect2).not.toHaveBeenCalled();
244
+ var result = IO.run(combined);
245
+ expect(effect1).toHaveBeenCalledTimes(1);
246
+ expect(effect2).toHaveBeenCalledTimes(1);
247
+ expect(result).toEqual([1, "test"]);
248
+ });
249
+ });
250
+ describe("sequenceS", function () {
251
+ it("should combine record of IOs", function () {
252
+ var ios = {
253
+ a: IO.of(1),
254
+ b: IO.of("hello"),
255
+ c: IO.of(true),
256
+ };
257
+ var result = IO.run(IO.sequenceS(ios));
258
+ expect(result).toEqual({ a: 1, b: "hello", c: true });
259
+ });
260
+ it("should handle empty record", function () {
261
+ var result = IO.run(IO.sequenceS({}));
262
+ expect(result).toEqual({});
263
+ });
264
+ it("should maintain laziness", function () {
265
+ var effects = {
266
+ a: vi.fn(function () { return 1; }),
267
+ b: vi.fn(function () { return "hello"; }),
268
+ };
269
+ var ioStruct = {
270
+ a: effects.a,
271
+ b: effects.b,
272
+ };
273
+ var sequenced = IO.sequenceS(ioStruct);
274
+ expect(effects.a).not.toHaveBeenCalled();
275
+ expect(effects.b).not.toHaveBeenCalled();
276
+ var result = IO.run(sequenced);
277
+ expect(effects.a).toHaveBeenCalledTimes(1);
278
+ expect(effects.b).toHaveBeenCalledTimes(1);
279
+ expect(result).toEqual({ a: 1, b: "hello" });
280
+ });
281
+ });
282
+ describe("chainFirst", function () {
283
+ it("should execute side effect but return original value", function () {
284
+ var log = [];
285
+ var logIO = function (msg) {
286
+ return function () {
287
+ log.push(msg);
288
+ };
289
+ };
290
+ var io = IO.of(42);
291
+ var withLogging = IO.chainFirst(function (n) { return logIO("Got: ".concat(n)); })(io);
292
+ expect(log).toEqual([]);
293
+ var result = IO.run(withLogging);
294
+ expect(log).toEqual(["Got: 42"]);
295
+ expect(result).toBe(42);
296
+ });
297
+ it("should maintain laziness", function () {
298
+ var mainEffect = vi.fn(function () { return 10; });
299
+ var sideEffect = vi.fn(function (n) { return "side: ".concat(n); });
300
+ var io = mainEffect;
301
+ var chained = IO.chainFirst(function (n) { return function () { return sideEffect(n); }; })(io);
302
+ expect(mainEffect).not.toHaveBeenCalled();
303
+ expect(sideEffect).not.toHaveBeenCalled();
304
+ IO.run(chained);
305
+ expect(mainEffect).toHaveBeenCalledTimes(1);
306
+ expect(sideEffect).toHaveBeenCalledTimes(1);
307
+ });
308
+ });
309
+ describe("error handling", function () {
310
+ it("should propagate thrown exceptions", function () {
311
+ var throwingIO = function () {
312
+ throw new Error("Sync Error");
313
+ };
314
+ expect(function () { return IO.run(throwingIO); }).toThrow("Sync Error");
315
+ });
316
+ it("should propagate exceptions through map", function () {
317
+ var io = function () {
318
+ throw new Error("Original");
319
+ };
320
+ var mapped = IO.map(function (n) { return n * 2; })(io);
321
+ expect(function () { return IO.run(mapped); }).toThrow("Original");
322
+ });
323
+ it("should propagate exceptions through chain", function () {
324
+ var io1 = function () { return 5; };
325
+ var io2 = function (_n) {
326
+ return function () {
327
+ throw new Error("Chain error");
328
+ };
329
+ };
330
+ var chained = IO.chain(io2)(io1);
331
+ expect(function () { return IO.run(chained); }).toThrow("Chain error");
332
+ });
333
+ });
334
+ describe("Functor laws", function () {
335
+ it("should satisfy identity law: map(id) ≅ id", function () {
336
+ var io = IO.of(42);
337
+ var id = function (x) { return x; };
338
+ var mapped = IO.map(id)(io);
339
+ expect(IO.run(io)).toEqual(IO.run(mapped));
340
+ });
341
+ it("should satisfy composition law: map(g∘f) ≅ map(g)∘map(f)", function () {
342
+ var io = IO.of(10);
343
+ var f = function (n) { return n * 2; };
344
+ var g = function (n) { return n + 1; };
345
+ var composed1 = IO.map(function (x) { return g(f(x)); })(io);
346
+ var composed2 = IO.map(g)(IO.map(f)(io));
347
+ expect(IO.run(composed1)).toEqual(IO.run(composed2));
348
+ });
349
+ });
350
+ describe("Monad laws", function () {
351
+ it("should satisfy left identity: chain(f)(of(x)) ≅ f(x)", function () {
352
+ var x = 42;
353
+ var f = function (n) { return IO.of(n * 2); };
354
+ var result1 = IO.run(IO.chain(f)(IO.of(x)));
355
+ var result2 = IO.run(f(x));
356
+ expect(result1).toEqual(result2);
357
+ });
358
+ it("should satisfy right identity: chain(of)(m) ≅ m", function () {
359
+ var io = IO.of(42);
360
+ var chained = IO.chain(IO.of)(io);
361
+ expect(IO.run(io)).toEqual(IO.run(chained));
362
+ });
363
+ it("should satisfy associativity: chain(g)(chain(f)(m)) ≅ chain(x => chain(g)(f(x)))(m)", function () {
364
+ var io = IO.of(10);
365
+ var f = function (n) { return IO.of(n * 2); };
366
+ var g = function (n) { return IO.of(n + 1); };
367
+ var left = IO.chain(g)(IO.chain(f)(io));
368
+ var right = IO.chain(function (x) { return IO.chain(g)(f(x)); })(io);
369
+ expect(IO.run(left)).toEqual(IO.run(right));
370
+ });
371
+ });
372
+ });
373
+ //# sourceMappingURL=io.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.test.mjs","sourceRoot":"","sources":["../src/io.test.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=laws.test.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"laws.test.d.mts","sourceRoot":"","sources":["../src/laws.test.mts"],"names":[],"mappings":""}