MCPcopy Index your code
hub / github.com/Effect-TS/effect / bind

Function bind

packages/typeclass/src/Chainable.ts:63–81  ·  view source on GitHub ↗
(F: Chainable<F>)

Source from the content-addressed store, hash-verified

61 * @since 0.24.0
62 */
63export const bind = <F extends TypeLambda>(F: Chainable<F>): {
64 <N extends string, A extends object, R2, O2, E2, B>(
65 name: Exclude<N, keyof A>,
66 f: (a: NoInfer<A>) => Kind<F, R2, O2, E2, B>
67 ): <R1, O1, E1>(
68 self: Kind<F, R1, O1, E1, A>
69 ) => Kind<F, R1 & R2, O1 | O2, E1 | E2, { [K in keyof A | N]: K extends keyof A ? A[K] : B }>
70 <R1, O1, E1, A extends object, N extends string, R2, O2, E2, B>(
71 self: Kind<F, R1, O1, E1, A>,
72 name: Exclude<N, keyof A>,
73 f: (a: NoInfer<A>) => Kind<F, R2, O2, E2, B>
74 ): Kind<F, R1 & R2, O1 | O2, E1 | E2, { [K in keyof A | N]: K extends keyof A ? A[K] : B }>
75} =>
76 dual(3, <R1, O1, E1, A, N extends string, R2, O2, E2, B>(
77 self: Kind<F, R1, O1, E1, A>,
78 name: Exclude<N, keyof A>,
79 f: (a: NoInfer<A>) => Kind<F, R2, O2, E2, B>
80 ): Kind<F, R1 & R2, O1 | O2, E1 | E2, { [K in keyof A | N]: K extends keyof A ? A[K] : B }> =>
81 F.flatMap(self, (a) => F.map(f(a), (b) => Object.assign({}, a, { [name]: b }) as any)))

Callers 1

Chainable.test.tsFile · 0.50

Calls 2

mapMethod · 0.65
fFunction · 0.50

Tested by

no test coverage detected