@satoshibits/functional 1.1.3 → 1.2.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.test.d.ts +2 -0
- package/dist/array-utils.test.d.ts.map +1 -0
- package/dist/array-utils.test.js +256 -0
- package/dist/array-utils.test.js.map +1 -0
- package/dist/composition.test.d.ts +2 -0
- package/dist/composition.test.d.ts.map +1 -0
- package/dist/composition.test.js +409 -0
- package/dist/composition.test.js.map +1 -0
- package/dist/integration.test.d.mts +2 -0
- package/dist/integration.test.d.mts.map +1 -0
- package/dist/integration.test.mjs +486 -0
- package/dist/integration.test.mjs.map +1 -0
- package/dist/io.test.d.mts +2 -0
- package/dist/io.test.d.mts.map +1 -0
- package/dist/io.test.mjs +373 -0
- package/dist/io.test.mjs.map +1 -0
- package/dist/laws.test.d.mts +2 -0
- package/dist/laws.test.d.mts.map +1 -0
- package/dist/laws.test.mjs +614 -0
- package/dist/laws.test.mjs.map +1 -0
- package/dist/object-utils.test.d.ts +2 -0
- package/dist/object-utils.test.d.ts.map +1 -0
- package/dist/object-utils.test.js +286 -0
- package/dist/object-utils.test.js.map +1 -0
- package/dist/option-additions.test.d.mts +2 -0
- package/dist/option-additions.test.d.mts.map +1 -0
- package/dist/option-additions.test.mjs +325 -0
- package/dist/option-additions.test.mjs.map +1 -0
- package/dist/option.test.d.ts +6 -0
- package/dist/option.test.d.ts.map +1 -0
- package/dist/option.test.js +606 -0
- package/dist/option.test.js.map +1 -0
- package/dist/performance.test.d.ts +2 -0
- package/dist/performance.test.d.ts.map +1 -0
- package/dist/performance.test.js +424 -0
- package/dist/performance.test.js.map +1 -0
- package/dist/pipeline.test.d.ts +2 -0
- package/dist/pipeline.test.d.ts.map +1 -0
- package/dist/pipeline.test.js +445 -0
- package/dist/pipeline.test.js.map +1 -0
- package/dist/predicates.test.d.ts +2 -0
- package/dist/predicates.test.d.ts.map +1 -0
- package/dist/predicates.test.js +375 -0
- package/dist/predicates.test.js.map +1 -0
- package/dist/reader-result.d.mts +72 -0
- package/dist/reader-result.d.mts.map +1 -1
- package/dist/reader-result.mjs +89 -0
- package/dist/reader-result.mjs.map +1 -1
- package/dist/reader-result.test.d.ts +2 -0
- package/dist/reader-result.test.d.ts.map +1 -0
- package/dist/reader-result.test.js +1397 -0
- package/dist/reader-result.test.js.map +1 -0
- package/dist/reader.test.d.mts +2 -0
- package/dist/reader.test.d.mts.map +1 -0
- package/dist/reader.test.mjs +288 -0
- package/dist/reader.test.mjs.map +1 -0
- package/dist/result-additions.test.d.mts +2 -0
- package/dist/result-additions.test.d.mts.map +1 -0
- package/dist/result-additions.test.mjs +325 -0
- package/dist/result-additions.test.mjs.map +1 -0
- package/dist/result.test.d.ts +2 -0
- package/dist/result.test.d.ts.map +1 -0
- package/dist/result.test.js +453 -0
- package/dist/result.test.js.map +1 -0
- package/dist/task.test.d.mts +2 -0
- package/dist/task.test.d.mts.map +1 -0
- package/dist/task.test.mjs +1004 -0
- package/dist/task.test.mjs.map +1 -0
- package/dist/types.test.d.ts +6 -0
- package/dist/types.test.d.ts.map +1 -0
- package/dist/types.test.js +447 -0
- package/dist/types.test.js.map +1 -0
- package/dist/validation.test.d.ts +2 -0
- package/dist/validation.test.d.ts.map +1 -0
- package/dist/validation.test.js +518 -0
- package/dist/validation.test.js.map +1 -0
- package/package.json +13 -12
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { ap, chainFirst, Do, isNone, isSome, none, Option, sequenceT, some, traverse, } from "./option.mjs";
|
|
4
|
+
describe("Option additions", function () {
|
|
5
|
+
describe("Type Guards", function () {
|
|
6
|
+
it("isSome should return true for Some values", function () {
|
|
7
|
+
expect(isSome(some(42))).toBe(true);
|
|
8
|
+
expect(isSome(some("hello"))).toBe(true);
|
|
9
|
+
expect(isSome(some(null))).toBe(true);
|
|
10
|
+
expect(isSome(some(undefined))).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
it("isSome should return false for None", function () {
|
|
13
|
+
expect(isSome(none())).toBe(false);
|
|
14
|
+
});
|
|
15
|
+
it("isNone should return true for None", function () {
|
|
16
|
+
expect(isNone(none())).toBe(true);
|
|
17
|
+
});
|
|
18
|
+
it("isNone should return false for Some values", function () {
|
|
19
|
+
expect(isNone(some(42))).toBe(false);
|
|
20
|
+
expect(isNone(some("hello"))).toBe(false);
|
|
21
|
+
expect(isNone(some(null))).toBe(false);
|
|
22
|
+
expect(isNone(some(undefined))).toBe(false);
|
|
23
|
+
});
|
|
24
|
+
it("type guards should be exhaustive", function () {
|
|
25
|
+
var opt = some(42);
|
|
26
|
+
expect(isSome(opt) || isNone(opt)).toBe(true);
|
|
27
|
+
expect(isSome(opt) && isNone(opt)).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe("chainFirst", function () {
|
|
31
|
+
it("should execute side effect and return original value on Some", function () {
|
|
32
|
+
var sideEffect = vi.fn(function (n) { return some("logged: ".concat(n)); });
|
|
33
|
+
var result = chainFirst(sideEffect)(some(42));
|
|
34
|
+
expect(result).toEqual(some(42));
|
|
35
|
+
expect(sideEffect).toHaveBeenCalledWith(42);
|
|
36
|
+
});
|
|
37
|
+
it("should not execute side effect on None", function () {
|
|
38
|
+
var sideEffect = vi.fn(function (n) { return some("logged: ".concat(n)); });
|
|
39
|
+
var result = chainFirst(sideEffect)(none());
|
|
40
|
+
expect(result).toEqual(none());
|
|
41
|
+
expect(sideEffect).not.toHaveBeenCalled();
|
|
42
|
+
});
|
|
43
|
+
it("should return None if side effect returns None", function () {
|
|
44
|
+
var sideEffect = function (_n) { return none(); };
|
|
45
|
+
var result = chainFirst(sideEffect)(some(42));
|
|
46
|
+
expect(result).toEqual(none());
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe("sequenceT", function () {
|
|
50
|
+
it("should combine tuple of Some values", function () {
|
|
51
|
+
var o1 = some(1);
|
|
52
|
+
var o2 = some("hello");
|
|
53
|
+
var o3 = some(true);
|
|
54
|
+
var combined = sequenceT(o1, o2, o3);
|
|
55
|
+
expect(combined).toEqual(some([1, "hello", true]));
|
|
56
|
+
});
|
|
57
|
+
it("should return None if any value is None", function () {
|
|
58
|
+
var o1 = some(1);
|
|
59
|
+
var o2 = none();
|
|
60
|
+
var o3 = some(true);
|
|
61
|
+
var combined = sequenceT(o1, o2, o3);
|
|
62
|
+
expect(combined).toEqual(none());
|
|
63
|
+
});
|
|
64
|
+
it("should handle empty tuple", function () {
|
|
65
|
+
var combined = sequenceT();
|
|
66
|
+
expect(combined).toEqual(some([]));
|
|
67
|
+
});
|
|
68
|
+
it("should short-circuit evaluation", function () {
|
|
69
|
+
var o1 = some(1);
|
|
70
|
+
var o2 = none();
|
|
71
|
+
var o3 = some(3);
|
|
72
|
+
var combined = sequenceT(o1, o2, o3);
|
|
73
|
+
expect(combined).toEqual(none());
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe("traverse", function () {
|
|
77
|
+
it("should map and sequence, returning Some with all values", function () {
|
|
78
|
+
var fn = function (s) {
|
|
79
|
+
return s.length > 0 ? some(s.length) : none();
|
|
80
|
+
};
|
|
81
|
+
var traverseFn = traverse(fn);
|
|
82
|
+
expect(traverseFn(["a", "bb", "ccc"])).toEqual(some([1, 2, 3]));
|
|
83
|
+
});
|
|
84
|
+
it("should return None if any mapping returns None", function () {
|
|
85
|
+
var fn = function (s) {
|
|
86
|
+
return s.length > 0 ? some(s.length) : none();
|
|
87
|
+
};
|
|
88
|
+
var traverseFn = traverse(fn);
|
|
89
|
+
expect(traverseFn(["a", "", "ccc"])).toEqual(none());
|
|
90
|
+
});
|
|
91
|
+
it("should handle empty array", function () {
|
|
92
|
+
var fn = function (s) { return some(s.length); };
|
|
93
|
+
var traverseFn = traverse(fn);
|
|
94
|
+
expect(traverseFn([])).toEqual(some([]));
|
|
95
|
+
});
|
|
96
|
+
it("should short-circuit on first None", function () {
|
|
97
|
+
var calls = [];
|
|
98
|
+
var fn = function (s) {
|
|
99
|
+
calls.push(s);
|
|
100
|
+
return s === "b" ? none() : some(s.length);
|
|
101
|
+
};
|
|
102
|
+
var traverseFn = traverse(fn);
|
|
103
|
+
var result = traverseFn(["a", "b", "c", "d"]);
|
|
104
|
+
expect(result).toEqual(none());
|
|
105
|
+
expect(calls).toEqual(["a", "b"]); // should not call fn for "c" and "d"
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
describe("ap", function () {
|
|
109
|
+
it("should apply Some function to Some value", function () {
|
|
110
|
+
var add = function (a) { return function (b) { return a + b; }; };
|
|
111
|
+
var optionFn = some(add(5));
|
|
112
|
+
var optionValue = some(3);
|
|
113
|
+
var result = ap(optionValue)(optionFn);
|
|
114
|
+
expect(result).toEqual(some(8));
|
|
115
|
+
});
|
|
116
|
+
it("should return None if function is None", function () {
|
|
117
|
+
var optionFn = none();
|
|
118
|
+
var optionValue = some(3);
|
|
119
|
+
var result = ap(optionValue)(optionFn);
|
|
120
|
+
expect(result).toEqual(none());
|
|
121
|
+
});
|
|
122
|
+
it("should return None if value is None", function () {
|
|
123
|
+
var optionFn = some(function (n) { return n * 2; });
|
|
124
|
+
var optionValue = none();
|
|
125
|
+
var result = ap(optionValue)(optionFn);
|
|
126
|
+
expect(result).toEqual(none());
|
|
127
|
+
});
|
|
128
|
+
it("should return None if both are None", function () {
|
|
129
|
+
var optionFn = none();
|
|
130
|
+
var optionValue = none();
|
|
131
|
+
var result = ap(optionValue)(optionFn);
|
|
132
|
+
expect(result).toEqual(none());
|
|
133
|
+
});
|
|
134
|
+
it("should work with curried functions", function () {
|
|
135
|
+
var add = function (a) { return function (b) { return function (c) { return a + b + c; }; }; };
|
|
136
|
+
var option10 = some(10);
|
|
137
|
+
var option5 = some(5);
|
|
138
|
+
// Start with the curried function wrapped in Some
|
|
139
|
+
var addInOption = some(add);
|
|
140
|
+
// Apply first argument
|
|
141
|
+
var add3 = ap(some(3))(addInOption);
|
|
142
|
+
// Apply second argument
|
|
143
|
+
var add3and10 = ap(option10)(add3);
|
|
144
|
+
// Apply third argument
|
|
145
|
+
var result = ap(option5)(add3and10);
|
|
146
|
+
expect(result).toEqual(some(18)); // 3 + 10 + 5
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
describe("Do notation", function () {
|
|
150
|
+
it("should chain successful computations with Some", function () {
|
|
151
|
+
var result = Do()
|
|
152
|
+
.bind("x", some(5))
|
|
153
|
+
.bind("y", some(3))
|
|
154
|
+
.map(function (_a) {
|
|
155
|
+
var x = _a.x, y = _a.y;
|
|
156
|
+
return x + y;
|
|
157
|
+
});
|
|
158
|
+
expect(result).toEqual(some(8));
|
|
159
|
+
});
|
|
160
|
+
it("should handle dependent bindings", function () {
|
|
161
|
+
var result = Do()
|
|
162
|
+
.bind("a", some(10))
|
|
163
|
+
.bind("b", function (_a) {
|
|
164
|
+
var a = _a.a;
|
|
165
|
+
return (a > 5 ? some(a * 2) : none());
|
|
166
|
+
})
|
|
167
|
+
.bind("c", function (_a) {
|
|
168
|
+
var b = _a.b;
|
|
169
|
+
return some(b + 1);
|
|
170
|
+
})
|
|
171
|
+
.map(function (_a) {
|
|
172
|
+
var a = _a.a, b = _a.b, c = _a.c;
|
|
173
|
+
return ({ original: a, doubled: b, final: c });
|
|
174
|
+
});
|
|
175
|
+
expect(result).toEqual(some({ original: 10, doubled: 20, final: 21 }));
|
|
176
|
+
});
|
|
177
|
+
it("should short-circuit on first None", function () {
|
|
178
|
+
var fn1 = vi.fn(function () { return some(5); });
|
|
179
|
+
var fn2 = vi.fn(function () { return none(); });
|
|
180
|
+
var fn3 = vi.fn(function () { return some(100); });
|
|
181
|
+
var result = Do()
|
|
182
|
+
.bind("x", fn1())
|
|
183
|
+
.bind("y", fn2())
|
|
184
|
+
.bind("z", fn3()) // This binding happens but is ignored
|
|
185
|
+
.map(function (_a) {
|
|
186
|
+
var x = _a.x, y = _a.y, z = _a.z;
|
|
187
|
+
return x + y + z;
|
|
188
|
+
});
|
|
189
|
+
expect(result).toEqual(none());
|
|
190
|
+
expect(fn1).toHaveBeenCalledTimes(1);
|
|
191
|
+
expect(fn2).toHaveBeenCalledTimes(1);
|
|
192
|
+
expect(fn3).toHaveBeenCalledTimes(1); // Created but not used in chain
|
|
193
|
+
});
|
|
194
|
+
it("should work with flatMap for Option-returning operations", function () {
|
|
195
|
+
var safeDivide = function (a, b) {
|
|
196
|
+
return b === 0 ? none() : some(a / b);
|
|
197
|
+
};
|
|
198
|
+
var result = Do()
|
|
199
|
+
.bind("x", some(10))
|
|
200
|
+
.bind("y", some(2))
|
|
201
|
+
.flatMap(function (_a) {
|
|
202
|
+
var x = _a.x, y = _a.y;
|
|
203
|
+
return safeDivide(x, y);
|
|
204
|
+
});
|
|
205
|
+
expect(result).toEqual(some(5));
|
|
206
|
+
var errorResult = Do()
|
|
207
|
+
.bind("x", some(10))
|
|
208
|
+
.bind("y", some(0))
|
|
209
|
+
.flatMap(function (_a) {
|
|
210
|
+
var x = _a.x, y = _a.y;
|
|
211
|
+
return safeDivide(x, y);
|
|
212
|
+
});
|
|
213
|
+
expect(errorResult).toEqual(none());
|
|
214
|
+
});
|
|
215
|
+
it("should provide value() to get the current context", function () {
|
|
216
|
+
var builder = Do().bind("x", some(5)).bind("y", some(3));
|
|
217
|
+
var contextOption = builder.value();
|
|
218
|
+
expect(contextOption).toEqual(some({ x: 5, y: 3 }));
|
|
219
|
+
});
|
|
220
|
+
it("should handle conditional bindings", function () {
|
|
221
|
+
var result = Do()
|
|
222
|
+
.bind("x", some(5))
|
|
223
|
+
.bind("y", function (_a) {
|
|
224
|
+
var x = _a.x;
|
|
225
|
+
return x > 10 ? some(x * 2) : none();
|
|
226
|
+
})
|
|
227
|
+
.map(function (_a) {
|
|
228
|
+
var x = _a.x, y = _a.y;
|
|
229
|
+
return x + y;
|
|
230
|
+
});
|
|
231
|
+
expect(result).toEqual(none());
|
|
232
|
+
var successResult = Do()
|
|
233
|
+
.bind("x", some(15))
|
|
234
|
+
.bind("y", function (_a) {
|
|
235
|
+
var x = _a.x;
|
|
236
|
+
return x > 10 ? some(x * 2) : none();
|
|
237
|
+
})
|
|
238
|
+
.map(function (_a) {
|
|
239
|
+
var x = _a.x, y = _a.y;
|
|
240
|
+
return x + y;
|
|
241
|
+
});
|
|
242
|
+
expect(successResult).toEqual(some(45)); // 15 + 30
|
|
243
|
+
});
|
|
244
|
+
it("should compose with other Option utilities", function () {
|
|
245
|
+
var parseNumber = function (s) {
|
|
246
|
+
var n = Number(s);
|
|
247
|
+
return isNaN(n) ? none() : some(n);
|
|
248
|
+
};
|
|
249
|
+
var result = Do()
|
|
250
|
+
.bind("a", parseNumber("10"))
|
|
251
|
+
.bind("b", parseNumber("20"))
|
|
252
|
+
.bind("sum", function (_a) {
|
|
253
|
+
var a = _a.a, b = _a.b;
|
|
254
|
+
return some(a + b);
|
|
255
|
+
})
|
|
256
|
+
.bind("doubled", function (_a) {
|
|
257
|
+
var sum = _a.sum;
|
|
258
|
+
return sum > 0 ? some(sum * 2) : none();
|
|
259
|
+
})
|
|
260
|
+
.map(function (_a) {
|
|
261
|
+
var doubled = _a.doubled;
|
|
262
|
+
return doubled;
|
|
263
|
+
});
|
|
264
|
+
expect(result).toEqual(some(60));
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
describe("edge cases", function () {
|
|
268
|
+
it("should handle undefined and null correctly", function () {
|
|
269
|
+
var fn = function (val) {
|
|
270
|
+
if (val == null)
|
|
271
|
+
return none();
|
|
272
|
+
// Handle objects explicitly with JSON.stringify
|
|
273
|
+
if (typeof val === 'object' && val !== null) {
|
|
274
|
+
return some(JSON.stringify(val));
|
|
275
|
+
}
|
|
276
|
+
// At this point val is a primitive (string, number, boolean, symbol, bigint)
|
|
277
|
+
if (typeof val === 'symbol')
|
|
278
|
+
return some(val.toString());
|
|
279
|
+
if (typeof val === 'bigint')
|
|
280
|
+
return some(val.toString());
|
|
281
|
+
if (typeof val === 'boolean')
|
|
282
|
+
return some(val.toString());
|
|
283
|
+
if (typeof val === 'number')
|
|
284
|
+
return some(val.toString());
|
|
285
|
+
// Now val must be a string
|
|
286
|
+
return some(val);
|
|
287
|
+
};
|
|
288
|
+
var traverseFn = traverse(fn);
|
|
289
|
+
expect(traverseFn([1, null, 3])).toEqual(none());
|
|
290
|
+
expect(traverseFn([1, 2, 3])).toEqual(some(["1", "2", "3"]));
|
|
291
|
+
});
|
|
292
|
+
it("should handle nested Options", function () {
|
|
293
|
+
var nestedSome = some(some(42));
|
|
294
|
+
var flattened = Option.flatMap(function (o) { return o; })(nestedSome);
|
|
295
|
+
expect(flattened).toEqual(some(42));
|
|
296
|
+
var nestedNone = some(none());
|
|
297
|
+
var flattenedNone = Option.flatMap(function (o) { return o; })(nestedNone);
|
|
298
|
+
expect(flattenedNone).toEqual(none());
|
|
299
|
+
});
|
|
300
|
+
it("should handle empty Do notation", function () {
|
|
301
|
+
var result = Do().map(function () { return 42; });
|
|
302
|
+
expect(result).toEqual(some(42));
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
describe("integration with sequenceOption", function () {
|
|
306
|
+
it("should work with existing sequenceOption", function () {
|
|
307
|
+
var options = [some(1), some(2), some(3)];
|
|
308
|
+
var sequenced = Option.sequenceOption(options);
|
|
309
|
+
expect(sequenced).toEqual(some([1, 2, 3]));
|
|
310
|
+
});
|
|
311
|
+
it("sequenceT should have consistent behavior with sequenceOption", function () {
|
|
312
|
+
var o1 = some(1);
|
|
313
|
+
var o2 = some(2);
|
|
314
|
+
var o3 = some(3);
|
|
315
|
+
var tupleResult = sequenceT(o1, o2, o3);
|
|
316
|
+
var arrayResult = Option.sequenceOption([o1, o2, o3]);
|
|
317
|
+
expect(isSome(tupleResult)).toBe(isSome(arrayResult));
|
|
318
|
+
if (isSome(tupleResult) && isSome(arrayResult)) {
|
|
319
|
+
expect(tupleResult.value).toEqual([1, 2, 3]);
|
|
320
|
+
expect(arrayResult.value).toEqual([1, 2, 3]);
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
//# sourceMappingURL=option-additions.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"option-additions.test.mjs","sourceRoot":"","sources":["../src/option-additions.test.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"option.test.d.ts","sourceRoot":"","sources":["../src/option.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|