@effectionx/watch 0.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 (46) hide show
  1. package/README.md +46 -0
  2. package/esm/child-process.d.ts +13 -0
  3. package/esm/child-process.d.ts.map +1 -0
  4. package/esm/child-process.js +58 -0
  5. package/esm/deno.d.ts +29 -0
  6. package/esm/deno.d.ts.map +1 -0
  7. package/esm/deno.js +27 -0
  8. package/esm/deps/jsr.io/@gordonb/pipe/0.1.0/pipe.d.ts +113 -0
  9. package/esm/deps/jsr.io/@gordonb/pipe/0.1.0/pipe.d.ts.map +1 -0
  10. package/esm/deps/jsr.io/@gordonb/pipe/0.1.0/pipe.js +18 -0
  11. package/esm/main.d.ts +2 -0
  12. package/esm/main.d.ts.map +1 -0
  13. package/esm/main.js +70 -0
  14. package/esm/mod.d.ts +5 -0
  15. package/esm/mod.d.ts.map +1 -0
  16. package/esm/mod.js +4 -0
  17. package/esm/package.json +3 -0
  18. package/esm/stream-helpers.d.ts +4 -0
  19. package/esm/stream-helpers.d.ts.map +1 -0
  20. package/esm/stream-helpers.js +38 -0
  21. package/esm/watch.d.ts +72 -0
  22. package/esm/watch.d.ts.map +1 -0
  23. package/esm/watch.js +118 -0
  24. package/package.json +33 -0
  25. package/script/child-process.d.ts +13 -0
  26. package/script/child-process.d.ts.map +1 -0
  27. package/script/child-process.js +61 -0
  28. package/script/deno.d.ts +29 -0
  29. package/script/deno.d.ts.map +1 -0
  30. package/script/deno.js +29 -0
  31. package/script/deps/jsr.io/@gordonb/pipe/0.1.0/pipe.d.ts +113 -0
  32. package/script/deps/jsr.io/@gordonb/pipe/0.1.0/pipe.d.ts.map +1 -0
  33. package/script/deps/jsr.io/@gordonb/pipe/0.1.0/pipe.js +24 -0
  34. package/script/main.d.ts +2 -0
  35. package/script/main.d.ts.map +1 -0
  36. package/script/main.js +75 -0
  37. package/script/mod.d.ts +5 -0
  38. package/script/mod.d.ts.map +1 -0
  39. package/script/mod.js +20 -0
  40. package/script/package.json +3 -0
  41. package/script/stream-helpers.d.ts +4 -0
  42. package/script/stream-helpers.d.ts.map +1 -0
  43. package/script/stream-helpers.js +42 -0
  44. package/script/watch.d.ts +72 -0
  45. package/script/watch.d.ts.map +1 -0
  46. package/script/watch.js +124 -0
