@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
package/README.md CHANGED
@@ -17,153 +17,36 @@ This library provides a set of pure, composable functions that follow functional
17
17
 
18
18
  ## Modules
19
19
 
20
- ### `array-utils.mts`
21
-
22
- Functional utilities for array manipulation and transformation.
23
-
24
- **Functions:**
25
-
26
- - `mapWithIndex` - Map with access to element index
27
- - `filterMap` - Combined filter and map in a single pass
28
- - `chunk` - Split array into chunks of specified size
29
- - `groupBy` - Group elements by a key function
30
- - `findSafe` - Type-safe array element finder returning Result type
31
- - `partition` - Split array into two based on predicate
32
-
33
- ### `object-utils.mts`
34
-
35
- Utilities for immutable object operations.
36
-
37
- **Functions:**
38
-
39
- - `mapValues` - Transform object values while preserving keys
40
- - `pick` - Create new object with selected keys
41
- - `omit` - Create new object without specified keys
42
- - `merge` - Deep merge objects with type safety
43
-
44
- ### `composition.mts`
45
-
46
- Core function composition utilities.
47
-
48
- **Functions:**
49
-
50
- - `pipe` - Left-to-right function composition
51
- - `pipeAsync` - Async function pipeline
52
- - `compose` - Right-to-left function composition
53
- - `composeAsync` - Async function composition
54
- - `flow` - Type-safe variadic pipe
55
- - `flowAsync` - Type-safe variadic async pipe
56
- - `tap` - Side effect injection
57
- - `curry` - Function currying
58
- - `partial` - Partial application
59
- - `flip` - Flip function arguments
60
- - `memoize` - Function memoization
61
- - `constant` - Create constant function
62
- - `identity` - Identity function
63
- - `noop` - No-operation function
64
-
65
- ### `predicates.mts`
66
-
67
- Predicate functions and logical combinators.
68
-
69
- **Functions:**
70
-
71
- - `and` - Logical AND combinator
72
- - `or` - Logical OR combinator
73
- - `not` - Logical NOT combinator
74
- - `xor` - Logical XOR combinator
75
- - `isNil` - Check for null or undefined
76
- - `isNotNil` - Check for non-null/undefined
77
- - `isEmpty` - Check for empty values
78
- - `isNotEmpty` - Check for non-empty values
79
- - `equals` - Deep equality check
80
- - `oneOf` - Check if value is in array
81
- - `inRange` - Check if number is in range
82
- - `matches` - Partial object matching
83
- - `hasProperty` - Property existence check
84
- - `includes` - Substring/array element check
85
- - `alwaysTrue` - Constant true predicate
86
- - `alwaysFalse` - Constant false predicate
87
-
88
- ### `performance.mts`
89
-
90
- Performance optimization utilities.
91
-
92
- **Functions:**
93
-
94
- - `debounce` - Delay function execution
95
- - `throttle` - Rate limit function calls
96
- - `batchAsync` - Batch async operations
97
- - `performanceUtils.measure` - Measure function execution time
98
-
99
- ### `pipeline.mts`
100
-
101
- Fluent pipeline API for chaining operations.
102
-
103
- **Class:**
104
-
105
- - `Pipeline` - Chainable transformation pipeline with methods:
106
- - `map` - Transform value
107
- - `flatMap` - Transform and flatten
108
- - `filter` - Conditional transformation
109
- - `tap` - Side effects
110
- - `pipeAsync` - Async transformations
111
- - `value` - Extract final value
112
-
113
- ### `result.mts`
114
-
115
- Result type for explicit error handling without exceptions.
116
-
117
- **Types & Functions:**
118
-
119
- - `Result<T, E>` - Success or error union type
120
- - `Result.ok` - Create success result
121
- - `Result.err` - Create error result
122
- - `Result.map` - Transform success value
123
- - `Result.mapError` - Transform error value
124
- - `Result.chain` - Monadic bind
125
- - `Result.match` - Pattern matching
126
- - `Result.isOk` - Type guard for success
127
- - `Result.isErr` - Type guard for error
128
-
129
- ### `reader-result.mts`
130
-
131
- Reader monad combined with Result type for dependency injection and error handling.
132
-
133
- **Types & Functions:**
134
-
135
- - `ReaderResult<D, E, A>` - Reader + Result monad
136
- - `ReaderResult.of` - Create from value
137
- - `ReaderResult.fromResult` - Lift Result
138
- - `ReaderResult.ask` - Access dependencies
139
- - `ReaderResult.chain` - Monadic composition
140
- - `ReaderResult.map` - Transform success value
141
- - `ReaderResult.run` - Execute with dependencies
142
-
143
- ### `validation.mts`
144
-
145
- Validation utilities and error types.
146
-
147
- **Types & Functions:**
148
-
149
- - `ValidationError` - Structured validation error
150
- - `createValidationError` - Error factory
151
- - `combineValidationErrors` - Merge multiple errors
152
- - `formatValidationError` - Error formatting
20
+ Each module exposes its own "For Dummies" primer and decision tree at the very top of the source file. Treat those JSDoc blocks as the single source of truth—they are updated alongside the implementation and explain how to choose between related helpers.
21
+
22
+ - [`array-utils.mts`](./src/array-utils.mts) Immutable array helpers.
23
+ - [`object-utils.mts`](./src/object-utils.mts) – Copy-on-write object transforms.
24
+ - [`composition.mts`](./src/composition.mts) – `pipe`, `flow`, `compose`, and friends.
25
+ - [`predicates.mts`](./src/predicates.mts) – Predicate combinators and batteries-included checks.
26
+ - [`performance.mts`](./src/performance.mts) Debounce/throttle/batching utilities plus timing helpers.
27
+ - [`pipeline.mts`](./src/pipeline.mts) Chainable class wrapper over composition patterns.
28
+ - [`result.mts`](./src/result.mts) Explicit success/error container utilities.
29
+ - [`reader.mts`](./src/reader.mts) & [`reader-result.mts`](./src/reader-result.mts) Dependency injection-friendly monads.
30
+ - [`task.mts`](./src/task.mts) Lazy async computations.
31
+ - [`option.mts`](./src/option.mts) – Maybe-style optional handling.
32
+ - [`types.mts`](./src/types.mts) – Branded/nominal type helpers.
33
+ - [`validation.mts`](./src/validation.mts) – Result-powered validation DSL.
34
+
35
+ > 📌 Tip: when in doubt, open the module and read the lead JSDoc—it includes simple explanations, usage guidance, and decision trees that stay in sync with the code.
153
36
 
