@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
@@ -0,0 +1,424 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ /* eslint-disable @typescript-eslint/require-await */
40
+ var vitest_1 = require("vitest");
41
+ var performance_mjs_1 = require("./performance.mjs");
42
+ (0, vitest_1.describe)("performance", function () {
43
+ (0, vitest_1.beforeEach)(function () {
44
+ vitest_1.vi.useFakeTimers();
45
+ });
46
+ (0, vitest_1.afterEach)(function () {
47
+ vitest_1.vi.restoreAllMocks();
48
+ });
49
+ (0, vitest_1.describe)("debounce", function () {
50
+ (0, vitest_1.it)("should delay function execution", function () {
51
+ var fn = vitest_1.vi.fn();
52
+ var debounced = (0, performance_mjs_1.debounce)(fn, 100);
53
+ debounced("first");
54
+ (0, vitest_1.expect)(fn).not.toHaveBeenCalled();
55
+ vitest_1.vi.advanceTimersByTime(50);
56
+ (0, vitest_1.expect)(fn).not.toHaveBeenCalled();
57
+ vitest_1.vi.advanceTimersByTime(50);
58
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
59
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith("first");
60
+ });
61
+ (0, vitest_1.it)("should cancel previous calls when called again", function () {
62
+ var fn = vitest_1.vi.fn();
63
+ var debounced = (0, performance_mjs_1.debounce)(fn, 100);
64
+ debounced("first");
65
+ vitest_1.vi.advanceTimersByTime(50);
66
+ debounced("second");
67
+ vitest_1.vi.advanceTimersByTime(50);
68
+ (0, vitest_1.expect)(fn).not.toHaveBeenCalled();
69
+ vitest_1.vi.advanceTimersByTime(50);
70
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
71
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith("second");
72
+ });
73
+ (0, vitest_1.it)("should handle multiple arguments", function () {
74
+ var fn = vitest_1.vi.fn();
75
+ var debounced = (0, performance_mjs_1.debounce)(fn, 100);
76
+ debounced("arg1", "arg2", "arg3");
77
+ vitest_1.vi.advanceTimersByTime(100);
78
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
79
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith("arg1", "arg2", "arg3");
80
+ });
81
+ (0, vitest_1.it)("should maintain separate timers for different instances", function () {
82
+ var fn1 = vitest_1.vi.fn();
83
+ var fn2 = vitest_1.vi.fn();
84
+ var debounced1 = (0, performance_mjs_1.debounce)(fn1, 100);
85
+ var debounced2 = (0, performance_mjs_1.debounce)(fn2, 100);
86
+ debounced1("fn1");
87
+ vitest_1.vi.advanceTimersByTime(50);
88
+ debounced2("fn2");
89
+ vitest_1.vi.advanceTimersByTime(50);
90
+ (0, vitest_1.expect)(fn1).toHaveBeenCalledTimes(1);
91
+ (0, vitest_1.expect)(fn2).not.toHaveBeenCalled();
92
+ vitest_1.vi.advanceTimersByTime(50);
93
+ (0, vitest_1.expect)(fn2).toHaveBeenCalledTimes(1);
94
+ });
95
+ (0, vitest_1.it)("should clear timeout on rapid calls", function () {
96
+ var fn = vitest_1.vi.fn();
97
+ var debounced = (0, performance_mjs_1.debounce)(fn, 100);
98
+ // Make 10 rapid calls
99
+ for (var i = 0; i < 10; i++) {
100
+ debounced(i);
101
+ vitest_1.vi.advanceTimersByTime(10);
102
+ }
103
+ (0, vitest_1.expect)(fn).not.toHaveBeenCalled();
104
+ vitest_1.vi.advanceTimersByTime(100);
105
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
106
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith(9); // Last call
107
+ });
108
+ (0, vitest_1.it)("should handle errors in debounced function", function () {
109
+ var error = new Error("Test error");
110
+ var fn = vitest_1.vi.fn().mockImplementation(function () {
111
+ throw error;
112
+ });
113
+ var debounced = (0, performance_mjs_1.debounce)(fn, 100);
114
+ debounced();
115
+ (0, vitest_1.expect)(function () { return vitest_1.vi.advanceTimersByTime(100); }).toThrow(error);
116
+ });
117
+ });
118
+ (0, vitest_1.describe)("throttle", function () {
119
+ (0, vitest_1.it)("should execute immediately on first call", function () {
120
+ var fn = vitest_1.vi.fn();
121
+ var throttled = (0, performance_mjs_1.throttle)(fn, 100);
122
+ throttled("first");
123
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
124
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith("first");
125
+ });
126
+ (0, vitest_1.it)("should ignore calls during throttle period", function () {
127
+ var fn = vitest_1.vi.fn();
128
+ var throttled = (0, performance_mjs_1.throttle)(fn, 100);
129
+ throttled("first");
130
+ throttled("second");
131
+ throttled("third");
132
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
133
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith("first");
134
+ });
135
+ (0, vitest_1.it)("should allow execution after throttle period", function () {
136
+ var fn = vitest_1.vi.fn();
137
+ var throttled = (0, performance_mjs_1.throttle)(fn, 100);
138
+ throttled("first");
139
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
140
+ vitest_1.vi.advanceTimersByTime(100);
141
+ throttled("second");
142
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(2);
143
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith("second");
144
+ });
145
+ (0, vitest_1.it)("should handle multiple arguments", function () {
146
+ var fn = vitest_1.vi.fn();
147
+ var throttled = (0, performance_mjs_1.throttle)(fn, 100);
148
+ throttled("arg1", "arg2", "arg3");
149
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith("arg1", "arg2", "arg3");
150
+ });
151
+ (0, vitest_1.it)("should preserve this context", function () {
152
+ var obj = {
153
+ count: 0,
154
+ increment: function () {
155
+ this.count++;
156
+ return this.count;
157
+ },
158
+ };
159
+ var throttledIncrement = (0, performance_mjs_1.throttle)(obj.increment.bind(obj), 100);
160
+ var result = throttledIncrement();
161
+ (0, vitest_1.expect)(result).toBe(1);
162
+ (0, vitest_1.expect)(obj.count).toBe(1);
163
+ });
164
+ (0, vitest_1.it)("should handle rapid calls correctly", function () {
165
+ var fn = vitest_1.vi.fn();
166
+ var throttled = (0, performance_mjs_1.throttle)(fn, 100);
167
+ // First call executes
168
+ throttled(1);
169
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
170
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith(1);
171
+ // Rapid calls during throttle period are ignored
172
+ for (var i = 2; i <= 10; i++) {
173
+ throttled(i);
174
+ }
175
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(1);
176
+ // After throttle period, next call executes
177
+ vitest_1.vi.advanceTimersByTime(100);
178
+ throttled(11);
179
+ (0, vitest_1.expect)(fn).toHaveBeenCalledTimes(2);
180
+ (0, vitest_1.expect)(fn).toHaveBeenCalledWith(11);
181
+ });
182
+ (0, vitest_1.it)("should maintain separate timers for different instances", function () {
183
+ var fn1 = vitest_1.vi.fn();
184
+ var fn2 = vitest_1.vi.fn();
185
+ var throttled1 = (0, performance_mjs_1.throttle)(fn1, 100);
186
+ var throttled2 = (0, performance_mjs_1.throttle)(fn2, 200);
187
+ throttled1("fn1-1");
188
+ throttled2("fn2-1");
189
+ (0, vitest_1.expect)(fn1).toHaveBeenCalledTimes(1);
190
+ (0, vitest_1.expect)(fn2).toHaveBeenCalledTimes(1);
191
+ vitest_1.vi.advanceTimersByTime(100);
192
+ throttled1("fn1-2");
193
+ throttled2("fn2-2"); // Still throttled
194
+ (0, vitest_1.expect)(fn1).toHaveBeenCalledTimes(2);
195
+ (0, vitest_1.expect)(fn2).toHaveBeenCalledTimes(1);
196
+ vitest_1.vi.advanceTimersByTime(100);
197
+ throttled2("fn2-3");
198
+ (0, vitest_1.expect)(fn2).toHaveBeenCalledTimes(2);
199
+ });
200
+ });
201
+ (0, vitest_1.describe)("batchAsync", function () {
202
+ (0, vitest_1.it)("should process items in batches", function () { return __awaiter(void 0, void 0, void 0, function () {
203
+ var processItem, items, results;
204
+ return __generator(this, function (_a) {
205
+ switch (_a.label) {
206
+ case 0:
207
+ vitest_1.vi.useRealTimers(); // batchAsync uses real promises
208
+ processItem = vitest_1.vi
209
+ .fn()
210
+ .mockImplementation(function (item) { return Promise.resolve(item * 2); });
211
+ items = [1, 2, 3, 4, 5];
212
+ return [4 /*yield*/, (0, performance_mjs_1.batchAsync)(items, processItem, 2, 0)];
213
+ case 1:
214
+ results = _a.sent();
215
+ (0, vitest_1.expect)(results).toEqual([2, 4, 6, 8, 10]);
216
+ (0, vitest_1.expect)(processItem).toHaveBeenCalledTimes(5);
217
+ // Check batching - first batch processes items 0-1
218
+ (0, vitest_1.expect)(processItem).toHaveBeenNthCalledWith(1, 1);
219
+ (0, vitest_1.expect)(processItem).toHaveBeenNthCalledWith(2, 2);
220
+ vitest_1.vi.useFakeTimers();
221
+ return [2 /*return*/];
222
+ }
223
+ });
224
+ }); });
225
+ (0, vitest_1.it)("should add delay between batches", function () { return __awaiter(void 0, void 0, void 0, function () {
226
+ var processItem, startTime, items, endTime, elapsed;
227
+ return __generator(this, function (_a) {
228
+ switch (_a.label) {
229
+ case 0:
230
+ vitest_1.vi.useRealTimers();
231
+ processItem = vitest_1.vi
232
+ .fn()
233
+ .mockImplementation(function (item) { return Promise.resolve(item * 2); });
234
+ startTime = Date.now();
235
+ items = [1, 2, 3, 4, 5];
236
+ // 2 items per batch with 100ms delay should take ~200ms
237
+ return [4 /*yield*/, (0, performance_mjs_1.batchAsync)(items, processItem, 2, 100)];
238
+ case 1:
239
+ // 2 items per batch with 100ms delay should take ~200ms
240
+ _a.sent();
241
+ endTime = Date.now();
242
+ elapsed = endTime - startTime;
243
+ // Should have 3 batches: [1,2], [3,4], [5]
244
+ // So 2 delays of 100ms each = 200ms minimum
245
+ (0, vitest_1.expect)(elapsed).toBeGreaterThanOrEqual(200);
246
+ vitest_1.vi.useFakeTimers();
247
+ return [2 /*return*/];
248
+ }
249
+ });
250
+ }); });
251
+ (0, vitest_1.it)("should handle async errors", function () { return __awaiter(void 0, void 0, void 0, function () {
252
+ var processItem, items;
253
+ return __generator(this, function (_a) {
254
+ switch (_a.label) {
255
+ case 0:
256
+ vitest_1.vi.useRealTimers();
257
+ processItem = vitest_1.vi.fn().mockImplementation(function (item) {
258
+ if (item === 3) {
259
+ return Promise.reject(new Error("Failed on 3"));
260
+ }
261
+ return Promise.resolve(item * 2);
262
+ });
263
+ items = [1, 2, 3, 4, 5];
264
+ return [4 /*yield*/, (0, vitest_1.expect)((0, performance_mjs_1.batchAsync)(items, processItem, 2, 0)).rejects.toThrow("Failed on 3")];
265
+ case 1:
266
+ _a.sent();
267
+ // Should have processed first batch before error
268
+ (0, vitest_1.expect)(processItem).toHaveBeenCalledWith(1);
269
+ (0, vitest_1.expect)(processItem).toHaveBeenCalledWith(2);
270
+ (0, vitest_1.expect)(processItem).toHaveBeenCalledWith(3);
271
+ vitest_1.vi.useFakeTimers();
272
+ return [2 /*return*/];
273
+ }
274
+ });
275
+ }); });
276
+ (0, vitest_1.it)("should handle empty array", function () { return __awaiter(void 0, void 0, void 0, function () {
277
+ var processItem, results;
278
+ return __generator(this, function (_a) {
279
+ switch (_a.label) {
280
+ case 0:
281
+ vitest_1.vi.useRealTimers();
282
+ processItem = vitest_1.vi.fn();
283
+ return [4 /*yield*/, (0, performance_mjs_1.batchAsync)([], processItem, 2, 0)];
284
+ case 1:
285
+ results = _a.sent();
286
+ (0, vitest_1.expect)(results).toEqual([]);
287
+ (0, vitest_1.expect)(processItem).not.toHaveBeenCalled();
288
+ vitest_1.vi.useFakeTimers();
289
+ return [2 /*return*/];
290
+ }
291
+ });
292
+ }); });
293
+ (0, vitest_1.it)("should use default batch size and delay", function () { return __awaiter(void 0, void 0, void 0, function () {
294
+ var processItem, items, results;
295
+ return __generator(this, function (_a) {
296
+ switch (_a.label) {
297
+ case 0:
298
+ vitest_1.vi.useRealTimers();
299
+ processItem = vitest_1.vi
300
+ .fn()
301
+ .mockImplementation(function (item) { return Promise.resolve(item); });
302
+ items = Array.from({ length: 25 }, function (_, i) { return i; });
303
+ return [4 /*yield*/, (0, performance_mjs_1.batchAsync)(items, processItem)];
304
+ case 1:
305
+ results = _a.sent();
306
+ (0, vitest_1.expect)(results).toHaveLength(25);
307
+ (0, vitest_1.expect)(processItem).toHaveBeenCalledTimes(25);
308
+ vitest_1.vi.useFakeTimers();
309
+ return [2 /*return*/];
310
+ }
311
+ });
312
+ }); });
313
+ (0, vitest_1.it)("should process large batches correctly", function () { return __awaiter(void 0, void 0, void 0, function () {
314
+ var processItem, items, results;
315
+ return __generator(this, function (_a) {
316
+ switch (_a.label) {
317
+ case 0:
318
+ vitest_1.vi.useRealTimers();
319
+ processItem = vitest_1.vi
320
+ .fn()
321
+ .mockImplementation(function (item) { return Promise.resolve(item * 2); });
322
+ items = Array.from({ length: 100 }, function (_, i) { return i; });
323
+ return [4 /*yield*/, (0, performance_mjs_1.batchAsync)(items, processItem, 25, 0)];
324
+ case 1:
325
+ results = _a.sent();
326
+ (0, vitest_1.expect)(results).toHaveLength(100);
327
+ (0, vitest_1.expect)(results[0]).toBe(0);
328
+ (0, vitest_1.expect)(results[99]).toBe(198);
329
+ vitest_1.vi.useFakeTimers();
330
+ return [2 /*return*/];
331
+ }
332
+ });
333
+ }); });
334
+ (0, vitest_1.it)("should maintain order of results", function () { return __awaiter(void 0, void 0, void 0, function () {
335
+ var processItem, items, results;
336
+ return __generator(this, function (_a) {
337
+ switch (_a.label) {
338
+ case 0:
339
+ vitest_1.vi.useRealTimers();
340
+ processItem = vitest_1.vi.fn().mockImplementation(function (item) {
341
+ // Simulate varying processing times
342
+ var delay = Math.random() * 10;
343
+ return new Promise(function (resolve) { return setTimeout(function () { return resolve(item); }, delay); });
344
+ });
345
+ items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
346
+ return [4 /*yield*/, (0, performance_mjs_1.batchAsync)(items, processItem, 3, 0)];
347
+ case 1:
348
+ results = _a.sent();
349
+ (0, vitest_1.expect)(results).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
350
+ vitest_1.vi.useFakeTimers();
351
+ return [2 /*return*/];
352
+ }
353
+ });
354
+ }); });
355
+ });
356
+ (0, vitest_1.describe)("timingUtils.measureTime", function () {
357
+ (0, vitest_1.it)("invokes onComplete with duration for synchronous success", function () {
358
+ vitest_1.vi.useRealTimers();
359
+ var nowSpy = vitest_1.vi
360
+ .spyOn(performance, "now")
361
+ .mockImplementationOnce(function () { return 100; })
362
+ .mockImplementationOnce(function () { return 150; });
363
+ var onComplete = vitest_1.vi.fn();
364
+ var timed = performance_mjs_1.timingUtils.measureTime(function (value) { return value * 2; }, onComplete);
365
+ var result = timed(21);
366
+ (0, vitest_1.expect)(result).toBe(42);
367
+ (0, vitest_1.expect)(onComplete).toHaveBeenCalledWith(50, 42);
368
+ nowSpy.mockRestore();
369
+ vitest_1.vi.useFakeTimers();
370
+ });
371
+ (0, vitest_1.it)("invokes onError when synchronous function throws", function () {
372
+ vitest_1.vi.useRealTimers();
373
+ var error = new Error("boom");
374
+ var nowSpy = vitest_1.vi
375
+ .spyOn(performance, "now")
376
+ .mockImplementationOnce(function () { return 10; })
377
+ .mockImplementationOnce(function () { return 40; });
378
+ var onError = vitest_1.vi.fn();
379
+ var timed = performance_mjs_1.timingUtils.measureTime(function () {
380
+ throw error;
381
+ }, undefined, onError);
382
+ (0, vitest_1.expect)(function () { return timed(); }).toThrow(error);
383
+ (0, vitest_1.expect)(onError).toHaveBeenCalledWith(30, error);
384
+ nowSpy.mockRestore();
385
+ vitest_1.vi.useFakeTimers();
386
+ });
387
+ (0, vitest_1.it)("supports async successes and failures", function () { return __awaiter(void 0, void 0, void 0, function () {
388
+ var tick, nowSpy, onComplete, onError, asyncSuccess, asyncError;
389
+ return __generator(this, function (_a) {
390
+ switch (_a.label) {
391
+ case 0:
392
+ vitest_1.vi.useRealTimers();
393
+ tick = 0;
394
+ nowSpy = vitest_1.vi.spyOn(performance, "now").mockImplementation(function () {
395
+ tick += 5;
396
+ return tick;
397
+ });
398
+ onComplete = vitest_1.vi.fn();
399
+ onError = vitest_1.vi.fn();
400
+ asyncSuccess = performance_mjs_1.timingUtils.measureTime(function (value) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
401
+ return [2 /*return*/, value + 1];
402
+ }); }); }, onComplete, onError);
403
+ return [4 /*yield*/, (0, vitest_1.expect)(asyncSuccess(5)).resolves.toBe(6)];
404
+ case 1:
405
+ _a.sent();
406
+ (0, vitest_1.expect)(onComplete).toHaveBeenCalledWith(vitest_1.expect.any(Number), 6);
407
+ asyncError = performance_mjs_1.timingUtils.measureTime(function () { return __awaiter(void 0, void 0, void 0, function () {
408
+ return __generator(this, function (_a) {
409
+ throw new Error("async boom");
410
+ });
411
+ }); }, onComplete, onError);
412
+ return [4 /*yield*/, (0, vitest_1.expect)(asyncError()).rejects.toThrow("async boom")];
413
+ case 2:
414
+ _a.sent();
415
+ (0, vitest_1.expect)(onError).toHaveBeenCalledWith(vitest_1.expect.any(Number), vitest_1.expect.any(Error));
416
+ nowSpy.mockRestore();
417
+ vitest_1.vi.useFakeTimers();
418
+ return [2 /*return*/];
419
+ }
420
+ });
421
+ }); });
422
+ });
423
+ });
424
+ //# sourceMappingURL=performance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.test.js","sourceRoot":"","sources":["../src/performance.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,18 @@
5
5
  * interface for building complex data transformations with method chaining.
