@nlozgachev/pipelined 0.37.0 → 0.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -307,8 +307,9 @@ applications.
307
307
 
308
308
  `Maybe` represents explicit optionality without null checks. `Result` handles synchronous, typed
309
309
  success and failure, while `Validation` accumulates multiple errors. `RemoteData` tracks the four
310
- states of an asynchronous data fetch (`NotAsked`, `Loading`, `Failure`, `Success`), and `These`
311
- handles inclusive-OR scenarios containing a first value, a second, or both simultaneously.
310
+ states of an asynchronous data fetch (`NotAsked`, `Loading`, `Failure`, `Success`), `These` handles
311
+ inclusive-OR scenarios containing a first value, a second, or both simultaneously, and `Tuple`
312
+ provides a strongly-typed, immutable two-element pair.
312
313
 
313
314
  ### Asynchronous operations
314
315
 
@@ -316,13 +317,22 @@ handles inclusive-OR scenarios containing a first value, a second, or both simul
316
317
  handled by `TaskResult`, `TaskMaybe`, and `TaskValidation`. For managing stateful, recurring
317
318
  asynchronous operations with complex scheduling, `Op` implements named concurrency strategies such
318
319
  as `restartable`, `exclusive`, `debounced`, `throttled`, and `queue`, handling retries, timeouts,
319
- and signal propagation automatically.
320
+ and signal propagation automatically. `Deferred` represents a lightweight, infallible asynchronous
321
+ value that is guaranteed to always resolve without rejection.
320
322
 
321
323
  ### Optics and environment state
322
324
 
323
325
  `Lens` and `Optional` provide a simple concrete interface for safe, nested immutable data updates.
324
326
  Environment-dependent calculations and explicit state threading are supported by the `Reader` and
325
- `State` abstractions, while `Logged` enables side-effect-free data logging.
327
+ `State` abstractions, while `Logged` enables side-effect-free data logging, and `Lazy` implements
328
+ synchronous memoized thunks.
329
+
330
+ ### Algebraic and logic abstractions
331
+
332
+ For general type-safe comparisons and algebraic operations, the library includes `Equality` for
333
+ composable object and primitive comparisons, `Ordering` for sorting comparators, and `Combinable`
334
+ for structural monoids (allowing folding collections with a neutral starting point). Composable
335
+ boolean checks and type guards are supported by `Predicate` and `Refinement` abstractions.
326
336
 
327
337
  ### Optimized utilities
328
338
 
@@ -332,10 +342,11 @@ Functions are composed using `pipe` and `flow`, which are enriched with high-lev
332
342
  helpers like `when`, `unless`, `either`, `safe`, and `async` to support robust, expressive
333
343
  pipelines.
334
344
 
335
- ### Nominal branding and non-empty lists
345
+ ### Nominal branding, durations, and non-empty lists
336
346
 
337
- Compile-time nominal typing with zero runtime overhead is provided by `Brand`, and `NonEmptyList`
338
- guarantees that a list is never empty, eliminating defensive array length checks.
347
+ Compile-time nominal typing with zero runtime overhead is provided by `Brand`, `Duration` safely
348
+ models and converts time durations (seconds, milliseconds, etc.), and `NonEmptyList` guarantees that
349
+ a list is never empty, eliminating defensive array length checks.
339
350
 
340
351
  Every utility in the library is benchmarked against its native equivalent. The data-last currying
341
352
  adds a small function call overhead, which is the expected cost of composability. For operations