From e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 28 Jun 2025 17:26:46 -0700 Subject: initial commit: scaffolding --- node_modules/rxjs/src/internal/util/pipe.ts | 95 +++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 node_modules/rxjs/src/internal/util/pipe.ts (limited to 'node_modules/rxjs/src/internal/util/pipe.ts') diff --git a/node_modules/rxjs/src/internal/util/pipe.ts b/node_modules/rxjs/src/internal/util/pipe.ts new file mode 100644 index 0000000..ff69acc --- /dev/null +++ b/node_modules/rxjs/src/internal/util/pipe.ts @@ -0,0 +1,95 @@ +import { identity } from './identity'; +import { UnaryFunction } from '../types'; + +export function pipe(): typeof identity; +export function pipe(fn1: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction; +export function pipe( + fn1: UnaryFunction, + fn2: UnaryFunction, + fn3: UnaryFunction, + fn4: UnaryFunction +): UnaryFunction; +export function pipe( + fn1: UnaryFunction, + fn2: UnaryFunction, + fn3: UnaryFunction, + fn4: UnaryFunction, + fn5: UnaryFunction +): UnaryFunction; +export function pipe( + fn1: UnaryFunction, + fn2: UnaryFunction, + fn3: UnaryFunction, + fn4: UnaryFunction, + fn5: UnaryFunction, + fn6: UnaryFunction +): UnaryFunction; +export function pipe( + fn1: UnaryFunction, + fn2: UnaryFunction, + fn3: UnaryFunction, + fn4: UnaryFunction, + fn5: UnaryFunction, + fn6: UnaryFunction, + fn7: UnaryFunction +): UnaryFunction; +export function pipe( + fn1: UnaryFunction, + fn2: UnaryFunction, + fn3: UnaryFunction, + fn4: UnaryFunction, + fn5: UnaryFunction, + fn6: UnaryFunction, + fn7: UnaryFunction, + fn8: UnaryFunction +): UnaryFunction; +export function pipe( + fn1: UnaryFunction, + fn2: UnaryFunction, + fn3: UnaryFunction, + fn4: UnaryFunction, + fn5: UnaryFunction, + fn6: UnaryFunction, + fn7: UnaryFunction, + fn8: UnaryFunction, + fn9: UnaryFunction +): UnaryFunction; +export function pipe( + fn1: UnaryFunction, + fn2: UnaryFunction, + fn3: UnaryFunction, + fn4: UnaryFunction, + fn5: UnaryFunction, + fn6: UnaryFunction, + fn7: UnaryFunction, + fn8: UnaryFunction, + fn9: UnaryFunction, + ...fns: UnaryFunction[] +): UnaryFunction; + +/** + * pipe() can be called on one or more functions, each of which can take one argument ("UnaryFunction") + * and uses it to return a value. + * It returns a function that takes one argument, passes it to the first UnaryFunction, and then + * passes the result to the next one, passes that result to the next one, and so on. + */ +export function pipe(...fns: Array>): UnaryFunction { + return pipeFromArray(fns); +} + +/** @internal */ +export function pipeFromArray(fns: Array>): UnaryFunction { + if (fns.length === 0) { + return identity as UnaryFunction; + } + + if (fns.length === 1) { + return fns[0]; + } + + return function piped(input: T): R { + return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any); + }; +} -- cgit v1.2.3