MCPcopy Create free account
hub / github.com/Snowflyt/tinyeffect / pipe

Method pipe

src/effected.ts:2215–2246  ·  view source on GitHub ↗
(...fs: ((value: any) => any)[])

Source from the content-addressed store, hash-verified

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
2249export interface EffectedDraft<

Callers 6

effected.spec.tsFile · 0.80
fibPipeE1Function · 0.80
fibPipeE2Function · 0.80
fibPipeE3Function · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected