@nlozgachev/pipelined 0.35.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -92
- package/dist/{chunk-AHEZFTMT.mjs → chunk-3Q5UBRYB.mjs} +92 -0
- package/dist/{chunk-5AWUAG7G.mjs → chunk-4QMYKCWE.mjs} +5 -5
- package/dist/composition.d.mts +189 -1
- package/dist/composition.d.ts +189 -1
- package/dist/composition.js +93 -0
- package/dist/composition.mjs +3 -1
- package/dist/core.d.mts +5 -5
- package/dist/core.d.ts +5 -5
- package/dist/core.js +5 -5
- package/dist/core.mjs +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +98 -5
- package/dist/index.mjs +4 -2
- package/package.json +1 -1
package/dist/composition.d.ts
CHANGED
|
@@ -120,6 +120,26 @@ declare const curry4: <A, B, C, D, E>(f: (a: A, b: B, c: C, d: D) => E) => (a: A
|
|
|
120
120
|
*/
|
|
121
121
|
declare const flip: <A, B, C>(f: (a: A) => (b: B) => C) => (b: B) => (a: A) => C;
|
|
122
122
|
|
|
123
|
+
declare function safe$1<A, B>(ab: (a: NonNullable<A>) => B): (a: A) => B | Extract<A, null | undefined>;
|
|
124
|
+
declare function safe$1<A, B, C>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C): (a: A) => C | Extract<A | B, null | undefined>;
|
|
125
|
+
declare function safe$1<A, B, C, D>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D): (a: A) => D | Extract<A | B | C, null | undefined>;
|
|
126
|
+
declare function safe$1<A, B, C, D, E>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E): (a: A) => E | Extract<A | B | C | D, null | undefined>;
|
|
127
|
+
declare function safe$1<A, B, C, D, E, F>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F): (a: A) => F | Extract<A | B | C | D | E, null | undefined>;
|
|
128
|
+
declare function safe$1<A, B, C, D, E, F, G>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G): (a: A) => G | Extract<A | B | C | D | E | F, null | undefined>;
|
|
129
|
+
declare function safe$1<A, B, C, D, E, F, G, H>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H): (a: A) => H | Extract<A | B | C | D | E | F | G, null | undefined>;
|
|
130
|
+
declare function safe$1<A, B, C, D, E, F, G, H, I>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I): (a: A) => I | Extract<A | B | C | D | E | F | G | H, null | undefined>;
|
|
131
|
+
declare function safe$1<A, B, C, D, E, F, G, H, I, J>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I, ij: (i: NonNullable<I>) => J): (a: A) => J | Extract<A | B | C | D | E | F | G | H | I, null | undefined>;
|
|
132
|
+
declare function safe$1<A, B, C, D, E, F, G, H, I, J, K>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I, ij: (i: NonNullable<I>) => J, jk: (j: J) => K): (a: A) => K | Extract<A | B | C | D | E | F | G | H | I | J, null | undefined>;
|
|
133
|
+
declare function async$1<A, B>(ab: (a: A) => B | Promise<B>): (a: A | Promise<A>) => Promise<B>;
|
|
134
|
+
declare function async$1<A, B, C>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>): (a: A | Promise<A>) => Promise<C>;
|
|
135
|
+
declare function async$1<A, B, C, D>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>): (a: A | Promise<A>) => Promise<D>;
|
|
136
|
+
declare function async$1<A, B, C, D, E>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>): (a: A | Promise<A>) => Promise<E>;
|
|
137
|
+
declare function async$1<A, B, C, D, E, F>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>): (a: A | Promise<A>) => Promise<F>;
|
|
138
|
+
declare function async$1<A, B, C, D, E, F, G>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>): (a: A | Promise<A>) => Promise<G>;
|
|
139
|
+
declare function async$1<A, B, C, D, E, F, G, H>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>): (a: A | Promise<A>) => Promise<H>;
|
|
140
|
+
declare function async$1<A, B, C, D, E, F, G, H, I>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>): (a: A | Promise<A>) => Promise<I>;
|
|
141
|
+
declare function async$1<A, B, C, D, E, F, G, H, I, J>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>, ij: (i: I) => J): (a: A | Promise<A>) => Promise<J>;
|
|
142
|
+
declare function async$1<A, B, C, D, E, F, G, H, I, J, K>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>, ij: (i: I) => J | Promise<J>, jk: (j: J) => K | Promise<K>): (a: A | Promise<A>) => Promise<K>;
|
|
123
143
|
/**
|
|
124
144
|
* Composes functions from left to right, returning a new function.
|
|
125
145
|
* Unlike `pipe`, `flow` doesn't take an initial value - it creates
|
|
@@ -170,6 +190,71 @@ declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H>(ab:
|
|
|
170
190
|
declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I>(ab: (...a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I): (...a: A) => I;
|
|
171
191
|
declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I, J>(ab: (...a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J): (...a: A) => J;
|
|
172
192
|
declare function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I, J, K>(ab: (...a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K): (...a: A) => K;
|
|
193
|
+
declare namespace flow {
|
|
194
|
+
export var when: <A>(predicate: (a: A) => boolean, onTrue: (a: A) => A) => (a: A) => A;
|
|
195
|
+
export var unless: <A>(predicate: (a: A) => boolean, onFalse: (a: A) => A) => (a: A) => A;
|
|
196
|
+
export var either: <A, B>(predicate: (a: A) => boolean, onTrue: (a: A) => B, onFalse: (a: A) => B) => (a: A) => B;
|
|
197
|
+
export var struct: <A, R extends Record<string, unknown>>(fields: { [K in keyof R]: (a: A) => R[K]; }) => (a: A) => R;
|
|
198
|
+
export var safe: {
|
|
199
|
+
<A, B>(ab: (a: NonNullable<A>) => B): (a: A) => B | Extract<A, null | undefined>;
|
|
200
|
+
<A, B, C>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C): (a: A) => C | Extract<A | B, null | undefined>;
|
|
201
|
+
<A, B, C, D>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D): (a: A) => D | Extract<A | B | C, null | undefined>;
|
|
202
|
+
<A, B, C, D, E>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E): (a: A) => E | Extract<A | B | C | D, null | undefined>;
|
|
203
|
+
<A, B, C, D, E, F>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F): (a: A) => F | Extract<A | B | C | D | E, null | undefined>;
|
|
204
|
+
<A, B, C, D, E, F, G>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G): (a: A) => G | Extract<A | B | C | D | E | F, null | undefined>;
|
|
205
|
+
<A, B, C, D, E, F, G, H>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H): (a: A) => H | Extract<A | B | C | D | E | F | G, null | undefined>;
|
|
206
|
+
<A, B, C, D, E, F, G, H, I>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I): (a: A) => I | Extract<A | B | C | D | E | F | G | H, null | undefined>;
|
|
207
|
+
<A, B, C, D, E, F, G, H, I, J>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I, ij: (i: NonNullable<I>) => J): (a: A) => J | Extract<A | B | C | D | E | F | G | H | I, null | undefined>;
|
|
208
|
+
<A, B, C, D, E, F, G, H, I, J, K>(ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I, ij: (i: NonNullable<I>) => J, jk: (j: J) => K): (a: A) => K | Extract<A | B | C | D | E | F | G | H | I | J, null | undefined>;
|
|
209
|
+
};
|
|
210
|
+
export var async: {
|
|
211
|
+
<A, B>(ab: (a: A) => B | Promise<B>): (a: A | Promise<A>) => Promise<B>;
|
|
212
|
+
<A, B, C>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>): (a: A | Promise<A>) => Promise<C>;
|
|
213
|
+
<A, B, C, D>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>): (a: A | Promise<A>) => Promise<D>;
|
|
214
|
+
<A, B, C, D, E>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>): (a: A | Promise<A>) => Promise<E>;
|
|
215
|
+
<A, B, C, D, E, F>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>): (a: A | Promise<A>) => Promise<F>;
|
|
216
|
+
<A, B, C, D, E, F, G>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>): (a: A | Promise<A>) => Promise<G>;
|
|
217
|
+
<A, B, C, D, E, F, G, H>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>): (a: A | Promise<A>) => Promise<H>;
|
|
218
|
+
<A, B, C, D, E, F, G, H, I>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>): (a: A | Promise<A>) => Promise<I>;
|
|
219
|
+
<A, B, C, D, E, F, G, H, I, J>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>, ij: (i: I) => J): (a: A | Promise<A>) => Promise<J>;
|
|
220
|
+
<A, B, C, D, E, F, G, H, I, J, K>(ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>, ij: (i: I) => J | Promise<J>, jk: (j: J) => K | Promise<K>): (a: A | Promise<A>) => Promise<K>;
|
|
221
|
+
};
|
|
222
|
+
var _a: <A, B, C>(f: (a: A) => B, onError: (error: unknown, value: A) => C) => (a: A) => B | C;
|
|
223
|
+
export { _a as try };
|
|
224
|
+
}
|
|
225
|
+
interface flow {
|
|
226
|
+
/**
|
|
227
|
+
* Executes a function on the piped value if a predicate is met, otherwise returns the value unchanged.
|
|
228
|
+
*/
|
|
229
|
+
readonly when: <A>(predicate: (a: A) => boolean, onTrue: (a: A) => A) => (a: A) => A;
|
|
230
|
+
/**
|
|
231
|
+
* Executes a function on the piped value if a predicate is NOT met, otherwise returns the value unchanged.
|
|
232
|
+
*/
|
|
233
|
+
readonly unless: <A>(predicate: (a: A) => boolean, onFalse: (a: A) => A) => (a: A) => A;
|
|
234
|
+
/**
|
|
235
|
+
* Executes one of two functions based on a predicate, acting as a functional if-else/ternary helper.
|
|
236
|
+
*/
|
|
237
|
+
readonly either: <A, B>(predicate: (a: A) => boolean, onTrue: (a: A) => B, onFalse: (a: A) => B) => (a: A) => B;
|
|
238
|
+
/**
|
|
239
|
+
* Creates a pipeline step that wraps a throwing function in a try/catch, returning a fallback value if an error occurs.
|
|
240
|
+
*/
|
|
241
|
+
readonly try: <A, B, C>(f: (a: A) => B, onError: (error: unknown, value: A) => C) => (a: A) => B | C;
|
|
242
|
+
/**
|
|
243
|
+
* Builds an object by applying a record of field-level transformer functions to the piped input.
|
|
244
|
+
*/
|
|
245
|
+
readonly struct: <A, R extends Record<string, unknown>>(fields: {
|
|
246
|
+
[K in keyof R]: (a: A) => R[K];
|
|
247
|
+
}) => (a: A) => R;
|
|
248
|
+
/**
|
|
249
|
+
* Pipes a value through a sequence of operations, short-circuiting and propagating
|
|
250
|
+
* null or undefined immediately if any intermediate step evaluates to nil.
|
|
251
|
+
*/
|
|
252
|
+
readonly safe: typeof safe$1;
|
|
253
|
+
/**
|
|
254
|
+
* Pipes a value through a sequence of operations, supporting asynchronous transitions at any step.
|
|
255
|
+
*/
|
|
256
|
+
readonly async: typeof async$1;
|
|
257
|
+
}
|
|
173
258
|
|
|
174
259
|
/**
|
|
175
260
|
* Returns the value unchanged. The identity function.
|
|
@@ -246,6 +331,20 @@ declare const or: <A extends ReadonlyArray<unknown>>(p1: (...args: A) => boolean
|
|
|
246
331
|
* ```
|
|
247
332
|
*/
|
|
248
333
|
declare const once: <A>(f: () => A) => () => A;
|
|
334
|
+
/**
|
|
335
|
+
* Returns a fallback value if the input is null or undefined; otherwise returns the input value.
|
|
336
|
+
* Highly useful as a data-last default value step inside pipelines.
|
|
337
|
+
*
|
|
338
|
+
* @example
|
|
339
|
+
* ```ts
|
|
340
|
+
* const getName = flow(
|
|
341
|
+
* (u: { name?: string | null }) => u.name,
|
|
342
|
+
* defaultTo("Guest"),
|
|
343
|
+
* name => name.toUpperCase()
|
|
344
|
+
* ); // returns string
|
|
345
|
+
* ```
|
|
346
|
+
*/
|
|
347
|
+
declare const defaultTo: <B>(fallback: B) => <A>(a: A) => NonNullable<A> | B;
|
|
249
348
|
|
|
250
349
|
/**
|
|
251
350
|
* Applies an input to an array of functions and collects the results into a tuple.
|
|
@@ -350,6 +449,28 @@ declare const not: <A extends ReadonlyArray<unknown>>(predicate: (...args: A) =>
|
|
|
350
449
|
*/
|
|
351
450
|
declare const on: <A, B, C>(f: (b1: B, b2: B) => C, g: (a: A) => B) => (a: A, b: A) => C;
|
|
352
451
|
|
|
452
|
+
declare function safe<A>(a: A): A;
|
|
453
|
+
declare function safe<A, B>(a: A, ab: (a: NonNullable<A>) => B): B | Extract<A, null | undefined>;
|
|
454
|
+
declare function safe<A, B, C>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C): C | Extract<A | B, null | undefined>;
|
|
455
|
+
declare function safe<A, B, C, D>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D): D | Extract<A | B | C, null | undefined>;
|
|
456
|
+
declare function safe<A, B, C, D, E>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E): E | Extract<A | B | C | D, null | undefined>;
|
|
457
|
+
declare function safe<A, B, C, D, E, F>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F): F | Extract<A | B | C | D | E, null | undefined>;
|
|
458
|
+
declare function safe<A, B, C, D, E, F, G>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G): G | Extract<A | B | C | D | E | F, null | undefined>;
|
|
459
|
+
declare function safe<A, B, C, D, E, F, G, H>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H): H | Extract<A | B | C | D | E | F | G, null | undefined>;
|
|
460
|
+
declare function safe<A, B, C, D, E, F, G, H, I>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I): I | Extract<A | B | C | D | E | F | G | H, null | undefined>;
|
|
461
|
+
declare function safe<A, B, C, D, E, F, G, H, I, J>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I, ij: (i: NonNullable<I>) => J): J | Extract<A | B | C | D | E | F | G | H | I, null | undefined>;
|
|
462
|
+
declare function safe<A, B, C, D, E, F, G, H, I, J, K>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I, ij: (i: NonNullable<I>) => J, jk: (j: J) => K): K | Extract<A | B | C | D | E | F | G | H | I | J, null | undefined>;
|
|
463
|
+
declare function async<A>(a: A | Promise<A>): Promise<A>;
|
|
464
|
+
declare function async<A, B>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>): Promise<B>;
|
|
465
|
+
declare function async<A, B, C>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>): Promise<C>;
|
|
466
|
+
declare function async<A, B, C, D>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>): Promise<D>;
|
|
467
|
+
declare function async<A, B, C, D, E>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>): Promise<E>;
|
|
468
|
+
declare function async<A, B, C, D, E, F>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>): Promise<F>;
|
|
469
|
+
declare function async<A, B, C, D, E, F, G>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>): Promise<G>;
|
|
470
|
+
declare function async<A, B, C, D, E, F, G, H>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>): Promise<H>;
|
|
471
|
+
declare function async<A, B, C, D, E, F, G, H, I>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>): Promise<I>;
|
|
472
|
+
declare function async<A, B, C, D, E, F, G, H, I, J>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>, ij: (i: I) => J): Promise<J>;
|
|
473
|
+
declare function async<A, B, C, D, E, F, G, H, I, J, K>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>, ij: (i: I) => J | Promise<J>, jk: (j: J) => K | Promise<K>): Promise<K>;
|
|
353
474
|
/**
|
|
354
475
|
* Pipes a value through a series of functions from left to right.
|
|
355
476
|
* Each function receives the output of the previous function.
|
|
@@ -399,6 +520,73 @@ declare function pipe<A, B, C, D, E, F, G, H>(a: A, ab: (a: A) => B, bc: (b: B)
|
|
|
399
520
|
declare function pipe<A, B, C, D, E, F, G, H, I>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I): I;
|
|
400
521
|
declare function pipe<A, B, C, D, E, F, G, H, I, J>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J): J;
|
|
401
522
|
declare function pipe<A, B, C, D, E, F, G, H, I, J, K>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K): K;
|
|
523
|
+
declare namespace pipe {
|
|
524
|
+
export var when: <A>(predicate: (a: A) => boolean, onTrue: (a: A) => A) => (a: A) => A;
|
|
525
|
+
export var unless: <A>(predicate: (a: A) => boolean, onFalse: (a: A) => A) => (a: A) => A;
|
|
526
|
+
export var either: <A, B>(predicate: (a: A) => boolean, onTrue: (a: A) => B, onFalse: (a: A) => B) => (a: A) => B;
|
|
527
|
+
export var struct: <A, R extends Record<string, unknown>>(fields: { [K in keyof R]: (a: A) => R[K]; }) => (a: A) => R;
|
|
528
|
+
export var safe: {
|
|
529
|
+
<A>(a: A): A;
|
|
530
|
+
<A, B>(a: A, ab: (a: NonNullable<A>) => B): B | Extract<A, null | undefined>;
|
|
531
|
+
<A, B, C>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C): C | Extract<A | B, null | undefined>;
|
|
532
|
+
<A, B, C, D>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D): D | Extract<A | B | C, null | undefined>;
|
|
533
|
+
<A, B, C, D, E>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E): E | Extract<A | B | C | D, null | undefined>;
|
|
534
|
+
<A, B, C, D, E, F>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F): F | Extract<A | B | C | D | E, null | undefined>;
|
|
535
|
+
<A, B, C, D, E, F, G>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G): G | Extract<A | B | C | D | E | F, null | undefined>;
|
|
536
|
+
<A, B, C, D, E, F, G, H>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H): H | Extract<A | B | C | D | E | F | G, null | undefined>;
|
|
537
|
+
<A, B, C, D, E, F, G, H, I>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I): I | Extract<A | B | C | D | E | F | G | H, null | undefined>;
|
|
538
|
+
<A, B, C, D, E, F, G, H, I, J>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I, ij: (i: NonNullable<I>) => J): J | Extract<A | B | C | D | E | F | G | H | I, null | undefined>;
|
|
539
|
+
<A, B, C, D, E, F, G, H, I, J, K>(a: A, ab: (a: NonNullable<A>) => B, bc: (b: NonNullable<B>) => C, cd: (c: NonNullable<C>) => D, de: (d: NonNullable<D>) => E, ef: (e: NonNullable<E>) => F, fg: (f: NonNullable<F>) => G, gh: (g: NonNullable<G>) => H, hi: (h: NonNullable<H>) => I, ij: (i: NonNullable<I>) => J, jk: (j: J) => K): K | Extract<A | B | C | D | E | F | G | H | I | J, null | undefined>;
|
|
540
|
+
};
|
|
541
|
+
export var async: {
|
|
542
|
+
<A>(a: A | Promise<A>): Promise<A>;
|
|
543
|
+
<A, B>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>): Promise<B>;
|
|
544
|
+
<A, B, C>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>): Promise<C>;
|
|
545
|
+
<A, B, C, D>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>): Promise<D>;
|
|
546
|
+
<A, B, C, D, E>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>): Promise<E>;
|
|
547
|
+
<A, B, C, D, E, F>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>): Promise<F>;
|
|
548
|
+
<A, B, C, D, E, F, G>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>): Promise<G>;
|
|
549
|
+
<A, B, C, D, E, F, G, H>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>): Promise<H>;
|
|
550
|
+
<A, B, C, D, E, F, G, H, I>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>): Promise<I>;
|
|
551
|
+
<A, B, C, D, E, F, G, H, I, J>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>, ij: (i: I) => J): Promise<J>;
|
|
552
|
+
<A, B, C, D, E, F, G, H, I, J, K>(a: A | Promise<A>, ab: (a: A) => B | Promise<B>, bc: (b: B) => C | Promise<C>, cd: (c: C) => D | Promise<D>, de: (d: D) => E | Promise<E>, ef: (e: E) => F | Promise<F>, fg: (f: F) => G | Promise<G>, gh: (g: G) => H | Promise<H>, hi: (h: H) => I | Promise<I>, ij: (i: I) => J | Promise<J>, jk: (j: J) => K | Promise<K>): Promise<K>;
|
|
553
|
+
};
|
|
554
|
+
var _a: <A, B, C>(f: (a: A) => B, onError: (error: unknown, value: A) => C) => (a: A) => B | C;
|
|
555
|
+
export { _a as try };
|
|
556
|
+
}
|
|
557
|
+
interface pipe {
|
|
558
|
+
/**
|
|
559
|
+
* Executes a function on the piped value if a predicate is met, otherwise returns the value unchanged.
|
|
560
|
+
*/
|
|
561
|
+
readonly when: <A>(predicate: (a: A) => boolean, onTrue: (a: A) => A) => (a: A) => A;
|
|
562
|
+
/**
|
|
563
|
+
* Executes a function on the piped value if a predicate is NOT met, otherwise returns the value unchanged.
|
|
564
|
+
*/
|
|
565
|
+
readonly unless: <A>(predicate: (a: A) => boolean, onFalse: (a: A) => A) => (a: A) => A;
|
|
566
|
+
/**
|
|
567
|
+
* Executes one of two functions based on a predicate, acting as a functional if-else/ternary helper.
|
|
568
|
+
*/
|
|
569
|
+
readonly either: <A, B>(predicate: (a: A) => boolean, onTrue: (a: A) => B, onFalse: (a: A) => B) => (a: A) => B;
|
|
570
|
+
/**
|
|
571
|
+
* Creates a pipeline step that wraps a throwing function in a try/catch, returning a fallback value if an error occurs.
|
|
572
|
+
*/
|
|
573
|
+
readonly try: <A, B, C>(f: (a: A) => B, onError: (error: unknown, value: A) => C) => (a: A) => B | C;
|
|
574
|
+
/**
|
|
575
|
+
* Builds an object by applying a record of field-level transformer functions to the piped input.
|
|
576
|
+
*/
|
|
577
|
+
readonly struct: <A, R extends Record<string, unknown>>(fields: {
|
|
578
|
+
[K in keyof R]: (a: A) => R[K];
|
|
579
|
+
}) => (a: A) => R;
|
|
580
|
+
/**
|
|
581
|
+
* Pipes a value through a sequence of operations, short-circuiting and propagating
|
|
582
|
+
* null or undefined immediately if any intermediate step evaluates to nil.
|
|
583
|
+
*/
|
|
584
|
+
readonly safe: typeof safe;
|
|
585
|
+
/**
|
|
586
|
+
* Pipes a value through a sequence of operations, supporting asynchronous transitions at any step.
|
|
587
|
+
*/
|
|
588
|
+
readonly async: typeof async;
|
|
589
|
+
}
|
|
402
590
|
|
|
403
591
|
/**
|
|
404
592
|
* Executes a side effect function and returns the original value unchanged.
|
|
@@ -485,4 +673,4 @@ declare const uncurry3: <A, B, C, D>(f: (a: A) => (b: B) => (c: C) => D) => (a:
|
|
|
485
673
|
*/
|
|
486
674
|
declare const uncurry4: <A, B, C, D, E>(f: (a: A) => (b: B) => (c: C) => (d: D) => E) => (a: A, b: B, c: C, d: D) => E;
|
|
487
675
|
|
|
488
|
-
export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 };
|
|
676
|
+
export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, defaultTo, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 };
|
package/dist/composition.js
CHANGED
|
@@ -32,6 +32,7 @@ __export(Composition_exports, {
|
|
|
32
32
|
curry: () => curry,
|
|
33
33
|
curry3: () => curry3,
|
|
34
34
|
curry4: () => curry4,
|
|
35
|
+
defaultTo: () => defaultTo,
|
|
35
36
|
flip: () => flip,
|
|
36
37
|
flow: () => flow,
|
|
37
38
|
identity: () => identity,
|
|
@@ -177,6 +178,53 @@ function flow(ab, bc, cd, de, ef, fg, gh, hi, ij, jk) {
|
|
|
177
178
|
}
|
|
178
179
|
}
|
|
179
180
|
}
|
|
181
|
+
var when = (predicate, onTrue) => (a) => predicate(a) ? onTrue(a) : a;
|
|
182
|
+
var unless = (predicate, onFalse) => (a) => predicate(a) ? a : onFalse(a);
|
|
183
|
+
var either = (predicate, onTrue, onFalse) => (a) => predicate(a) ? onTrue(a) : onFalse(a);
|
|
184
|
+
var struct = (fields) => (a) => {
|
|
185
|
+
const result = {};
|
|
186
|
+
for (const key of Object.keys(fields)) {
|
|
187
|
+
result[key] = fields[key](a);
|
|
188
|
+
}
|
|
189
|
+
return result;
|
|
190
|
+
};
|
|
191
|
+
function safe(...fns) {
|
|
192
|
+
return (a) => {
|
|
193
|
+
let result = a;
|
|
194
|
+
if (result === null || result === void 0) {
|
|
195
|
+
return result;
|
|
196
|
+
}
|
|
197
|
+
for (const fn of fns) {
|
|
198
|
+
result = fn(result);
|
|
199
|
+
if (result === null || result === void 0) {
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return result;
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function async(...fns) {
|
|
207
|
+
return async (a) => {
|
|
208
|
+
let result = await a;
|
|
209
|
+
for (const fn of fns) {
|
|
210
|
+
result = await fn(result);
|
|
211
|
+
}
|
|
212
|
+
return result;
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
flow.when = when;
|
|
216
|
+
flow.unless = unless;
|
|
217
|
+
flow.either = either;
|
|
218
|
+
flow.struct = struct;
|
|
219
|
+
flow.safe = safe;
|
|
220
|
+
flow.async = async;
|
|
221
|
+
flow.try = (f, onError) => (a) => {
|
|
222
|
+
try {
|
|
223
|
+
return f(a);
|
|
224
|
+
} catch (error) {
|
|
225
|
+
return onError(error, a);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
180
228
|
|
|
181
229
|
// src/Composition/fn.ts
|
|
182
230
|
var identity = (a) => a;
|
|
@@ -200,6 +248,7 @@ var once = (f) => {
|
|
|
200
248
|
return result;
|
|
201
249
|
};
|
|
202
250
|
};
|
|
251
|
+
var defaultTo = (fallback) => (a) => a === null || a === void 0 ? fallback : a;
|
|
203
252
|
|
|
204
253
|
// src/Composition/juxt.ts
|
|
205
254
|
function juxt(fns) {
|
|
@@ -275,6 +324,49 @@ function pipe(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk) {
|
|
|
275
324
|
}
|
|
276
325
|
}
|
|
277
326
|
}
|
|
327
|
+
var when2 = (predicate, onTrue) => (a) => predicate(a) ? onTrue(a) : a;
|
|
328
|
+
var unless2 = (predicate, onFalse) => (a) => predicate(a) ? a : onFalse(a);
|
|
329
|
+
var either2 = (predicate, onTrue, onFalse) => (a) => predicate(a) ? onTrue(a) : onFalse(a);
|
|
330
|
+
var struct2 = (fields) => (a) => {
|
|
331
|
+
const result = {};
|
|
332
|
+
for (const key of Object.keys(fields)) {
|
|
333
|
+
result[key] = fields[key](a);
|
|
334
|
+
}
|
|
335
|
+
return result;
|
|
336
|
+
};
|
|
337
|
+
function safe2(a, ...fns) {
|
|
338
|
+
let result = a;
|
|
339
|
+
if (result === null || result === void 0) {
|
|
340
|
+
return result;
|
|
341
|
+
}
|
|
342
|
+
for (const fn of fns) {
|
|
343
|
+
result = fn(result);
|
|
344
|
+
if (result === null || result === void 0) {
|
|
345
|
+
return result;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return result;
|
|
349
|
+
}
|
|
350
|
+
async function async2(a, ...fns) {
|
|
351
|
+
let result = await a;
|
|
352
|
+
for (const fn of fns) {
|
|
353
|
+
result = await fn(result);
|
|
354
|
+
}
|
|
355
|
+
return result;
|
|
356
|
+
}
|
|
357
|
+
pipe.when = when2;
|
|
358
|
+
pipe.unless = unless2;
|
|
359
|
+
pipe.either = either2;
|
|
360
|
+
pipe.struct = struct2;
|
|
361
|
+
pipe.safe = safe2;
|
|
362
|
+
pipe.async = async2;
|
|
363
|
+
pipe.try = (f, onError) => (a) => {
|
|
364
|
+
try {
|
|
365
|
+
return f(a);
|
|
366
|
+
} catch (error) {
|
|
367
|
+
return onError(error, a);
|
|
368
|
+
}
|
|
369
|
+
};
|
|
278
370
|
|
|
279
371
|
// src/Composition/tap.ts
|
|
280
372
|
var tap = (f) => (a) => {
|
|
@@ -305,6 +397,7 @@ var uncurry4 = (f) => (a, b, c, d) => f(a)(b)(c)(d);
|
|
|
305
397
|
curry,
|
|
306
398
|
curry3,
|
|
307
399
|
curry4,
|
|
400
|
+
defaultTo,
|
|
308
401
|
flip,
|
|
309
402
|
flow,
|
|
310
403
|
identity,
|
package/dist/composition.mjs
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
curry,
|
|
12
12
|
curry3,
|
|
13
13
|
curry4,
|
|
14
|
+
defaultTo,
|
|
14
15
|
flip,
|
|
15
16
|
flow,
|
|
16
17
|
identity,
|
|
@@ -26,7 +27,7 @@ import {
|
|
|
26
27
|
uncurry,
|
|
27
28
|
uncurry3,
|
|
28
29
|
uncurry4
|
|
29
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-3Q5UBRYB.mjs";
|
|
30
31
|
export {
|
|
31
32
|
and,
|
|
32
33
|
compose,
|
|
@@ -40,6 +41,7 @@ export {
|
|
|
40
41
|
curry,
|
|
41
42
|
curry3,
|
|
42
43
|
curry4,
|
|
44
|
+
defaultTo,
|
|
43
45
|
flip,
|
|
44
46
|
flow,
|
|
45
47
|
identity,
|
package/dist/core.d.mts
CHANGED
|
@@ -1091,18 +1091,18 @@ declare namespace Op {
|
|
|
1091
1091
|
}) => (outcome: Outcome<E, A>) => B;
|
|
1092
1092
|
/**
|
|
1093
1093
|
* Eliminates an Outcome with positional handlers.
|
|
1094
|
-
* Order: `onErr`, `
|
|
1094
|
+
* Order: `onErr`, `onNil`, `onOk` — mirrors `Result.fold` for the first and last cases.
|
|
1095
1095
|
*
|
|
1096
1096
|
* @example
|
|
1097
1097
|
* ```ts
|
|
1098
1098
|
* Op.fold(
|
|
1099
1099
|
* (e) => `error: ${e.message}`,
|
|
1100
|
-
* (v) => `value: ${v}`,
|
|
1101
1100
|
* () => "nothing",
|
|
1101
|
+
* (v) => `value: ${v}`,
|
|
1102
1102
|
* )(outcome);
|
|
1103
1103
|
* ```
|
|
1104
1104
|
*/
|
|
1105
|
-
const fold: <E, A, B>(onErr: (e: E) => B,
|
|
1105
|
+
const fold: <E, A, B>(onErr: (e: E) => B, onNil: () => B, onOk: (a: A) => B) => (outcome: Outcome<E, A>) => B;
|
|
1106
1106
|
/**
|
|
1107
1107
|
* Returns the success value, or the result of `defaultValue()` for `Err` or `Nil`.
|
|
1108
1108
|
*
|
|
@@ -1829,15 +1829,15 @@ declare namespace RemoteData {
|
|
|
1829
1829
|
* pipe(
|
|
1830
1830
|
* userData,
|
|
1831
1831
|
* RemoteData.fold(
|
|
1832
|
+
* e => `Error: ${e}`,
|
|
1832
1833
|
* () => "Not asked",
|
|
1833
1834
|
* () => "Loading...",
|
|
1834
|
-
* e => `Error: ${e}`,
|
|
1835
1835
|
* value => `Got: ${value}`
|
|
1836
1836
|
* )
|
|
1837
1837
|
* );
|
|
1838
1838
|
* ```
|
|
1839
1839
|
*/
|
|
1840
|
-
const fold: <E, A, B>(
|
|
1840
|
+
const fold: <E, A, B>(onFailure: (e: E) => B, onNotAsked: () => B, onLoading: () => B, onSuccess: (a: A) => B) => (data: RemoteData<E, A>) => B;
|
|
1841
1841
|
/**
|
|
1842
1842
|
* Pattern matches on a RemoteData, returning the result of the matching case.
|
|
1843
1843
|
*
|
package/dist/core.d.ts
CHANGED
|
@@ -1091,18 +1091,18 @@ declare namespace Op {
|
|
|
1091
1091
|
}) => (outcome: Outcome<E, A>) => B;
|
|
1092
1092
|
/**
|
|
1093
1093
|
* Eliminates an Outcome with positional handlers.
|
|
1094
|
-
* Order: `onErr`, `
|
|
1094
|
+
* Order: `onErr`, `onNil`, `onOk` — mirrors `Result.fold` for the first and last cases.
|
|
1095
1095
|
*
|
|
1096
1096
|
* @example
|
|
1097
1097
|
* ```ts
|
|
1098
1098
|
* Op.fold(
|
|
1099
1099
|
* (e) => `error: ${e.message}`,
|
|
1100
|
-
* (v) => `value: ${v}`,
|
|
1101
1100
|
* () => "nothing",
|
|
1101
|
+
* (v) => `value: ${v}`,
|
|
1102
1102
|
* )(outcome);
|
|
1103
1103
|
* ```
|
|
1104
1104
|
*/
|
|
1105
|
-
const fold: <E, A, B>(onErr: (e: E) => B,
|
|
1105
|
+
const fold: <E, A, B>(onErr: (e: E) => B, onNil: () => B, onOk: (a: A) => B) => (outcome: Outcome<E, A>) => B;
|
|
1106
1106
|
/**
|
|
1107
1107
|
* Returns the success value, or the result of `defaultValue()` for `Err` or `Nil`.
|
|
1108
1108
|
*
|
|
@@ -1829,15 +1829,15 @@ declare namespace RemoteData {
|
|
|
1829
1829
|
* pipe(
|
|
1830
1830
|
* userData,
|
|
1831
1831
|
* RemoteData.fold(
|
|
1832
|
+
* e => `Error: ${e}`,
|
|
1832
1833
|
* () => "Not asked",
|
|
1833
1834
|
* () => "Loading...",
|
|
1834
|
-
* e => `Error: ${e}`,
|
|
1835
1835
|
* value => `Got: ${value}`
|
|
1836
1836
|
* )
|
|
1837
1837
|
* );
|
|
1838
1838
|
* ```
|
|
1839
1839
|
*/
|
|
1840
|
-
const fold: <E, A, B>(
|
|
1840
|
+
const fold: <E, A, B>(onFailure: (e: E) => B, onNotAsked: () => B, onLoading: () => B, onSuccess: (a: A) => B) => (data: RemoteData<E, A>) => B;
|
|
1841
1841
|
/**
|
|
1842
1842
|
* Pattern matches on a RemoteData, returning the result of the matching case.
|
|
1843
1843
|
*
|
package/dist/core.js
CHANGED
|
@@ -1244,7 +1244,7 @@ var Op;
|
|
|
1244
1244
|
}
|
|
1245
1245
|
return cases.nil();
|
|
1246
1246
|
};
|
|
1247
|
-
Op2.fold = (onErr,
|
|
1247
|
+
Op2.fold = (onErr, onNil, onOk) => (outcome) => {
|
|
1248
1248
|
if (outcome.kind === "OpOk") {
|
|
1249
1249
|
return onOk(outcome.value);
|
|
1250
1250
|
}
|
|
@@ -1473,17 +1473,17 @@ var RemoteData;
|
|
|
1473
1473
|
}
|
|
1474
1474
|
return (0, RemoteData2.notAsked)();
|
|
1475
1475
|
};
|
|
1476
|
-
RemoteData2.fold = (onNotAsked, onLoading,
|
|
1476
|
+
RemoteData2.fold = (onFailure, onNotAsked, onLoading, onSuccess) => (data) => {
|
|
1477
1477
|
switch (data.kind) {
|
|
1478
|
+
case "Failure": {
|
|
1479
|
+
return onFailure(data.error);
|
|
1480
|
+
}
|
|
1478
1481
|
case "NotAsked": {
|
|
1479
1482
|
return onNotAsked();
|
|
1480
1483
|
}
|
|
1481
1484
|
case "Loading": {
|
|
1482
1485
|
return onLoading();
|
|
1483
1486
|
}
|
|
1484
|
-
case "Failure": {
|
|
1485
|
-
return onFailure(data.error);
|
|
1486
|
-
}
|
|
1487
1487
|
case "Success": {
|
|
1488
1488
|
return onSuccess(data.value);
|
|
1489
1489
|
}
|
package/dist/core.mjs
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.mjs';
|
|
1
|
+
export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, defaultTo, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.mjs';
|
|
2
2
|
export { Combinable, Failed, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Passed, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Validation } from './core.mjs';
|
|
3
3
|
export { D as Deferred, E as Equality, a as Err, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-DXsuurnc.mjs';
|
|
4
4
|
export { Brand, Duration, NonEmptyList, isNonEmptyList } from './types.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.js';
|
|
1
|
+
export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, defaultTo, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.js';
|
|
2
2
|
export { Combinable, Failed, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Passed, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Validation } from './core.js';
|
|
3
3
|
export { D as Deferred, E as Equality, a as Err, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-zAY4kSVB.js';
|
|
4
4
|
export { Brand, Duration, NonEmptyList, isNonEmptyList } from './types.js';
|