154
37
  ## Usage Patterns
155
38
 
156
39
  ### Import Strategy
157
40
 
158
- Always import directly from specific modules for optimal tree-shaking:
41
+ Prefer targeted subpath imports so bundlers only touch the code you need. The root export still works and is now marked `sideEffects: false`, so unused utilities are tree-shaken either way.
159
42
 
160
43
  ```typescript
161
- // Correct - Direct imports
162
- import { pipe, compose } from "@/lib/functional/composition.mjs";
163
- import { mapValues, pick } from "@/lib/functional/object-utils.mjs";
44
+ // Focused imports keep bundles lean
45
+ import { pipe, compose } from "@satoshibits/functional/composition";
46
+ import { mapValues, pick } from "@satoshibits/functional/object-utils";
164
47
 
165
- // Wrong - No barrel imports (index.mts was removed)
166
- import { pipe } from "@/lib/functional";
48
+ // Root import stays available; bundlers will drop unused exports
49
+ import { Result } from "@satoshibits/functional";
167
50
  ```
168
51
 
169
52
  ### Composition Patterns
@@ -171,9 +54,9 @@ import { pipe } from "@/lib/functional";
171
54
  Functions are designed to work together through composition:
172
55
 
173
56
  ```typescript
174
- import { chunk, filterMap } from "@/lib/functional/array-utils.mjs";
175
- import { pipe } from "@/lib/functional/composition.mjs";
176
- import { isNotNil } from "@/lib/functional/predicates.mjs";
57
+ import { chunk, filterMap } from "@satoshibits/functional/array-utils";
58
+ import { pipe } from "@satoshibits/functional/composition";
59
+ import { isNotNil } from "@satoshibits/functional/predicates";
177
60
 
178
61
  // Combine utilities for complex transformations
179
62
  const processData = pipe(
@@ -187,8 +70,8 @@ const processData = pipe(
187
70
  Use Result types for explicit error handling:
188
71
 
189
72
  ```typescript
190
- import { findSafe } from "@/lib/functional/array-utils.mjs";
191
- import { Result } from "@/lib/functional/result.mjs";
73
+ import { findSafe } from "@satoshibits/functional/array-utils";
74
+ import { Result } from "@satoshibits/functional";
192
75
 
193
76
  // Functions return Result types for safety
194
77
  const result = findSafe((x: User) => x.id === targetId)(users);
@@ -237,6 +120,6 @@ When adding new utilities:
237
120
  3. Include proper `@since` tags with current date
238
121
  4. Write thorough unit tests
239
122
  5. Follow established naming conventions
240
- 6. Update this README with new functions
123
+ 6. Refresh the module's lead JSDoc so the "For Dummies" + decision tree guidance stays accurate
241
124
 
242
125
  ## License - MIT
@@ -4,6 +4,19 @@
4
4
  * These functions are designed to be composed and follow functional programming principles.
5
5
  * All operations return new arrays, preserving immutability.
6
6
  *
7
+ * ### For Dummies
8
+ * - These helpers are fancy versions of `map`/`filter` that never mutate the original array.
9
+ * - You plug them into pipelines to keep array logic readable and testable.
10
+ * - Every function returns a **new** array, so you can trust the input stays untouched.
11
+ *
12
+ * ### Decision Tree
13
+ * - Need element plus index? Reach for `mapWithIndex`.
14
+ * - Want to transform and drop `undefined` results in one go? Use `filterMap`.
15
+ * - Splitting into fixed-size slices? Call `chunk(size)`.
16
+ * - Grouping by a computed key? Use `groupBy(keyFn)`.
17
+ * - Need safe lookups? `findSafe(predicate)` returns an Option instead of `undefined`.
18
+ * - Splitting by predicate? `partition(predicate)` gives you matching and non-matching buckets.
19
+ *
7
20
  * @example
8
21
  * ```typescript
9
22
  * import { filterMap, chunk, groupBy } from './array-utils.mts';
@@ -1 +1 @@
1
- {"version":3,"file":"array-utils.d.mts","sourceRoot":"","sources":["../src/array-utils.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,YAAY,GACtB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,WAClC,CAAC,EAAE,KAAG,CAAC,EACA,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,WAC9C,CAAC,EAAE,KAAG,CAAC,EAOL,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,KAAK,GACf,CAAC,QAAS,MAAM,WACX,CAAC,EAAE,KAAG,CAAC,EAAE,EASd,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,eAAO,MAAM,OAAO,GACjB,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,WAC9C,CAAC,EAAE,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAUxB,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,QAAQ,GAClB,CAAC,aAAc,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,WAE7B,CAAC,EAAE,KACP;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAM9D,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,aAAc,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,WAC9B,CAAC,EAAE,KAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAWpB,CAAC"}
1
+ {"version":3,"file":"array-utils.d.mts","sourceRoot":"","sources":["../src/array-utils.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,YAAY,GACtB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,WAClC,CAAC,EAAE,KAAG,CAAC,EACA,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,WAC9C,CAAC,EAAE,KAAG,CAAC,EAOL,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,KAAK,GACf,CAAC,QAAS,MAAM,WACX,CAAC,EAAE,KAAG,CAAC,EAAE,EASd,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,eAAO,MAAM,OAAO,GACjB,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,WAC9C,CAAC,EAAE,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAUxB,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,QAAQ,GAClB,CAAC,aAAc,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,WAE7B,CAAC,EAAE,KACP;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAM9D,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,aAAc,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,WAC9B,CAAC,EAAE,KAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAWpB,CAAC"}
@@ -5,6 +5,19 @@
5
5
  * These functions are designed to be composed and follow functional programming principles.
6
6
  * All operations return new arrays, preserving immutability.
7
7
  *
8
+ * ### For Dummies
9
+ * - These helpers are fancy versions of `map`/`filter` that never mutate the original array.
10
+ * - You plug them into pipelines to keep array logic readable and testable.
11
+ * - Every function returns a **new** array, so you can trust the input stays untouched.
12
+ *
13
+ * ### Decision Tree
14
+ * - Need element plus index? Reach for `mapWithIndex`.
15
+ * - Want to transform and drop `undefined` results in one go? Use `filterMap`.
16
+ * - Splitting into fixed-size slices? Call `chunk(size)`.
17
+ * - Grouping by a computed key? Use `groupBy(keyFn)`.
18
+ * - Need safe lookups? `findSafe(predicate)` returns an Option instead of `undefined`.
19
+ * - Splitting by predicate? `partition(predicate)` gives you matching and non-matching buckets.
20
+ *
8
21
  * @example
9
22
  * ```typescript
10
23
  * import { filterMap, chunk, groupBy } from './array-utils.mts';
