8000 feat(function): add "pipe" helper · kdt310722/utils@21667d1 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit 21667d1

Browse files
committed
feat(function): add "pipe" helper
1 parent 14be3ef commit 21667d1

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

src/function/index.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
export * from './function'
22
export * from './once'
3+
export * from './pipe'
4+
35
export type * from './types'

src/function/pipe.ts

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
export function pipe<TInitial>(init: TInitial): TInitial
2+
export function pipe<TInitial, R1>(init: TInitial, init_r1: (init: TInitial) => R1): R1
3+
export function pipe<TInitial, R1, R2>(init: TInitial, init_r1: (init: TInitial) => R1, r1_r2: (r1: R1) => R2): R2
4+
export function pipe<TInitial, R1, R2, R3>(init: TInitial, init_r1: (init: TInitial) => R1, r1_r2: (r1: R1) => R2, r2_r3: (r2: R2) => R3): R3
5+
export function pipe<TInitial, R1, R2, R3, R4>(init: TInitial, init_r1: (init: TInitial) => R1, r1_r2: (r1: R1) => R2, r2_r3: (r2: R2) => R3, r3_r4: (r3: R3) => R4): R4
6+
export function pipe<TInitial, R1, R2, R3, R4, R5>(init: TInitial, init_r1: (init: TInitial) => R1, r1_r2: (r1: R1) => R2, r2_r3: (r2: R2) => R3, r3_r4: (r3: R3) => R4, r4_r5: (r4: R4) => R5): R5
7+
export function pipe<TInitial, R1, R2, R3, R4, R5, R6>(init: TInitial, init_r1: (init: TInitial) => R1, r1_r2: (r1: R1) => R2, r2_r3: (r2: R2) => R3, r3_r4: (r3: R3) => R4, r4_r5: (r4: R4) => R5, r5_r6: (r5: R5) => R6): R6
8+
export function pipe<TInitial, R1, R2, R3, R4, R5, R6, R7>(init: TInitial, init_r1: (init: TInitial) => R1, r1_r2: (r1: R1) => R2, r2_r3: (r2: R2) => R3, r3_r4: (r3: R3) => R4, r4_r5: (r4: R4) => R5, r5_r6: (r5: R5) => R6, r6_r7: (r6: R6) => R7): R7
9+
export function pipe<TInitial, R1, R2, R3, R4, R5, R6, R7, R8>(init: TInitial, init_r1: (init: TInitial) => R1, r1_r2: (r1: R1) => R2, r2_r3: (r2: R2) => R3, r3_r4: (r3: R3) => R4, r4_r5: (r4: R4) => R5, r5_r6: (r5: R5) => R6, r6_r7: (r6: R6) => R7, r7_r8: (r7: R7) => R8): R8
10+
export function pipe<TInitial, R1, R2, R3, R4, R5, R6, R7, R8, R9>(init: TInitial, init_r1: (init: TInitial) => R1, r1_r2: (r1: R1) => R2, r2_r3: (r2: R2) => R3, r3_r4: (r3: R3) => R4, r4_r5: (r4: R4) => R5, r5_r6: (r5: R5) => R6, r6_r7: (r6: R6) => R7, r7_r8: (r7: R7) => R8, r8_r9: (r8: R8) => R9): R9
11+
export function pipe<TInitial, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10>(init: TInitial, init_r1: (init: TInitial) => R1, r1_r2: (r1: R1) => R2, r2_r3: (r2: R2) => R3, r3_r4: (r3: R3) => R4, r4_r5: (r4: R4) => R5, r5_r6: (r5: R5) => R6, r6_r7: (r6: R6) => R7, r7_r8: (r7: R7) => R8, r8_r9: (r8: R8) => R9, r9_r10: (r9: R9) => R10): R10
12+
13+
export function pipe<TInitial>(init: TInitial, ...fns: CallableFunction[]) {
14+
return fns.reduce((acc, fn) => fn(acc), init)
15+
}

0 commit comments

Comments
 (0)
0