@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
@@ -7,6 +7,18 @@
7
7
  * combinators for building complex predicates from simple ones, along with
8
8
  * common predicate patterns for everyday use.
9
9
  *
10
+ * ### For Dummies
11
+ * - A predicate is just a yes/no function; this module helps you wire them together.
12
+ * - Build tiny checks (`isNotNil`, `inRange`) and compose them like Lego to express rules.
13
+ * - Everything stays pure, so you can reuse predicates across filters, guards, and validators.
14
+ *
15
+ * ### Decision Tree
16
+ * - Need every rule to pass? Combine them with `and(predicateA, predicateB, ...)`.
17
+ * - Any rule may pass? Use `or(...)`.
18
+ * - Want the opposite? Wrap with `not(predicate)`.
19
+ * - Exactly one condition allowed? Reach for `xor(a, b)`.
20
+ * - Checking structure? Helpers like `hasProperty('field')`, `isNotNil`, and `inRange(min, max)` get you started.
21
+ *
10
22
  * @example
11
23
  * ```typescript
12
24
  * import { and, or, not, isNotNil, inRange, hasProperty } from './predicates.mts';
@@ -1 +1 @@
1
- {"version":3,"file":"predicates.mjs","sourceRoot":"","sources":["../src/predicates.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predicates.mjs","sourceRoot":"","sources":["../src/predicates.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=predicates.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicates.test.d.ts","sourceRoot":"","sources":["../src/predicates.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,375 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var vitest_1 = require("vitest");
4
+ var predicates_mjs_1 = require("./predicates.mjs");
5
+ (0, vitest_1.describe)('predicates', function () {
6
+ (0, vitest_1.describe)('and', function () {
7
+ (0, vitest_1.it)('should return true when all predicates are true', function () {
8
+ var isPositive = function (n) { return n > 0; };
9
+ var isEven = function (n) { return n % 2 === 0; };
10
+ var isPositiveEven = (0, predicates_mjs_1.and)(isPositive, isEven);
11
+ (0, vitest_1.expect)(isPositiveEven(4)).toBe(true);
12
+ (0, vitest_1.expect)(isPositiveEven(2)).toBe(true);
13
+ });
14
+ (0, vitest_1.it)('should return false when any predicate is false', function () {
15
+ var isPositive = function (n) { return n > 0; };
16
+ var isEven = function (n) { return n % 2 === 0; };
17
+ var isPositiveEven = (0, predicates_mjs_1.and)(isPositive, isEven);
18
+ (0, vitest_1.expect)(isPositiveEven(-2)).toBe(false); // not positive
19
+ (0, vitest_1.expect)(isPositiveEven(3)).toBe(false); // not even
20
+ });
21
+ (0, vitest_1.it)('should handle empty predicate list', function () {
22
+ var alwaysTrue = (0, predicates_mjs_1.and)();
23
+ (0, vitest_1.expect)(alwaysTrue(42)).toBe(true);
24
+ });
25
+ (0, vitest_1.it)('should work with multiple predicates', function () {
26
+ var hasName = function (user) { return !!user.name; };
27
+ var hasEmail = function (user) { return !!user.email; };
28
+ var isAdult = function (user) { var _a; return ((_a = user.age) !== null && _a !== void 0 ? _a : 0) >= 18; };
29
+ var isValidAdultUser = (0, predicates_mjs_1.and)(hasName, hasEmail, isAdult);
30
+ (0, vitest_1.expect)(isValidAdultUser({ name: 'John', email: 'john@example.com', age: 25 })).toBe(true);
31
+ (0, vitest_1.expect)(isValidAdultUser({ name: 'John', email: 'john@example.com', age: 17 })).toBe(false);
32
+ (0, vitest_1.expect)(isValidAdultUser({ name: 'John', age: 25 })).toBe(false);
33
+ });
34
+ });
35
+ (0, vitest_1.describe)('or', function () {
36
+ (0, vitest_1.it)('should return true when at least one predicate is true', function () {
37
+ var isAdmin = function (user) { return user.role === 'admin'; };
38
+ var isModerator = function (user) { return user.role === 'moderator'; };
39
+ var hasPrivileges = (0, predicates_mjs_1.or)(isAdmin, isModerator);
40
+ (0, vitest_1.expect)(hasPrivileges({ role: 'admin' })).toBe(true);
41
+ (0, vitest_1.expect)(hasPrivileges({ role: 'moderator' })).toBe(true);
42
+ });
43
+ (0, vitest_1.it)('should return false when all predicates are false', function () {
44
+ var isAdmin = function (user) { return user.role === 'admin'; };
45
+ var isModerator = function (user) { return user.role === 'moderator'; };
46
+ var hasPrivileges = (0, predicates_mjs_1.or)(isAdmin, isModerator);
47
+ (0, vitest_1.expect)(hasPrivileges({ role: 'user' })).toBe(false);
48
+ });
49
+ (0, vitest_1.it)('should handle empty predicate list', function () {
50
+ var alwaysFalse = (0, predicates_mjs_1.or)();
51
+ (0, vitest_1.expect)(alwaysFalse(42)).toBe(false);
52
+ });
53
+ (0, vitest_1.it)('should work with multiple payment methods', function () {
54
+ var hasCreditCard = function (payment) { return payment.type === 'credit'; };
55
+ var hasPayPal = function (payment) { return payment.type === 'paypal'; };
56
+ var hasCrypto = function (payment) { return payment.type === 'crypto'; };
57
+ var acceptsPayment = (0, predicates_mjs_1.or)(hasCreditCard, hasPayPal, hasCrypto);
58
+ (0, vitest_1.expect)(acceptsPayment({ type: 'paypal' })).toBe(true);
59
+ (0, vitest_1.expect)(acceptsPayment({ type: 'cash' })).toBe(false);
60
+ });
61
+ });
62
+ (0, vitest_1.describe)('not', function () {
63
+ (0, vitest_1.it)('should invert predicate result', function () {
64
+ var isPositive = function (n) { return n > 0; };
65
+ var isNegativeOrZero = (0, predicates_mjs_1.not)(isPositive);
66
+ (0, vitest_1.expect)(isNegativeOrZero(-5)).toBe(true);
67
+ (0, vitest_1.expect)(isNegativeOrZero(0)).toBe(true);
68
+ (0, vitest_1.expect)(isNegativeOrZero(5)).toBe(false);
69
+ });
70
+ (0, vitest_1.it)('should work with complex predicates', function () {
71
+ var isError = function (log) { return log.level === 'error'; };
72
+ var isNotError = (0, predicates_mjs_1.not)(isError);
73
+ (0, vitest_1.expect)(isNotError({ level: 'info' })).toBe(true);
74
+ (0, vitest_1.expect)(isNotError({ level: 'error' })).toBe(false);
75
+ });
76
+ });
77
+ (0, vitest_1.describe)('xor', function () {
78
+ (0, vitest_1.it)('should return true when exactly one predicate is true', function () {
79
+ var hasUsername = function (auth) { return !!auth.username; };
80
+ var hasEmail = function (auth) { return !!auth.email; };
81
+ var hasExactlyOneIdentifier = (0, predicates_mjs_1.xor)(hasUsername, hasEmail);
82
+ (0, vitest_1.expect)(hasExactlyOneIdentifier({ username: 'john' })).toBe(true);
83
+ (0, vitest_1.expect)(hasExactlyOneIdentifier({ email: 'john@example.com' })).toBe(true);
84
+ });
85
+ (0, vitest_1.it)('should return false when both or neither predicate is true', function () {
86
+ var hasUsername = function (auth) { return !!auth.username; };
87
+ var hasEmail = function (auth) { return !!auth.email; };
88
+ var hasExactlyOneIdentifier = (0, predicates_mjs_1.xor)(hasUsername, hasEmail);
89
+ (0, vitest_1.expect)(hasExactlyOneIdentifier({ username: 'john', email: 'j@e.com' })).toBe(false);
90
+ (0, vitest_1.expect)(hasExactlyOneIdentifier({})).toBe(false);
91
+ });
92
+ });
93
+ (0, vitest_1.describe)('isNotNil', function () {
94
+ (0, vitest_1.it)('should return true for non-null/undefined values', function () {
95
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotNil)('string')).toBe(true);
96
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotNil)(0)).toBe(true);
97
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotNil)(false)).toBe(true);
98
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotNil)('')).toBe(true);
99
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotNil)([])).toBe(true);
100
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotNil)({})).toBe(true);
101
+ });
102
+ (0, vitest_1.it)('should return false for null and undefined', function () {
103
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotNil)(null)).toBe(false);
104
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotNil)(undefined)).toBe(false);
105
+ });
106
+ (0, vitest_1.it)('should work as type guard in filter', function () {
107
+ var values = ['a', null, 'b', undefined, 'c'];
108
+ var nonNullValues = values.filter(predicates_mjs_1.isNotNil);
109
+ (0, vitest_1.expect)(nonNullValues).toEqual(['a', 'b', 'c']);
110
+ });
111
+ });
112
+ (0, vitest_1.describe)('isNil', function () {
113
+ (0, vitest_1.it)('should return true for null and undefined', function () {
114
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNil)(null)).toBe(true);
115
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNil)(undefined)).toBe(true);
116
+ });
117
+ (0, vitest_1.it)('should return false for non-null/undefined values', function () {
118
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNil)('string')).toBe(false);
119
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNil)(0)).toBe(false);
120
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNil)(false)).toBe(false);
121
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNil)('')).toBe(false);
122
+ });
123
+ (0, vitest_1.it)('should work in filtering', function () {
124
+ var values = [1, null, 2, undefined, 3];
125
+ var nilValues = values.filter(predicates_mjs_1.isNil);
126
+ (0, vitest_1.expect)(nilValues).toEqual([null, undefined]);
127
+ });
128
+ });
129
+ (0, vitest_1.describe)('isEmpty', function () {
130
+ (0, vitest_1.it)('should return true for empty values', function () {
131
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)(null)).toBe(true);
132
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)(undefined)).toBe(true);
133
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)('')).toBe(true);
134
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)([])).toBe(true);
135
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)({})).toBe(true);
136
+ });
137
+ (0, vitest_1.it)('should return false for non-empty values', function () {
138
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)('hello')).toBe(false);
139
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)([1, 2, 3])).toBe(false);
140
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)({ a: 1 })).toBe(false);
141
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)(0)).toBe(false);
142
+ (0, vitest_1.expect)((0, predicates_mjs_1.isEmpty)(false)).toBe(false);
143
+ });
144
+ (0, vitest_1.it)('should work with form validation', function () {
145
+ var formData = { name: '', email: 'test@example.com', bio: null };
146
+ var emptyFields = Object.entries(formData)
147
+ .filter(function (_a) {
148
+ var value = _a[1];
149
+ return (0, predicates_mjs_1.isEmpty)(value);
150
+ })
151
+ .map(function (_a) {
152
+ var key = _a[0];
153
+ return key;
154
+ });
155
+ (0, vitest_1.expect)(emptyFields).toEqual(['name', 'bio']);
156
+ });
157
+ });
158
+ (0, vitest_1.describe)('isNotEmpty', function () {
159
+ (0, vitest_1.it)('should return true for non-empty values', function () {
160
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotEmpty)('hello')).toBe(true);
161
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotEmpty)([1])).toBe(true);
162
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotEmpty)({ a: 1 })).toBe(true);
163
+ });
164
+ (0, vitest_1.it)('should return false for empty values', function () {
165
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotEmpty)('')).toBe(false);
166
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotEmpty)([])).toBe(false);
167
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotEmpty)({})).toBe(false);
168
+ (0, vitest_1.expect)((0, predicates_mjs_1.isNotEmpty)(null)).toBe(false);
169
+ });
170
+ });
171
+ (0, vitest_1.describe)('equals', function () {
172
+ (0, vitest_1.it)('should create a predicate checking equality', function () {
173
+ var isJohn = (0, predicates_mjs_1.equals)('John');
174
+ (0, vitest_1.expect)(isJohn('John')).toBe(true);
175
+ (0, vitest_1.expect)(isJohn('Jane')).toBe(false);
176
+ });
177
+ (0, vitest_1.it)('should work with filtering', function () {
178
+ var names = ['John', 'Jane', 'John', 'Jack'];
179
+ var johns = names.filter((0, predicates_mjs_1.equals)('John'));
180
+ (0, vitest_1.expect)(johns).toEqual(['John', 'John']);
181
+ });
182
+ (0, vitest_1.it)('should work with numbers', function () {
183
+ var isZero = (0, predicates_mjs_1.equals)(0);
184
+ (0, vitest_1.expect)(isZero(0)).toBe(true);
185
+ (0, vitest_1.expect)(isZero(1)).toBe(false);
186
+ });
187
+ });
188
+ (0, vitest_1.describe)('oneOf', function () {
189
+ (0, vitest_1.it)('should check if value is in array', function () {
190
+ var isWeekend = (0, predicates_mjs_1.oneOf)(['Saturday', 'Sunday']);
191
+ (0, vitest_1.expect)(isWeekend('Saturday')).toBe(true);
192
+ (0, vitest_1.expect)(isWeekend('Monday')).toBe(false);
193
+ });
194
+ (0, vitest_1.it)('should work with permissions', function () {
195
+ var canEdit = (0, predicates_mjs_1.oneOf)(['admin', 'editor', 'author']);
196
+ (0, vitest_1.expect)(canEdit('admin')).toBe(true);
197
+ (0, vitest_1.expect)(canEdit('viewer')).toBe(false);
198
+ });
199
+ (0, vitest_1.it)('should handle empty array', function () {
200
+ var neverTrue = (0, predicates_mjs_1.oneOf)([]);
201
+ (0, vitest_1.expect)(neverTrue('anything')).toBe(false);
202
+ });
203
+ });
204
+ (0, vitest_1.describe)('inRange', function () {
205
+ (0, vitest_1.it)('should check inclusive range', function () {
206
+ var isValidAge = (0, predicates_mjs_1.inRange)(18, 65);
207
+ (0, vitest_1.expect)(isValidAge(17)).toBe(false);
208
+ (0, vitest_1.expect)(isValidAge(18)).toBe(true);
209
+ (0, vitest_1.expect)(isValidAge(30)).toBe(true);
210
+ (0, vitest_1.expect)(isValidAge(65)).toBe(true);
211
+ (0, vitest_1.expect)(isValidAge(66)).toBe(false);
212
+ });
213
+ (0, vitest_1.it)('should work with decimal numbers', function () {
214
+ var isValidGPA = (0, predicates_mjs_1.inRange)(0.0, 4.0);
215
+ (0, vitest_1.expect)(isValidGPA(-0.1)).toBe(false);
216
+ (0, vitest_1.expect)(isValidGPA(2.5)).toBe(true);
217
+ (0, vitest_1.expect)(isValidGPA(4.1)).toBe(false);
218
+ });
219
+ });
220
+ (0, vitest_1.describe)('matches', function () {
221
+ (0, vitest_1.it)('should match regular expressions', function () {
222
+ var isEmail = (0, predicates_mjs_1.matches)(/^[^\s@]+@[^\s@]+\.[^\s@]+$/);
223
+ (0, vitest_1.expect)(isEmail('test@example.com')).toBe(true);
224
+ (0, vitest_1.expect)(isEmail('invalid-email')).toBe(false);
225
+ });
226
+ (0, vitest_1.it)('should work with phone numbers', function () {
227
+ var isPhoneNumber = (0, predicates_mjs_1.matches)(/^\+?[\d\s-()]+$/);
228
+ (0, vitest_1.expect)(isPhoneNumber('+1 (555) 123-4567')).toBe(true);
229
+ (0, vitest_1.expect)(isPhoneNumber('not a phone')).toBe(false);
230
+ });
231
+ (0, vitest_1.it)('should handle case sensitivity', function () {
232
+ var startsWithHello = (0, predicates_mjs_1.matches)(/^hello/);
233
+ var startsWithHelloIgnoreCase = (0, predicates_mjs_1.matches)(/^hello/i);
234
+ (0, vitest_1.expect)(startsWithHello('Hello world')).toBe(false);
235
+ (0, vitest_1.expect)(startsWithHelloIgnoreCase('Hello world')).toBe(true);
236
+ });
237
+ });
238
+ (0, vitest_1.describe)('hasProperty', function () {
239
+ (0, vitest_1.it)('should check for property existence', function () {
240
+ var hasEmail = (0, predicates_mjs_1.hasProperty)('email');
241
+ var users = [
242
+ { name: 'John', email: 'john@example.com' },
243
+ { name: 'Jane' }
244
+ ];
245
+ var usersWithEmail = users.filter(hasEmail);
246
+ (0, vitest_1.expect)(usersWithEmail).toEqual([{ name: 'John', email: 'john@example.com' }]);
247
+ });
248
+ (0, vitest_1.it)('should work as type guard', function () {
249
+ var obj = { a: 1 };
250
+ if ((0, predicates_mjs_1.hasProperty)('a')(obj)) {
251
+ // TypeScript knows obj has property 'a' here
252
+ (0, vitest_1.expect)(obj.a).toBe(1);
253
+ }
254
+ });
255
+ (0, vitest_1.it)('should work with symbol properties', function () {
256
+ var _a;
257
+ var sym = Symbol('test');
258
+ var hasSymbol = (0, predicates_mjs_1.hasProperty)(sym);
259
+ var obj1 = (_a = {}, _a[sym] = 'value', _a);
260
+ var obj2 = {};
261
+ (0, vitest_1.expect)(hasSymbol(obj1)).toBe(true);
262
+ (0, vitest_1.expect)(hasSymbol(obj2)).toBe(false);
263
+ });
264
+ });
265
+ (0, vitest_1.describe)('includes', function () {
266
+ (0, vitest_1.it)('should check array inclusion', function () {
267
+ var hasFavorite = (0, predicates_mjs_1.includes)('JavaScript');
268
+ (0, vitest_1.expect)(hasFavorite(['Python', 'JavaScript', 'Go'])).toBe(true);
269
+ (0, vitest_1.expect)(hasFavorite(['Python', 'Go'])).toBe(false);
270
+ });
271
+ (0, vitest_1.it)('should work with tag filtering', function () {
272
+ var hasUrgentTag = (0, predicates_mjs_1.includes)('urgent');
273
+ var tasks = [
274
+ { name: 'Task 1', tags: ['urgent', 'bug'] },
275
+ { name: 'Task 2', tags: ['feature'] }
276
+ ];
277
+ var urgentTasks = tasks.filter(function (task) { return hasUrgentTag(task.tags); });
278
+ (0, vitest_1.expect)(urgentTasks).toHaveLength(1);
279
+ });
280
+ (0, vitest_1.it)('should handle empty arrays', function () {
281
+ var hasAny = (0, predicates_mjs_1.includes)('any');
282
+ (0, vitest_1.expect)(hasAny([])).toBe(false);
283
+ });
284
+ });
285
+ (0, vitest_1.describe)('alwaysTrue', function () {
286
+ (0, vitest_1.it)('should always return true', function () {
287
+ (0, vitest_1.expect)((0, predicates_mjs_1.alwaysTrue)(null)).toBe(true);
288
+ (0, vitest_1.expect)((0, predicates_mjs_1.alwaysTrue)(undefined)).toBe(true);
289
+ (0, vitest_1.expect)((0, predicates_mjs_1.alwaysTrue)(42)).toBe(true);
290
+ (0, vitest_1.expect)((0, predicates_mjs_1.alwaysTrue)('string')).toBe(true);
291
+ });
292
+ (0, vitest_1.it)('should work as default filter', function () {
293
+ var items = [1, 2, 3];
294
+ var filtered = items.filter(predicates_mjs_1.alwaysTrue);
295
+ (0, vitest_1.expect)(filtered).toEqual(items);
296
+ });
297
+ });
298
+ (0, vitest_1.describe)('alwaysFalse', function () {
299
+ (0, vitest_1.it)('should always return false', function () {
300
+ (0, vitest_1.expect)((0, predicates_mjs_1.alwaysFalse)(null)).toBe(false);
301
+ (0, vitest_1.expect)((0, predicates_mjs_1.alwaysFalse)(undefined)).toBe(false);
302
+ (0, vitest_1.expect)((0, predicates_mjs_1.alwaysFalse)(42)).toBe(false);
303
+ (0, vitest_1.expect)((0, predicates_mjs_1.alwaysFalse)('string')).toBe(false);
304
+ });
305
+ (0, vitest_1.it)('should work as disabled filter', function () {
306
+ var items = [1, 2, 3];
307
+ var filtered = items.filter(predicates_mjs_1.alwaysFalse);
308
+ (0, vitest_1.expect)(filtered).toEqual([]);
309
+ });
310
+ });
311
+ (0, vitest_1.describe)('predicateUtils', function () {
312
+ (0, vitest_1.describe)('propEquals', function () {
313
+ (0, vitest_1.it)('should check property equality', function () {
314
+ var isAdminRole = predicates_mjs_1.predicateUtils.propEquals('role', 'admin');
315
+ (0, vitest_1.expect)(isAdminRole({ role: 'admin', name: 'John' })).toBe(true);
316
+ (0, vitest_1.expect)(isAdminRole({ role: 'user', name: 'Jane' })).toBe(false);
317
+ });
318
+ (0, vitest_1.it)('should work with filtering', function () {
319
+ var users = [
320
+ { id: 1, role: 'admin' },
321
+ { id: 2, role: 'user' },
322
+ { id: 3, role: 'admin' }
323
+ ];
324
+ var admins = users.filter(predicates_mjs_1.predicateUtils.propEquals('role', 'admin'));
325
+ (0, vitest_1.expect)(admins).toHaveLength(2);
326
+ });
327
+ });
328
+ (0, vitest_1.describe)('propsMatch', function () {
329
+ (0, vitest_1.it)('should check multiple properties', function () {
330
+ var isJohnDoe = predicates_mjs_1.predicateUtils.propsMatch({
331
+ firstName: 'John',
332
+ lastName: 'Doe'
333
+ });
334
+ (0, vitest_1.expect)(isJohnDoe({ firstName: 'John', lastName: 'Doe', age: 30 })).toBe(true);
335
+ (0, vitest_1.expect)(isJohnDoe({ firstName: 'John', lastName: 'Smith' })).toBe(false);
336
+ (0, vitest_1.expect)(isJohnDoe({ firstName: 'Jane', lastName: 'Doe' })).toBe(false);
337
+ });
338
+ (0, vitest_1.it)('should handle empty object', function () {
339
+ var matchesNothing = predicates_mjs_1.predicateUtils.propsMatch({});
340
+ (0, vitest_1.expect)(matchesNothing({ a: 1, b: 2 })).toBe(true);
341
+ });
342
+ });
343
+ (0, vitest_1.describe)('contramap', function () {
344
+ (0, vitest_1.it)('should transform before testing', function () {
345
+ var hasLongName = predicates_mjs_1.predicateUtils.contramap(function (user) { return user.name; }, function (name) { return name.length > 10; });
346
+ (0, vitest_1.expect)(hasLongName({ name: 'John' })).toBe(false);
347
+ (0, vitest_1.expect)(hasLongName({ name: 'Alexander Hamilton' })).toBe(true);
348
+ });
349
+ (0, vitest_1.it)('should enable case-insensitive comparison', function () {
350
+ var isCaseInsensitiveMatch = function (target) {
351
+ return predicates_mjs_1.predicateUtils.contramap(function (s) { return s.toLowerCase(); }, (0, predicates_mjs_1.equals)(target.toLowerCase()));
352
+ };
353
+ var isHello = isCaseInsensitiveMatch('hello');
354
+ (0, vitest_1.expect)(isHello('HELLO')).toBe(true);
355
+ (0, vitest_1.expect)(isHello('Hello')).toBe(true);
356
+ (0, vitest_1.expect)(isHello('hello')).toBe(true);
357
+ (0, vitest_1.expect)(isHello('hi')).toBe(false);
358
+ });
359
+ (0, vitest_1.it)('should work with complex transformations', function () {
360
+ var hasExpensiveItems = predicates_mjs_1.predicateUtils.contramap(function (order) {
361
+ return order.items.map(function (item) { return item.price; });
362
+ }, function (prices) {
363
+ return prices.some(function (price) { return price > 100; });
364
+ });
365
+ (0, vitest_1.expect)(hasExpensiveItems({
366
+ items: [{ price: 50 }, { price: 150 }]
367
+ })).toBe(true);
368
+ (0, vitest_1.expect)(hasExpensiveItems({
369
+ items: [{ price: 50 }, { price: 75 }]
370
+ })).toBe(false);
371
+ });
372
+ });
373
+ });
374
+ });
375
+ //# sourceMappingURL=predicates.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicates.test.js","sourceRoot":"","sources":["../src/predicates.test.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,22 @@
6
6
  * and dependency injection. Similar to fp-ts's ReaderTaskEither but tailored
7
7
  * for our Result type and async/await patterns.
8
8
  *
9
+ * ### For Dummies
10
+ * - Think of it as a recipe that needs ingredients (`deps`) and might fail; every step returns either success data or a named error.
11
+ * - You describe the steps first, then later hand in the ingredients; the container makes sure dependencies flow in without threading them manually.
12
+ * - If any step fails, the whole recipe stops and hands you the error—no partial states.
13
+ *
14
+ * ### Decision Tree
15
+ * - Need a starting point? Call `ReaderResult.Do<Deps, Error>()` and build from there.
16
+ * - Want to run another dependency-aware step? Use `ReaderResult.bind('name', () => nextStep(args))` (internally uses `chain`).
17
+ * - Just computing a derived value from what you already have? Use `ReaderResult.let('name', ({ existing }) => value)`.
18
+ * - Transforming the final output shape? Finish with `ReaderResult.map(record => result)`.
19
+ * - Accessing dependencies directly? Reach for `ReaderResult.ask()` or `ReaderResult.asks(selector)`.
20
+ *
9
21
  * @example
10
22
  * ```typescript