@@ -1 +1 @@
1
- {"version":3,"file":"array-utils.mjs","sourceRoot":"","sources":["../src/array-utils.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array-utils.mjs","sourceRoot":"","sources":["../src/array-utils.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=array-utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-utils.test.d.ts","sourceRoot":"","sources":["../src/array-utils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var vitest_1 = require("vitest");
4
+ var array_utils_mjs_1 = require("./array-utils.mjs");
5
+ (0, vitest_1.describe)('array-utils', function () {
6
+ (0, vitest_1.describe)('mapWithIndex', function () {
7
+ (0, vitest_1.it)('should map elements with their indices', function () {
8
+ var result = (0, array_utils_mjs_1.mapWithIndex)(function (item, i) { return "".concat(i, ": ").concat(item); })(['a', 'b', 'c']);
9
+ (0, vitest_1.expect)(result).toEqual(['0: a', '1: b', '2: c']);
10
+ });
11
+ (0, vitest_1.it)('should handle empty arrays', function () {
12
+ var result = (0, array_utils_mjs_1.mapWithIndex)(function (item, i) { return item + i; })([]);
13
+ (0, vitest_1.expect)(result).toEqual([]);
14
+ });
15
+ (0, vitest_1.it)('should work with complex transformations', function () {
16
+ var items = ['First', 'Second', 'Third'];
17
+ var numbered = (0, array_utils_mjs_1.mapWithIndex)(function (item, i) { return ({
18
+ index: i + 1,
19
+ value: item,
20
+ label: "".concat(i + 1, ". ").concat(item)
21
+ }); })(items);
22
+ (0, vitest_1.expect)(numbered).toEqual([
23
+ { index: 1, value: 'First', label: '1. First' },
24
+ { index: 2, value: 'Second', label: '2. Second' },
25
+ { index: 3, value: 'Third', label: '3. Third' }
26
+ ]);
27
+ });
28
+ });
29
+ (0, vitest_1.describe)('filterMap', function () {
30
+ (0, vitest_1.it)('should filter and map in a single pass', function () {
31
+ var nums = (0, array_utils_mjs_1.filterMap)(function (s) {
32
+ var n = parseInt(s);
33
+ return isNaN(n) ? undefined : n;
34
+ })(['1', 'a', '2', 'b', '3']);
35
+ (0, vitest_1.expect)(nums).toEqual([1, 2, 3]);
36
+ });
37
+ (0, vitest_1.it)('should handle empty arrays', function () {
38
+ var result = (0, array_utils_mjs_1.filterMap)(function (x) { return x > 0 ? x * 2 : undefined; })([]);
39
+ (0, vitest_1.expect)(result).toEqual([]);
40
+ });
41
+ (0, vitest_1.it)('should filter out all undefined values', function () {
42
+ var result = (0, array_utils_mjs_1.filterMap)(function (x) { return x > 10 ? x : undefined; })([1, 2, 3, 4, 5]);
43
+ (0, vitest_1.expect)(result).toEqual([]);
44
+ });
45
+ (0, vitest_1.it)('should work with complex objects', function () {
46
+ var users = [
47
+ { name: 'Alice', profile: { age: 25 } },
48
+ { name: 'Bob', profile: null },
49
+ { name: 'Charlie', profile: { age: 30 } }
50
+ ];
51
+ var ages = (0, array_utils_mjs_1.filterMap)(function (u) {
52
+ return u.profile ? { name: u.name, age: u.profile.age } : undefined;
53
+ })(users);
54
+ (0, vitest_1.expect)(ages).toEqual([
55
+ { name: 'Alice', age: 25 },
56
+ { name: 'Charlie', age: 30 }
57
+ ]);
58
+ });
59
+ (0, vitest_1.it)('should provide index to the mapping function', function () {
60
+ var result = (0, array_utils_mjs_1.filterMap)(function (x, i) {
61
+ return i % 2 === 0 ? x * 2 : undefined;
62
+ })([1, 2, 3, 4, 5]);
63
+ (0, vitest_1.expect)(result).toEqual([2, 6, 10]); // indices 0, 2, 4
64
+ });
65
+ (0, vitest_1.it)('should not create intermediate arrays', function () {
66
+ // This test verifies the optimization by checking behavior
67
+ // The function should process each element exactly once
68
+ var processCount = 0;
69
+ var result = (0, array_utils_mjs_1.filterMap)(function (x) {
70
+ processCount++;
71
+ return x > 2 ? x * 10 : undefined;
72
+ })([1, 2, 3, 4, 5]);
73
+ (0, vitest_1.expect)(processCount).toBe(5); // Each element processed exactly once
74
+ (0, vitest_1.expect)(result).toEqual([30, 40, 50]);
75
+ });
76
+ });
77
+ (0, vitest_1.describe)('chunk', function () {
78
+ (0, vitest_1.it)('should chunk array into specified size', function () {
79
+ var chunks = (0, array_utils_mjs_1.chunk)(2)([1, 2, 3, 4, 5]);
80
+ (0, vitest_1.expect)(chunks).toEqual([[1, 2], [3, 4], [5]]);
81
+ });
82
+ (0, vitest_1.it)('should throw when size is zero or negative', function () {
83
+ (0, vitest_1.expect)(function () { return (0, array_utils_mjs_1.chunk)(0)([1, 2, 3]); }).toThrowError(new RangeError('chunk size must be greater than 0'));
84
+ (0, vitest_1.expect)(function () { return (0, array_utils_mjs_1.chunk)(-1)([1, 2, 3]); }).toThrowError(RangeError);
85
+ });
86
+ (0, vitest_1.it)('should handle arrays that divide evenly', function () {
87
+ var chunks = (0, array_utils_mjs_1.chunk)(3)([1, 2, 3, 4, 5, 6]);
88
+ (0, vitest_1.expect)(chunks).toEqual([[1, 2, 3], [4, 5, 6]]);
89
+ });
90
+ (0, vitest_1.it)('should handle empty arrays', function () {
91
+ var chunks = (0, array_utils_mjs_1.chunk)(3)([]);
92
+ (0, vitest_1.expect)(chunks).toEqual([]);
93
+ });
94
+ (0, vitest_1.it)('should handle chunk size larger than array', function () {
95
+ var chunks = (0, array_utils_mjs_1.chunk)(10)([1, 2, 3]);
96
+ (0, vitest_1.expect)(chunks).toEqual([[1, 2, 3]]);
97
+ });
98
+ (0, vitest_1.it)('should handle chunk size of 1', function () {
99
+ var chunks = (0, array_utils_mjs_1.chunk)(1)([1, 2, 3]);
100
+ (0, vitest_1.expect)(chunks).toEqual([[1], [2], [3]]);
101
+ });
102
+ (0, vitest_1.it)('should work with strings', function () {
103
+ var items = ['A', 'B', 'C', 'D', 'E', 'F'];
104
+ var rows = (0, array_utils_mjs_1.chunk)(3)(items);
105
+ (0, vitest_1.expect)(rows).toEqual([['A', 'B', 'C'], ['D', 'E', 'F']]);
106
+ });
107
+ });
108
+ (0, vitest_1.describe)('groupBy', function () {
109
+ (0, vitest_1.it)('should group by key function', function () {
110
+ var users = [
111
+ { name: 'Alice', age: 25 },
112
+ { name: 'Bob', age: 30 },
113
+ { name: 'Charlie', age: 25 }
114
+ ];
115
+ var byAge = (0, array_utils_mjs_1.groupBy)(function (u) { return u.age; })(users);
116
+ (0, vitest_1.expect)(byAge).toEqual({
117
+ 25: [
118
+ { name: 'Alice', age: 25 },
119
+ { name: 'Charlie', age: 25 }
120
+ ],
121
+ 30: [{ name: 'Bob', age: 30 }]
122
+ });
123
+ });
124
+ (0, vitest_1.it)('should handle empty arrays', function () {
125
+ var result = (0, array_utils_mjs_1.groupBy)(function (x) { return x % 2; })([]);
126
+ (0, vitest_1.expect)(result).toEqual({});
127
+ });
128
+ (0, vitest_1.it)('should group strings by first letter', function () {
129
+ var words = ['apple', 'banana', 'apricot', 'cherry', 'avocado'];
130
+ var byFirstLetter = (0, array_utils_mjs_1.groupBy)(function (word) { return word[0]; })(words);
131
+ (0, vitest_1.expect)(byFirstLetter).toEqual({
132
+ a: ['apple', 'apricot', 'avocado'],
133
+ b: ['banana'],
134
+ c: ['cherry']
135
+ });
136
+ });
137
+ (0, vitest_1.it)('should handle numeric grouping', function () {
138
+ var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
139
+ var byRemainder = (0, array_utils_mjs_1.groupBy)(function (n) { return n % 3; })(numbers);
140
+ (0, vitest_1.expect)(byRemainder).toEqual({
141
+ 0: [3, 6, 9],
142
+ 1: [1, 4, 7],
143
+ 2: [2, 5, 8]
144
+ });
145
+ });
146
+ (0, vitest_1.it)('should preserve order within groups', function () {
147
+ var _a, _b;
148
+ var items = [
149
+ { id: 1, type: 'a' },
150
+ { id: 2, type: 'b' },
151
+ { id: 3, type: 'a' },
152
+ { id: 4, type: 'b' },
153
+ { id: 5, type: 'a' }
154
+ ];
155
+ var byType = (0, array_utils_mjs_1.groupBy)(function (item) { return item.type; })(items);
156
+ (0, vitest_1.expect)((_a = byType.a) === null || _a === void 0 ? void 0 : _a.map(function (i) { return i.id; })).toEqual([1, 3, 5]);
157
+ (0, vitest_1.expect)((_b = byType.b) === null || _b === void 0 ? void 0 : _b.map(function (i) { return i.id; })).toEqual([2, 4]);
158
+ });
159
+ });
160
+ (0, vitest_1.describe)('findSafe', function () {
161
+ (0, vitest_1.it)('should return success result when item is found', function () {
162
+ var result = (0, array_utils_mjs_1.findSafe)(function (n) { return n > 3; })([1, 2, 3, 4, 5]);
163
+ (0, vitest_1.expect)(result).toEqual({ success: true, data: 4 });
164
+ });
165
+ (0, vitest_1.it)('should return error result when item is not found', function () {
166
+ var result = (0, array_utils_mjs_1.findSafe)(function (n) { return n > 10; })([1, 2, 3]);
167
+ (0, vitest_1.expect)(result).toEqual({ success: false, error: 'Item not found' });
168
+ });
169
+ (0, vitest_1.it)('should handle empty arrays', function () {
170
+ var result = (0, array_utils_mjs_1.findSafe)(function (n) { return n > 0; })([]);
171
+ (0, vitest_1.expect)(result).toEqual({ success: false, error: 'Item not found' });
172
+ });
173
+ (0, vitest_1.it)('should find first matching item', function () {
174
+ var result = (0, array_utils_mjs_1.findSafe)(function (n) { return n % 2 === 0; })([1, 2, 3, 4, 5]);
175
+ (0, vitest_1.expect)(result).toEqual({ success: true, data: 2 });
176
+ });
177
+ (0, vitest_1.it)('should work with objects', function () {
178
+ var users = [
179
+ { id: 1, email: 'alice@example.com' },
180
+ { id: 2, email: 'bob@example.com' }
181
+ ];
182
+ var result = (0, array_utils_mjs_1.findSafe)(function (u) { return u.email === 'bob@example.com'; })(users);
183
+ (0, vitest_1.expect)(result).toEqual({
184
+ success: true,
185
+ data: { id: 2, email: 'bob@example.com' }
186
+ });
187
+ });
188
+ (0, vitest_1.it)('should handle falsy values correctly', function () {
189
+ var result = (0, array_utils_mjs_1.findSafe)(function (n) { return n === 0; })([null, undefined, 0, 1, 2]);
190
+ (0, vitest_1.expect)(result).toEqual({ success: true, data: 0 });
191
+ });
192
+ (0, vitest_1.it)('should treat undefined value as found when present', function () {
193
+ var result = (0, array_utils_mjs_1.findSafe)(function (value) { return value === undefined; })([
194
+ 'a',
195
+ undefined,
196
+ 'b'
197
+ ]);
198
+ (0, vitest_1.expect)(result).toEqual({ success: true, data: undefined });
199
+ });
200
+ });
201
+ (0, vitest_1.describe)('partition', function () {
202
+ (0, vitest_1.it)('should partition based on predicate', function () {
203
+ var _a = (0, array_utils_mjs_1.partition)(function (n) { return n % 2 === 0; })([1, 2, 3, 4, 5]), evens = _a[0], odds = _a[1];
204
+ (0, vitest_1.expect)(evens).toEqual([2, 4]);
205
+ (0, vitest_1.expect)(odds).toEqual([1, 3, 5]);
206
+ });
207
+ (0, vitest_1.it)('should handle empty arrays', function () {
208
+ var _a = (0, array_utils_mjs_1.partition)(function (n) { return n > 0; })([]), left = _a[0], right = _a[1];
209
+ (0, vitest_1.expect)(left).toEqual([]);
210
+ (0, vitest_1.expect)(right).toEqual([]);
211
+ });
212
+ (0, vitest_1.it)('should handle all elements matching predicate', function () {
213
+ var _a = (0, array_utils_mjs_1.partition)(function (n) { return n > 0; })([1, 2, 3, 4, 5]), positive = _a[0], negative = _a[1];
214
+ (0, vitest_1.expect)(positive).toEqual([1, 2, 3, 4, 5]);
215
+ (0, vitest_1.expect)(negative).toEqual([]);
216
+ });
217
+ (0, vitest_1.it)('should handle no elements matching predicate', function () {
218
+ var _a = (0, array_utils_mjs_1.partition)(function (n) { return n > 10; })([1, 2, 3, 4, 5]), positive = _a[0], negative = _a[1];
219
+ (0, vitest_1.expect)(positive).toEqual([]);
220
+ (0, vitest_1.expect)(negative).toEqual([1, 2, 3, 4, 5]);
221
+ });
222
+ (0, vitest_1.it)('should work with objects', function () {
223
+ var data = [
224
+ { id: 1, valid: true },
225
+ { id: 2, valid: false },
226
+ { id: 3, valid: true }
227
+ ];
228
+ var _a = (0, array_utils_mjs_1.partition)(function (item) { return item.valid; })(data), valid = _a[0], invalid = _a[1];
229
+ (0, vitest_1.expect)(valid).toEqual([
230
+ { id: 1, valid: true },
231
+ { id: 3, valid: true }
232
+ ]);
233
+ (0, vitest_1.expect)(invalid).toEqual([
234
+ { id: 2, valid: false }
235
+ ]);
236
+ });
237
+ (0, vitest_1.it)('should preserve order in both arrays', function () {
238
+ var items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
239
+ var _a = (0, array_utils_mjs_1.partition)(function (n) { return n % 3 === 0; })(items), multiples = _a[0], others = _a[1];
240
+ (0, vitest_1.expect)(multiples).toEqual([3, 6, 9]);
241
+ (0, vitest_1.expect)(others).toEqual([1, 2, 4, 5, 7, 8, 10]);
242
+ });
243
+ (0, vitest_1.it)('should work with date comparisons', function () {
244
+ var users = [
245
+ { name: 'Alice', lastLogin: new Date('2024-01-10') },
246
+ { name: 'Bob', lastLogin: new Date('2023-12-01') },
247
+ { name: 'Charlie', lastLogin: new Date('2024-01-14') }
248
+ ];
249
+ var cutoffDate = new Date('2024-01-01');
250
+ var _a = (0, array_utils_mjs_1.partition)(function (u) { return u.lastLogin > cutoffDate; })(users), active = _a[0], inactive = _a[1];
251
+ (0, vitest_1.expect)(active.map(function (u) { return u.name; })).toEqual(['Alice', 'Charlie']);
252
+ (0, vitest_1.expect)(inactive.map(function (u) { return u.name; })).toEqual(['Bob']);
253
+ });
254
+ });
255
+ });
256
+ //# sourceMappingURL=array-utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-utils.test.js","sourceRoot":"","sources":["../src/array-utils.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,19 @@
5
5
  * for pipelines of any length. All functions follow functional programming principles,
6
6
  * supporting both synchronous and asynchronous composition patterns.
7
7
  *
8
+ * ### For Dummies
9
+ * - Treat these helpers as Lego roads for wiring tiny functions together without writing loops.
10
+ * - `pipe` runs a list of functions on a starting value, `flow` builds the list first and reuses it later.
11
+ * - `compose` is just `flow` read from right to left; `tap` lets you peek without changing the value.
12
+ * - Async variants like `pipeAsync` do the same thing but wait for promises at every hop.
13
+ *
14
+ * ### Decision Tree
15
+ * - Already holding the starting value? Use `pipe(value, step1, step2, ...)`.
16
+ * - Need a reusable function to call many times? Use `flow(step1, step2, ...)`.
17
+ * - Prefer mathematical right-to-left order? Reach for `compose(last, ..., first)`.
18
+ * - Want to debug without altering data? Insert `tap(logFn)` inside the pipeline.
19
+ * - Need to await each step? Use `pipeAsync(step1, step2, ...)` and call the returned async function.
20
+ *
8
21
  * @example
9
22
  * ```typescript
10
23
  * import { pipe, flow, compose, tap, pipeAsync } from './composition.mts';
@@ -1 +1 @@
1
- {"version":3,"file":"composition.d.mts","sourceRoot":"","sources":["../src/composition.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composition.d.mts","sourceRoot":"","sources":["../src/composition.mts"],"names":[],"mappings":"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"}