6
6
  * Combines the benefits of functional programming with familiar OOP patterns.
7
7
  *
8
+ * ### For Dummies
9
+ * - Picture `Pipeline` as a conveyor belt: drop a value in with `Pipeline.of(value)` and bolt on steps like `.map`.
10
+ * - Each step produces a brand-new pipeline, so you never mutate the original value.
11
+ * - Async steps move you onto a Promise-based belt—await each `.mapAsync` before continuing.
12
+ *
13
+ * ### Decision Tree
14
+ * - Want a fluent, chainable API around a value? Start with `Pipeline.of(initial)`.
15
+ * - Need a synchronous tweak? Call `.map(fn)`; result stays a `Pipeline`.
16
+ * - Need async work? Use `.mapAsync(asyncFn)` and await the returned pipeline.
17
+ * - Validating or short-circuiting? Use `.filter(predicate, error)` or `.flatMap` with a Result.
18
+ * - Ready for the answer? Call `.value()` to unwrap the current payload.
19
+ *
8
20
  * @example
9
21
  * ```typescript
10
22
  * import { Pipeline } from './pipeline.mts';
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.mts","sourceRoot":"","sources":["../src/pipeline.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.d.mts","sourceRoot":"","sources":["../src/pipeline.mts"],"names":[],"mappings":"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"}
package/dist/pipeline.mjs CHANGED
@@ -6,6 +6,18 @@
6
6
  * interface for building complex data transformations with method chaining.
7
7
  * Combines the benefits of functional programming with familiar OOP patterns.
8
8
  *
9
+ * ### For Dummies
10
+ * - Picture `Pipeline` as a conveyor belt: drop a value in with `Pipeline.of(value)` and bolt on steps like `.map`.
11
+ * - Each step produces a brand-new pipeline, so you never mutate the original value.
12
+ * - Async steps move you onto a Promise-based belt—await each `.mapAsync` before continuing.
13
+ *
14
+ * ### Decision Tree
15
+ * - Want a fluent, chainable API around a value? Start with `Pipeline.of(initial)`.
16
+ * - Need a synchronous tweak? Call `.map(fn)`; result stays a `Pipeline`.
17
+ * - Need async work? Use `.mapAsync(asyncFn)` and await the returned pipeline.
18
+ * - Validating or short-circuiting? Use `.filter(predicate, error)` or `.flatMap` with a Result.
19
+ * - Ready for the answer? Call `.value()` to unwrap the current payload.
20
+ *
9
21
  * @example
10
22
  * ```typescript
11
23
  * import { Pipeline } from './pipeline.mts';
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.mjs","sourceRoot":"","sources":["../src/pipeline.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.mjs","sourceRoot":"","sources":["../src/pipeline.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pipeline.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.test.d.ts","sourceRoot":"","sources":["../src/pipeline.test.ts"],"names":[],"mappings":""}