diff --git a/js/src/dataTransform.ts b/js/src/dataTransform.ts index d13f91a..da5bf85 100644 --- a/js/src/dataTransform.ts +++ b/js/src/dataTransform.ts @@ -4,7 +4,14 @@ interface Transformer { } function pipeline(value: T, ...fns: Array<(arg: T) => T>): T { - return fns.reduce((acc, fn) => fn(acc), value); + // Fast path for no functions + if (fns.length === 0) return value; + + let result: T = value; + for (let i = 0, len = fns.length; i < len; ++i) { + result = fns[i](result); + } + return result; } function groupBy(items: T[], keyFn: (item: T) => string): Record {