11
23
  * import { ReaderResult, liftAsync } from './reader-result.mts';
24
+ * import { pipe } from './composition.mts';
12
25
  *
13
26
  * // define dependencies
14
27
  * interface Deps {
@@ -25,10 +38,12 @@
25
38
  * );
26
39
  *
27
40
  * // compose operations
28
- * const program = ReaderResult.Do()
29
- * .pipe(ReaderResult.bind('user', () => getUser('123')))
30
- * .pipe(ReaderResult.bind('posts', ({ user }) => getUserPosts(user.id)))
31
- * .pipe(ReaderResult.map(({ user, posts }) => ({ ...user, posts })));
41
+ * const program = pipe(
42
+ * ReaderResult.Do<Deps, string>(),
43
+ * ReaderResult.bind('user', () => getUser('123')),
44
+ * ReaderResult.bind('posts', ({ user }) => getUserPosts(user.id)),
45
+ * ReaderResult.map(({ user, posts }) => ({ ...user, posts })),
46
+ * );
32
47
  *
33
48
  * // run with dependencies
34
49
  * const result = await ReaderResult.run(dependencies)(program);
@@ -175,11 +190,13 @@ export declare const ReaderResult: {
175
190
  *
176
191
  * @category Dependencies
177
192
  * @example
178
- * const program = ReaderResult.Do()
179
- * .pipe(ReaderResult.bind('deps', () => ReaderResult.ask<Deps, string>()))
180
- * .pipe(ReaderResult.bind('config', ({ deps }) =>
181
- * ReaderResult.of(deps.config)
182
- * ));
193
+ * import { pipe } from './composition.mts';
194
+ *
195
+ * const program = pipe(
196
+ * ReaderResult.Do<Deps, string>(),
197
+ * ReaderResult.bind('deps', () => ReaderResult.ask<Deps, string>()),
198
+ * ReaderResult.bind('config', ({ deps }) => ReaderResult.of(deps.config)),
199
+ * );
183
200
  *
184
201
  * @since 2025-07-03
185
202
  */
@@ -270,15 +287,19 @@ export declare const ReaderResult: {
270
287
  *
271
288
  * @category Do Notation
272
289
  * @example
273
- * const program = ReaderResult.Do<Deps, string>()
274
- * .pipe(ReaderResult.bind('user', () => getUser('123')))
275
- * .pipe(ReaderResult.bind('posts', ({ user }) => getUserPosts(user.id)))
276
- * .pipe(ReaderResult.let('postCount', ({ posts }) => posts.length))
277
- * .pipe(ReaderResult.map(({ user, posts, postCount }) => ({
290
+ * import { pipe } from './composition.mts';
291
+ *
292
+ * const program = pipe(
293
+ * ReaderResult.Do<Deps, string>(),
294
+ * ReaderResult.bind('user', () => getUser('123')),
295
+ * ReaderResult.bind('posts', ({ user }) => getUserPosts(user.id)),
296
+ * ReaderResult.let('postCount', ({ posts }) => posts.length),
297
+ * ReaderResult.map(({ user, posts, postCount }) => ({
278
298
  * ...user,
279
299
  * posts,
280
- * stats: { postCount }
281
- * })));
300
+ * stats: { postCount },
301
+ * })),
302
+ * );
282
303
  *
283
304
  * @since 2025-07-03
284
305
  */
@@ -1 +1 @@
1
- {"version":3,"file":"reader-result.d.mts","sourceRoot":"","sources":["../src/reader-result.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader-result.d.mts","sourceRoot":"","sources":["../src/reader-result.mts"],"names":[],"mappings":"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"}