@@ -0,0 +1,38 @@
1
+ import { race, sleep } from "effection";
2
+ export function debounce(ms) {
3
+ return (stream) => ({
4
+ *[Symbol.iterator]() {
5
+ let subscription = yield* stream;
6
+ return {
7
+ *next() {
8
+ let next = yield* subscription.next();
9
+ while (true) {
10
+ let result = yield* race([sleep(ms), subscription.next()]);
11
+ if (!result) {
12
+ return next;
13
+ }
14
+ else {
15
+ next = result;
16
+ }
17
+ }
18
+ },
19
+ };
20
+ },
21
+ });
22
+ }
23
+ export function filter(predicate) {
24
+ return (stream) => ({
25
+ *[Symbol.iterator]() {
26
+ let subscription = yield* stream;
27
+ return {
28
+ *next() {
29
+ let next = yield* subscription.next();
30
+ while (!next.done && !predicate(next.value)) {
31
+ next = yield* subscription.next();
32
+ }
33
+ return next;
34
+ },
35
+ };
36
+ },
37
+ });
38
+ }
package/esm/watch.d.ts ADDED
@@ -0,0 +1,72 @@
1
+ import { type Operation, type Result, type Stream } from "effection";
2
+ import { type Process } from "./child-process.js";
3
+ /**
4
+ * Represents a single start of the specified command
5
+ */
6
+ export interface Start {
7
+ /**
8
+ * A result containing the {Process} on a successful start, or
9
+ * an error otherwise.
10
+ */
11
+ result: Result<Process>;
12
+ /**
13
+ * An operation that resolves when the current start begins its
14
+ * shutdown.
15
+ */
16
+ restarting: Operation<void>;
17
+ }
18
+ /**
19
+ * A watch is a strema of process starts that happen in reaction
20
+ * to some source file changing on the file system.
21
+ */
22
+ export interface Watch extends Stream<Result<Process>, never> {
23
+ }
24
+ /**
25
+ * Options available to configure what is watched
26
+ */
27
+ export interface WatchOptions {
28
+ /**
29
+ * The directory to watch
30
+ */
31
+ path: string;
32
+ /**
33
+ * The command to run (and re-run every time a change is detected)
34
+ */
35
+ cmd: string;
36
+ /**
37
+ * @ignore
38
+ */
39
+ event?: "all" | "change";
40
+ }
41
+ /**
42
+ * Create a watch configuration that observes file system changes and executes a command
43
+ * when changes are detected. The watch can be consumed as a stream of process starts.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * const watcher = yield* watch({
48
+ * path: './src',
49
+ * cmd: 'npm test'
50
+ * });
51
+ * ```
52
+ *
53
+ * @param options - Configuration options for the watch
54
+ * @param options.path - The directory path to watch for changes
55
+ * @param options.cmd - The command to execute when changes are detected
56
+ * @param options.event - The type of event to watch for ('all' or 'change', defaults to 'all')
57
+ *
58
+ * @returns A Stream that emits `Result<Process>` for each command execution
59
+ *
60
+ * @remarks
61
+ * - Uses chokidar for file system watching
62
+ * - Respects .gitignore patterns if present
63
+ * - Implements debouncing to prevent rapid successive executions
64
+ * - Filters out stale events using the fresh() function
65
+ *
66
+ * @throws Will throw an error if the process execution fails
67
+ *
68
+ * @see {@link WatchOptions} for configuration options
69
+ * @see {@link Process} for process execution details
70
+ */
71
+ export declare function watch(options: WatchOptions): Stream<Start, never>;
72
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,SAAS,EAEd,KAAK,MAAM,EAEX,KAAK,MAAM,EAEZ,MAAM,WAAW,CAAC;AAKnB,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAG9D;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB;;;OAGG;IACH,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,KAAM,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;CAAG;AAEhE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CA0DjE"}
package/esm/watch.js ADDED
@@ -0,0 +1,118 @@
1
+ import { exists } from "@std/fs";
2
+ import { join, relative } from "@std/path";
3
+ import chokidar from "chokidar";
4
+ import { call, createChannel, createSignal, Err, Ok, resource, spawn, withResolvers, } from "effection";
5
+ import { default as createIgnore } from "ignore";
6
+ import { pipe } from "./deps/jsr.io/@gordonb/pipe/0.1.0/pipe.js";
7
+ import { readFile } from "node:fs/promises";
8
+ import { useProcess } from "./child-process.js";
9
+ import { debounce } from "./stream-helpers.js";
10
+ /**
11
+ * Create a watch configuration that observes file system changes and executes a command
12
+ * when changes are detected. The watch can be consumed as a stream of process starts.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const watcher = yield* watch({
17
+ * path: './src',
18
+ * cmd: 'npm test'
19
+ * });
20
+ * ```
21
+ *
22
+ * @param options - Configuration options for the watch
23
+ * @param options.path - The directory path to watch for changes
24
+ * @param options.cmd - The command to execute when changes are detected
25
+ * @param options.event - The type of event to watch for ('all' or 'change', defaults to 'all')
26
+ *
27
+ * @returns A Stream that emits `Result<Process>` for each command execution
28
+ *
29
+ * @remarks
30
+ * - Uses chokidar for file system watching
31
+ * - Respects .gitignore patterns if present
32
+ * - Implements debouncing to prevent rapid successive executions
33
+ * - Filters out stale events using the fresh() function
34
+ *
35
+ * @throws Will throw an error if the process execution fails
36
+ *
37
+ * @see {@link WatchOptions} for configuration options
38
+ * @see {@link Process} for process execution details
39
+ */
40
+ export function watch(options) {
41
+ return resource(function* (provide) {
42
+ let starts = createChannel();
43
+ let input = createSignal();
44
+ let gitignored = yield* findIgnores(options.path);
45
+ let watcher = chokidar.watch(options.path, {
46
+ ignored: (path) => {
47
+ let relpath = relative(options.path, path);
48
+ let isGit = relpath === ".git" || relpath.startsWith(".git");
49
+ return isGit || gitignored(path);
50
+ },
51
+ ignoreInitial: true,
52
+ });
53
+ let { event = "all" } = options;
54
+ watcher.on(event, (...args) => {
55
+ if (event !== "all") {
56
+ args.unshift(event);
57
+ }
58
+ let [, path] = args;
59
+ if (fresh(500)(args) && !gitignored(path)) {
60
+ input.send(args);
61
+ }
62
+ });
63
+ let changes = yield* pipe(input, debounce(100));
64
+ yield* spawn(function* () {
65
+ while (true) {
66
+ let task = yield* spawn(function* () {
67
+ let restarting = withResolvers();
68
+ try {
69
+ let process = yield* useProcess(options.cmd);
70
+ yield* starts.send({
71
+ result: Ok(process),
72
+ restarting: restarting.operation,
73
+ });
74
+ }
75
+ catch (error) {
76
+ yield* starts.send({
77
+ result: Err(error),
78
+ restarting: restarting.operation,
79
+ });
80
+ }
81
+ yield* changes.next();
82
+ restarting.resolve();
83
+ });
84
+ yield* task;
85
+ }
86
+ });
87
+ try {
88
+ yield* provide(yield* starts);
89
+ }
90
+ finally {
91
+ yield* call(() => watcher.close());
92
+ }
93
+ });
94
+ }
95
+ /**
96
+ * locate a `.gitignore` file if it exists and use it to filter
97
+ * out any change events against paths that are matched by it
98
+ */
99
+ function* findIgnores(path) {
100
+ let gitignore = join(path, ".gitignore");
101
+ if (yield* call(() => exists(gitignore))) {
102
+ let ignores = createIgnore();
103
+ let buffer = yield* call(() => readFile(gitignore));
104
+ ignores.add(buffer.toString());
105
+ return (pathname) => {
106
+ let relativePathname = relative(path, pathname).trim();
107
+ return relativePathname !== "" && ignores.ignores(relativePathname);
108
+ };
109
+ }
110
+ else {
111
+ return () => false;
112
+ }
113
+ }
114
+ function fresh(staletime) {
115
+ return ([, , stats]) => {
116
+ return !stats || (Date.now() - stats.mtimeMs) < staletime;
117
+ };
118
+ }
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@effectionx/watch",
3
+ "version": "0.1.2",
4
+ "author": "engineering@frontside.com",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/thefrontside/effectionx.git"
8
+ },
9
+ "license": "MIT",
10
+ "bugs": {
11
+ "url": "https://github.com/thefrontside/effectionx/issues"
12
+ },
13
+ "main": "./script/main.js",
14
+ "module": "./esm/main.js",
15
+ "exports": {
16
+ ".": {
17
+ "import": "./esm/main.js",
18
+ "require": "./script/main.js"
19
+ },
20
+ "./lib": {
21
+ "import": "./esm/mod.js",
22
+ "require": "./script/mod.js"
23
+ }
24
+ },
25
+ "engines": {
26
+ "node": ">= 16"
27
+ },
28
+ "sideEffects": false,
29
+ "dependencies": {
30
+ "@types/node": "16.18.126"
31
+ },
32
+ "_generatedBy": "dnt@dev"
33
+ }
@@ -0,0 +1,13 @@
1
+ import type { Signals } from "@types/node";
2
+ import type { Operation, Stream } from "effection";
3
+ export interface ProcessResult {
4
+ code: number;
5
+ signal?: Signals;
6
+ }
7
+ export interface Process extends Operation<ProcessResult> {
8
+ stdout: Stream<string, void>;
9
+ stderr: Stream<string, void>;
10
+ send(signal: Signals): void;
11
+ }
12
+ export declare function useProcess(command: string): Operation<Process>;
13
+ //# sourceMappingURL=child-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child-process.d.ts","sourceRoot":"","sources":["../src/child-process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AASnD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAQ,SAAQ,SAAS,CAAC,aAAa,CAAC;IACvD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CA6D9D"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useProcess = useProcess;
4
+ const node_child_process_1 = require("node:child_process");
5
+ const effection_1 = require("effection");
6
+ function useProcess(command) {
7
+ return (0, effection_1.resource)(function* (provide) {
8
+ let closed = (0, effection_1.withResolvers)();
9
+ let stdout = (0, effection_1.createSignal)();
10
+ let stderr = (0, effection_1.createSignal)();
11
+ let nodeproc = (0, node_child_process_1.spawn)(command, {
12
+ shell: true,
13
+ stdio: "pipe",
14
+ });
15
+ // fail on an "error" event, but only until the process is successfully spawned.
16
+ yield* (0, effection_1.spawn)(function* () {
17
+ yield* (0, effection_1.spawn)(() => (0, effection_1.action)((_, reject) => {
18
+ nodeproc.on("error", reject);
19
+ return () => nodeproc.off("error", reject);
20
+ }));
21
+ yield* (0, effection_1.action)((resolve) => {
22
+ nodeproc.on("spawn", resolve);
23
+ return () => nodeproc.off("spawn", resolve);
24
+ });
25
+ });
26
+ let onstdout = (chunk) => {
27
+ stdout.send(String(chunk));
28
+ };
29
+ let onstderr = (chunk) => {
30
+ stderr.send(String(chunk));
31
+ };
32
+ let onclose = (code, signal) => {
33
+ stdout.close();
34
+ stderr.close();
35
+ closed.resolve({ code, signal });
36
+ };
37
+ try {
38
+ nodeproc.stdout.on("data", onstdout);
39
+ nodeproc.stderr.on("data", onstderr);
40
+ nodeproc.on("close", onclose);
41
+ yield* provide({
42
+ [Symbol.iterator]: closed.operation[Symbol.iterator],
43
+ stdout,
44
+ stderr,
45
+ *send(signal) {
46
+ nodeproc.kill(signal);
47
+ },
48
+ });
49
+ }
50
+ finally {
51
+ nodeproc.kill("SIGINT");
52
+ nodeproc.kill("SIGTERM");
53
+ yield* closed.operation;
54
+ stdout.close();
55
+ stderr.close();
56
+ nodeproc.stdout.off("data", onstdout);
57
+ nodeproc.stderr.off("data", onstderr);
58
+ nodeproc.off("close", onclose);
59
+ }
60
+ });
61
+ }
@@ -0,0 +1,29 @@
1
+ declare namespace _default {
2
+ let name: string;
3
+ let version: string;
4
+ let license: string;
5
+ let exports: {
6
+ ".": string;
7
+ "./lib": string;
8
+ };
9
+ let imports: {
10
+ effection: string;
11
+ ignore: string;
12
+ "@std/fs": string;
13
+ "@std/path": string;
14
+ chokidar: string;
15
+ zod: string;
16
+ "zod-opts": string;
17
+ };
18
+ namespace lint {
19
+ namespace rules {
20
+ let exclude: string[];
21
+ }
22
+ }
23
+ namespace tasks {
24
+ let compile: string;
25
+ let dev: string;
26
+ }
27
+ }
28
+ export default _default;
29
+ //# sourceMappingURL=deno.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deno.d.ts","sourceRoot":"","sources":["../src/deno.js"],"names":[],"mappings":""}
package/script/deno.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ "name": "@effectionx/watch",
5
+ "version": "0.1.2",
6
+ "license": "MIT",
7
+ "exports": {
8
+ ".": "./main.ts",
9
+ "./lib": "./mod.ts"
10
+ },
11
+ "imports": {
12
+ "effection": "npm:effection@^4.0.0-alpha.6",
13
+ "ignore": "npm:ignore@^7.0.3",
14
+ "@std/fs": "jsr:@std/fs@^1.0.11",
15
+ "@std/path": "jsr:@std/path@^1.0.8",
16
+ "chokidar": "npm:chokidar@^4.0.3",
17
+ "zod": "npm:zod@^3.20.2",
18
+ "zod-opts": "npm:zod-opts@0.1.8"
19
+ },
20
+ "lint": {
21
+ "rules": {
22
+ "exclude": ["prefer-const", "require-yield"]
23
+ }
24
+ },
25
+ "tasks": {
26
+ "compile": "deno compile --allow-env --allow-read --allow-run main.ts",
27
+ "dev": "deno --allow-env --allow-read --allow-run main.ts deno task compile"
28
+ }
29
+ };
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Applies functions over value from left to right.
3
+ * @param value - The initial value to pipe
4
+ * @param fns - The functions to pipe the value through
5
+ * @returns The final value after all functions have been applied
6
+ */
7
+ export declare function pipe<A>(value: A): A;
8
+ export declare function pipe<A, B>(value: A, a: (input: A) => B): B;
9
+ export declare function pipe<A, B, C>(value: A, a: (input: A) => B, b: (input: B) => C): C;
10
+ export declare function pipe<A, B, C, D>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D): D;
11
+ export declare function pipe<A, B, C, D, E>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E): E;
12
+ export declare function pipe<A, B, C, D, E, F>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F): F;
13
+ export declare function pipe<A, B, C, D, E, F, G>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G): G;
14
+ export declare function pipe<A, B, C, D, E, F, G, H>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H): H;
15
+ export declare function pipe<A, B, C, D, E, F, G, H, I>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I): I;
16
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J): J;
17
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K): K;
18
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L): L;
19
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M): M;
20
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N): N;
21
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O): O;
22
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P): P;
23
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q): Q;
24
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q, q: (input: Q) => R): R;
25
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q, q: (input: Q) => R, r: (input: R) => S): S;
26
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q, q: (input: Q) => R, r: (input: R) => S, s: (input: S) => T): T;
27
+ export declare function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U>(value: A, a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q, q: (input: Q) => R, r: (input: R) => S, s: (input: S) => T, t: (input: T) => U): U;
28
+ export declare function pipe(value: unknown, ...fns: Array<(input: unknown) => unknown>): unknown;
29
+ /**
30
+ * Composes functions from left to right
31
+ * @param fns - The functions to compose
32
+ * @returns A function that applies the composed functions in order
33
+ */
34
+ export declare function flow<A>(a: (input: A) => A): (input: A) => A;
35
+ export declare function flow<A, B>(a: (input: A) => B): (input: A) => B;
36
+ export declare function flow<A, B, C>(a: (input: A) => B, b: (input: B) => C): (input: A) => C;
37
+ export declare function flow<A, B, C, D>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D): (input: A) => D;
38
+ export declare function flow<A, B, C, D, E>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E): (input: A) => E;
39
+ export declare function flow<A, B, C, D, E, F>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F): (input: A) => F;
40
+ export declare function flow<A, B, C, D, E, F, G>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G): (input: A) => G;
41
+ export declare function flow<A, B, C, D, E, F, G, H>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H): (input: A) => H;
42
+ export declare function flow<A, B, C, D, E, F, G, H, I>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I): (input: A) => I;
43
+ export declare function flow<A, B, C, D, E, F, G, H, I, J>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J): (input: A) => J;
44
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K): (input: A) => K;
45
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L): (input: A) => L;
46
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L, M>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M): (input: A) => M;
47
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N): (input: A) => N;
48
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O): (input: A) => O;
49
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P): (input: A) => P;
50
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q): (input: A) => Q;
51
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q, q: (input: Q) => R): (input: A) => R;
52
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q, q: (input: Q) => R, r: (input: R) => S): (input: A) => S;
53
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q, q: (input: Q) => R, r: (input: R) => S, s: (input: S) => T): (input: A) => T;
54
+ export declare function flow<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U>(a: (input: A) => B, b: (input: B) => C, c: (input: C) => D, d: (input: D) => E, e: (input: E) => F, f: (input: F) => G, g: (input: G) => H, h: (input: H) => I, i: (input: I) => J, j: (input: J) => K, k: (input: K) => L, l: (input: L) => M, m: (input: M) => N, n: (input: N) => O, o: (input: O) => P, p: (input: P) => Q, q: (input: Q) => R, r: (input: R) => S, s: (input: S) => T, t: (input: T) => U): (input: A) => U;
55
+ export declare function flow(...fns: Array<(input: unknown) => unknown>): (input: unknown) => unknown;
56
+ /** An awaitable value (a value that is either T or a promise for T) */
57
+ export type Awaitable<T> = T | Promise<T>;
58
+ /**
59
+ * Applies sync or async functions over value from left to right.
60
+ * @param value - The initial value to pipe
61
+ * @param fns - The functions to pipe the value through
62
+ * @returns a promise for final value after all functions have been applied
63
+ */
64
+ export declare function pipeAsync<A>(value: A): Promise<A>;
65
+ export declare function pipeAsync<A, B>(value: A, a: (input: A) => Awaitable<B>): Promise<B>;
66
+ export declare function pipeAsync<A, B, C>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>): Promise<C>;
67
+ export declare function pipeAsync<A, B, C, D>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>): Promise<D>;
68
+ export declare function pipeAsync<A, B, C, D, E>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>): Promise<E>;
69
+ export declare function pipeAsync<A, B, C, D, E, F>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>): Promise<F>;
70
+ export declare function pipeAsync<A, B, C, D, E, F, G>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>): Promise<G>;
71
+ export declare function pipeAsync<A, B, C, D, E, F, G, H>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>): Promise<H>;
72
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>): Promise<I>;
73
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>): Promise<J>;
74
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>): Promise<K>;
75
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>): Promise<L>;
76
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L, M>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>): Promise<M>;
77
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>): Promise<N>;
78
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>): Promise<O>;
79
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>): Promise<P>;
80
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>): Promise<Q>;
81
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>, q: (input: Q) => Awaitable<R>): Promise<R>;
82
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>, q: (input: Q) => Awaitable<R>, r: (input: R) => Awaitable<S>): Promise<S>;
83
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>, q: (input: Q) => Awaitable<R>, r: (input: R) => Awaitable<S>, s: (input: S) => Awaitable<T>): Promise<T>;
84
+ export declare function pipeAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U>(value: A, a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>, q: (input: Q) => Awaitable<R>, r: (input: R) => Awaitable<S>, s: (input: S) => Awaitable<T>, t: (input: T) => Awaitable<U>): Promise<U>;
85
+ export declare function pipeAsync(value: unknown, ...fns: Array<(input: unknown) => Awaitable<unknown>>): Promise<unknown>;
86
+ /**
87
+ * Composes async or sync functions from left to right
88
+ * @param fns - The functions to compose
89
+ * @returns A function that applies the composed functions in left-to-right order
90
+ */
91
+ export declare function flowAsync<A>(a: (input: A) => Awaitable<A>): (input: A) => Promise<A>;
92
+ export declare function flowAsync<A, B>(a: (input: A) => Awaitable<B>): (input: A) => Promise<B>;
93
+ export declare function flowAsync<A, B, C>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>): (input: A) => Promise<C>;
94
+ export declare function flowAsync<A, B, C, D>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>): (input: A) => Promise<D>;
95
+ export declare function flowAsync<A, B, C, D, E>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>): (input: A) => Promise<E>;
96
+ export declare function flowAsync<A, B, C, D, E, F>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>): (input: A) => Promise<F>;
97
+ export declare function flowAsync<A, B, C, D, E, F, G>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>): (input: A) => Promise<G>;
98
+ export declare function flowAsync<A, B, C, D, E, F, G, H>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>): (input: A) => Promise<H>;
99
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>): (input: A) => Promise<I>;
100
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>): (input: A) => Promise<J>;
101
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>): (input: A) => Promise<K>;
102
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>): (input: A) => Promise<L>;
103
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L, M>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>): (input: A) => Promise<M>;
104
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>): (input: A) => Promise<N>;
105
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>): (input: A) => Promise<O>;
106
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>): (input: A) => Promise<P>;
107
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>): (input: A) => Promise<Q>;
108
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>, q: (input: Q) => Awaitable<R>): (input: A) => Promise<R>;
109
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>, q: (input: Q) => Awaitable<R>, r: (input: R) => Awaitable<S>): (input: A) => Promise<S>;
110
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>, q: (input: Q) => Awaitable<R>, r: (input: R) => Awaitable<S>, s: (input: S) => Awaitable<T>): (input: A) => Promise<T>;
111
+ export declare function flowAsync<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U>(a: (input: A) => Awaitable<B>, b: (input: B) => Awaitable<C>, c: (input: C) => Awaitable<D>, d: (input: D) => Awaitable<E>, e: (input: E) => Awaitable<F>, f: (input: F) => Awaitable<G>, g: (input: G) => Awaitable<H>, h: (input: H) => Awaitable<I>, i: (input: I) => Awaitable<J>, j: (input: J) => Awaitable<K>, k: (input: K) => Awaitable<L>, l: (input: L) => Awaitable<M>, m: (input: M) => Awaitable<N>, n: (input: N) => Awaitable<O>, o: (input: O) => Awaitable<P>, p: (input: P) => Awaitable<Q>, q: (input: Q) => Awaitable<R>, r: (input: R) => Awaitable<S>, s: (input: S) => Awaitable<T>, t: (input: T) => Awaitable<U>): (input: A) => Promise<U>;
112
+ export declare function flowAsync(...fns: Array<(input: unknown) => Awaitable<unknown>>): (input: unknown) => Promise<unknown>;
113
+ //# sourceMappingURL=pipe.d.ts.map