{"version":3,"file":"pipe-B7Xu6OU9.cjs","names":[],"sources":["../src/functions/pipe/pipe.ts"],"sourcesContent":["import type { Func } from './types/Func';\nimport type { UnaryFunction } from './types/UnaryFunction';\n\n/**\n * Type-enforcing left-to-right function composition function.\n * The first parameter can be a function of any arity, but the remaining parameters must be unary functions.\n * The return type of one function must be compatible with the argument of next function in the argument list\n * @param f0 The first function in the composition\n * @note The types here are only inferred for the first 20 functions.\n * If you need more, you have to type the functions explicitly.\n * please open an issue, but this should be enough to cover most use cases.\n * @returns A function with the arguments of the *first* function in the argument list and a return type of the *last* function in the argument list\n */\nexport function pipe<TIn extends unknown[], TOut>(\n  f0: Func<TIn, TOut>\n): Func<TIn, TOut>;\nexport function pipe<TIn extends unknown[], T1, TOut>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, TOut>\n): Func<TIn, TOut>;\nexport function pipe<TIn extends unknown[], T1, T2, TOut>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, TOut>\n): Func<TIn, TOut>;\nexport function pipe<TIn extends unknown[], T1, T2, T3, TOut>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, TOut>\n): Func<TIn, TOut>;\nexport function pipe<TIn extends unknown[], T1, T2, T3, T4, TOut>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, TOut>\n): Func<TIn, TOut>;\nexport function pipe<TIn extends unknown[], T1, T2, T3, T4, T5, TOut>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, TOut>\n): Func<TIn, TOut>;\nexport function pipe<TIn extends unknown[], T1, T2, T3, T4, T5, T6, TOut>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, TOut>\n): Func<TIn, TOut>;\nexport function pipe<TIn extends unknown[], T1, T2, T3, T4, T5, T6, T7, TOut>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  T12,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, T12>,\n  f12: UnaryFunction<T12, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  T12,\n  T13,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, T12>,\n  f12: UnaryFunction<T12, T13>,\n  f13: UnaryFunction<T13, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  T12,\n  T13,\n  T14,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, T12>,\n  f12: UnaryFunction<T12, T13>,\n  f13: UnaryFunction<T13, T14>,\n  f14: UnaryFunction<T14, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  T12,\n  T13,\n  T14,\n  T15,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, T12>,\n  f12: UnaryFunction<T12, T13>,\n  f13: UnaryFunction<T13, T14>,\n  f14: UnaryFunction<T14, T15>,\n  f15: UnaryFunction<T15, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  T12,\n  T13,\n  T14,\n  T15,\n  T16,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, T12>,\n  f12: UnaryFunction<T12, T13>,\n  f13: UnaryFunction<T13, T14>,\n  f14: UnaryFunction<T14, T15>,\n  f15: UnaryFunction<T15, T16>,\n  f16: UnaryFunction<T16, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  T12,\n  T13,\n  T14,\n  T15,\n  T16,\n  T17,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, T12>,\n  f12: UnaryFunction<T12, T13>,\n  f13: UnaryFunction<T13, T14>,\n  f14: UnaryFunction<T14, T15>,\n  f15: UnaryFunction<T15, T16>,\n  f16: UnaryFunction<T16, T17>,\n  f17: UnaryFunction<T17, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  T12,\n  T13,\n  T14,\n  T15,\n  T16,\n  T17,\n  T18,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, T12>,\n  f12: UnaryFunction<T12, T13>,\n  f13: UnaryFunction<T13, T14>,\n  f14: UnaryFunction<T14, T15>,\n  f15: UnaryFunction<T15, T16>,\n  f16: UnaryFunction<T16, T17>,\n  f17: UnaryFunction<T17, T18>,\n  f18: UnaryFunction<T18, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  T12,\n  T13,\n  T14,\n  T15,\n  T16,\n  T17,\n  T18,\n  T19,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, T12>,\n  f12: UnaryFunction<T12, T13>,\n  f13: UnaryFunction<T13, T14>,\n  f14: UnaryFunction<T14, T15>,\n  f15: UnaryFunction<T15, T16>,\n  f16: UnaryFunction<T16, T17>,\n  f17: UnaryFunction<T17, T18>,\n  f18: UnaryFunction<T18, T19>,\n  f19: UnaryFunction<T19, TOut>\n): Func<TIn, TOut>;\nexport function pipe<\n  TIn extends unknown[],\n  T1,\n  T2,\n  T3,\n  T4,\n  T5,\n  T6,\n  T7,\n  T8,\n  T9,\n  T10,\n  T11,\n  T12,\n  T13,\n  T14,\n  T15,\n  T16,\n  T17,\n  T18,\n  T19,\n  T20,\n  TOut,\n>(\n  f0: Func<TIn, T1>,\n  f1: UnaryFunction<T1, T2>,\n  f2: UnaryFunction<T2, T3>,\n  f3: UnaryFunction<T3, T4>,\n  f4: UnaryFunction<T4, T5>,\n  f5: UnaryFunction<T5, T6>,\n  f6: UnaryFunction<T6, T7>,\n  f7: UnaryFunction<T7, T8>,\n  f8: UnaryFunction<T8, T9>,\n  f9: UnaryFunction<T9, T10>,\n  f10: UnaryFunction<T10, T11>,\n  f11: UnaryFunction<T11, T12>,\n  f12: UnaryFunction<T12, T13>,\n  f13: UnaryFunction<T13, T14>,\n  f14: UnaryFunction<T14, T15>,\n  f15: UnaryFunction<T15, T16>,\n  f16: UnaryFunction<T16, T17>,\n  f17: UnaryFunction<T17, T18>,\n  f18: UnaryFunction<T18, T19>,\n  f19: UnaryFunction<T19, T20>,\n  f20: UnaryFunction<T20, TOut>\n): Func<TIn, TOut>;\nexport function pipe<TIn extends unknown[], TOut>(\n  // biome-ignore lint/suspicious/noExplicitAny: final overload, which isn't typed\n  o1: Func<TIn, any>,\n  // biome-ignore lint/suspicious/noExplicitAny: final overload, which isn't typed\n  ...operations: UnaryFunction<any, any>[]\n): Func<TIn, TOut>;\n/**\n * Implementation of pipe function.\n * @param o1 first operation\n * @param operations rest of operations\n * @returns function that will execute all operations in order\n */\nexport function pipe<TIn extends unknown[], TOut>(\n  // biome-ignore lint/suspicious/noExplicitAny: implementation of overloads\n  o1: Func<TIn, any>,\n  // biome-ignore lint/suspicious/noExplicitAny: implementation of overloads\n  ...operations: UnaryFunction<any, any>[]\n): Func<TIn, TOut> {\n  return (...argsP: TIn) => operations.reduce((acc, f) => f(acc), o1(...argsP));\n}\n"],"mappings":";;;;;;;;AAugBA,SAAgB,KAEd,IAEA,GAAG,YACc;AACjB,SAAQ,GAAG,UAAe,WAAW,QAAQ,KAAK,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC"}