@nlozgachev/pipekit 0.5.2 → 0.5.3
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/esm/src/Composition/converge.js +3 -0
- package/esm/src/Composition/index.js +3 -0
- package/esm/src/Composition/juxt.js +3 -0
- package/esm/src/Composition/on.js +12 -0
- package/package.json +1 -1
- package/script/src/Composition/converge.js +6 -0
- package/script/src/Composition/index.js +3 -0
- package/script/src/Composition/juxt.js +6 -0
- package/script/src/Composition/on.js +16 -0
- package/types/src/Composition/converge.d.ts +21 -0
- package/types/src/Composition/converge.d.ts.map +1 -0
- package/types/src/Composition/index.d.ts +3 -0
- package/types/src/Composition/index.d.ts.map +1 -1
- package/types/src/Composition/juxt.d.ts +18 -0
- package/types/src/Composition/juxt.d.ts.map +1 -0
- package/types/src/Composition/on.d.ts +13 -0
- package/types/src/Composition/on.d.ts.map +1 -0
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export * from "./compose.js";
|
|
2
|
+
export * from "./converge.js";
|
|
2
3
|
export * from "./curry.js";
|
|
3
4
|
export * from "./flip.js";
|
|
4
5
|
export * from "./fn.js";
|
|
5
6
|
export * from "./flow.js";
|
|
7
|
+
export * from "./juxt.js";
|
|
6
8
|
export * from "./memoize.js";
|
|
7
9
|
export * from "./not.js";
|
|
10
|
+
export * from "./on.js";
|
|
8
11
|
export * from "./pipe.js";
|
|
9
12
|
export * from "./tap.js";
|
|
10
13
|
export * from "./uncurry.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies a projection to both arguments of a binary function before calling it.
|
|
3
|
+
* Most useful for building comparators and equality checks over projected values.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const byLength = on((a: number, b: number) => a - b, (s: string) => s.length);
|
|
8
|
+
*
|
|
9
|
+
* ["banana", "fig", "apple"].sort(byLength); // ["fig", "apple", "banana"]
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export const on = (f, g) => (a, b) => f(g(a), g(b));
|
package/package.json
CHANGED
|
@@ -15,12 +15,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./compose.js"), exports);
|
|
18
|
+
__exportStar(require("./converge.js"), exports);
|
|
18
19
|
__exportStar(require("./curry.js"), exports);
|
|
19
20
|
__exportStar(require("./flip.js"), exports);
|
|
20
21
|
__exportStar(require("./fn.js"), exports);
|
|
21
22
|
__exportStar(require("./flow.js"), exports);
|
|
23
|
+
__exportStar(require("./juxt.js"), exports);
|
|
22
24
|
__exportStar(require("./memoize.js"), exports);
|
|
23
25
|
__exportStar(require("./not.js"), exports);
|
|
26
|
+
__exportStar(require("./on.js"), exports);
|
|
24
27
|
__exportStar(require("./pipe.js"), exports);
|
|
25
28
|
__exportStar(require("./tap.js"), exports);
|
|
26
29
|
__exportStar(require("./uncurry.js"), exports);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.on = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Applies a projection to both arguments of a binary function before calling it.
|
|
6
|
+
* Most useful for building comparators and equality checks over projected values.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const byLength = on((a: number, b: number) => a - b, (s: string) => s.length);
|
|
11
|
+
*
|
|
12
|
+
* ["banana", "fig", "apple"].sort(byLength); // ["fig", "apple", "banana"]
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
const on = (f, g) => (a, b) => f(g(a), g(b));
|
|
16
|
+
exports.on = on;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies an input to several transformer functions independently, then passes all results to a
|
|
3
|
+
* combining function.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const toNameRecord = converge(
|
|
8
|
+
* (trimmed: string, initials: string) => ({ trimmed, initials }),
|
|
9
|
+
* [
|
|
10
|
+
* (name: string) => name.trim(),
|
|
11
|
+
* (name: string) => name.split(" ").map((w) => w[0]).join(""),
|
|
12
|
+
* ],
|
|
13
|
+
* );
|
|
14
|
+
*
|
|
15
|
+
* toNameRecord(" Alice Bob "); // { trimmed: "Alice Bob", initials: "AB" }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function converge<A, B, C, R>(f: (b: B, c: C) => R, transformers: [(a: A) => B, (a: A) => C]): (a: A) => R;
|
|
19
|
+
export declare function converge<A, B, C, D, R>(f: (b: B, c: C, d: D) => R, transformers: [(a: A) => B, (a: A) => C, (a: A) => D]): (a: A) => R;
|
|
20
|
+
export declare function converge<A, B, C, D, E, R>(f: (b: B, c: C, d: D, e: E) => R, transformers: [(a: A) => B, (a: A) => C, (a: A) => D, (a: A) => E]): (a: A) => R;
|
|
21
|
+
//# sourceMappingURL=converge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converge.d.ts","sourceRoot":"","sources":["../../../src/src/Composition/converge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACjC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EACpB,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GACvC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACpC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAC1B,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GACpD,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACvC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAChC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GACjE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export * from "./compose.js";
|
|
2
|
+
export * from "./converge.js";
|
|
2
3
|
export * from "./curry.js";
|
|
3
4
|
export * from "./flip.js";
|
|
4
5
|
export * from "./fn.js";
|
|
5
6
|
export * from "./flow.js";
|
|
7
|
+
export * from "./juxt.js";
|
|
6
8
|
export * from "./memoize.js";
|
|
7
9
|
export * from "./not.js";
|
|
10
|
+
export * from "./on.js";
|
|
8
11
|
export * from "./pipe.js";
|
|
9
12
|
export * from "./tap.js";
|
|
10
13
|
export * from "./uncurry.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/Composition/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/Composition/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies an input to an array of functions and collects the results into a tuple.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* const nameParts = juxt([
|
|
7
|
+
* (name: string) => name.split(" ")[0],
|
|
8
|
+
* (name: string) => name.split(" ").slice(1).join(" "),
|
|
9
|
+
* ]);
|
|
10
|
+
*
|
|
11
|
+
* nameParts("Alice Smith"); // ["Alice", "Smith"]
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function juxt<A, B, C>(fns: [(a: A) => B, (a: A) => C]): (a: A) => [B, C];
|
|
15
|
+
export declare function juxt<A, B, C, D>(fns: [(a: A) => B, (a: A) => C, (a: A) => D]): (a: A) => [B, C, D];
|
|
16
|
+
export declare function juxt<A, B, C, D, E>(fns: [(a: A) => B, (a: A) => C, (a: A) => D, (a: A) => E]): (a: A) => [B, C, D, E];
|
|
17
|
+
export declare function juxt<A, B>(fns: ReadonlyArray<(a: A) => B>): (a: A) => B[];
|
|
18
|
+
//# sourceMappingURL=juxt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"juxt.d.ts","sourceRoot":"","sources":["../../../src/src/Composition/juxt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjF,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAC3C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GACxD,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies a projection to both arguments of a binary function before calling it.
|
|
3
|
+
* Most useful for building comparators and equality checks over projected values.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const byLength = on((a: number, b: number) => a - b, (s: string) => s.length);
|
|
8
|
+
*
|
|
9
|
+
* ["banana", "fig", "apple"].sort(byLength); // ["fig", "apple", "banana"]
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare const on: <A, B, C>(f: (b1: B, b2: B) => C, g: (a: A) => B) => (a: A, b: A) => C;
|
|
13
|
+
//# sourceMappingURL=on.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on.d.ts","sourceRoot":"","sources":["../../../src/src/Composition/on.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,EAAE,GACZ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAC/C,GAAG,CAAC,EAAE,GAAG,CAAC,KAAG,CACC,CAAC"}
|