(...fs: ((value: any) => any)[])
| 2213 | // prettier-ignore |
| 2214 | pipe<E2 extends Effect, R2, E3 extends Effect, R3, E4 extends Effect, R4, E5 extends Effect, R5, E6 extends Effect, R6, E7 extends Effect, R7, E8 extends Effect, R8, E9 extends Effect, R9>(a: (self: Effected<E, R>) => Effected<E2, R2>, b: (self: Effected<E2, R2>) => Effected<E3, R3>, c: (self: Effected<E3, R3>) => Effected<E4, R4>, d: (self: Effected<E4, R4>) => Effected<E5, R5>, e: (self: Effected<E5, R5>) => Effected<E6, R6>, f: (self: Effected<E6, R6>) => Effected<E7, R7>, g: (self: Effected<E7, R7>) => Effected<E8, R8>, h: (self: Effected<E8, R8>) => Effected<E9, R9>): Effected<E9, R9>; |
| 2215 | pipe(...fs: ((value: any) => any)[]): any { |
| 2216 | // Optimization inspired by Effect |
| 2217 | // https://github.com/Effect-TS/effect/blob/f293e97ab2a26f45586de106b85119c5d98ab4c7/packages/effect/src/Pipeable.ts#L491-L524 |
| 2218 | switch (fs.length) { |
| 2219 | case 0: |
| 2220 | return this; |
| 2221 | case 1: |
| 2222 | return fs[0]!(this); |
| 2223 | case 2: |
| 2224 | return fs[1]!(fs[0]!(this)); |
| 2225 | case 3: |
| 2226 | return fs[2]!(fs[1]!(fs[0]!(this))); |
| 2227 | case 4: |
| 2228 | return fs[3]!(fs[2]!(fs[1]!(fs[0]!(this)))); |
| 2229 | case 5: |
| 2230 | return fs[4]!(fs[3]!(fs[2]!(fs[1]!(fs[0]!(this))))); |
| 2231 | case 6: |
| 2232 | return fs[5]!(fs[4]!(fs[3]!(fs[2]!(fs[1]!(fs[0]!(this)))))); |
| 2233 | case 7: |
| 2234 | return fs[6]!(fs[5]!(fs[4]!(fs[3]!(fs[2]!(fs[1]!(fs[0]!(this))))))); |
| 2235 | case 8: |
| 2236 | return fs[7]!(fs[6]!(fs[5]!(fs[4]!(fs[3]!(fs[2]!(fs[1]!(fs[0]!(this)))))))); |
| 2237 | case 9: |
| 2238 | return fs[8]!(fs[7]!(fs[6]!(fs[5]!(fs[4]!(fs[3]!(fs[2]!(fs[1]!(fs[0]!(this))))))))); |
| 2239 | default: { |
| 2240 | // eslint-disable-next-line @typescript-eslint/no-this-alias |
| 2241 | let result = this; |
| 2242 | for (let i = 0, len = fs.length; i < len; i++) result = fs[i]!(result); |
| 2243 | return result; |
| 2244 | } |
| 2245 | } |
| 2246 | } |
| 2247 | } |
| 2248 | |
| 2249 | export interface EffectedDraft< |
no outgoing calls
no test coverage detected