MCPcopy Create free account
hub / github.com/Effect-TS/effect / gen

Function gen

packages/effect/src/internal/effect.ts:1174–1195  ·  view source on GitHub ↗
(
  ...args:
    | [options: { readonly self: Self }, body: (this: Self) => Generator<Eff, AEff, never>]
    | [body: () => Generator<Eff, AEff, never>]
)

Source from the content-addressed store, hash-verified

1172
1173/** @internal */
1174export const gen = <
1175 Self,
1176 Eff extends Effect.Effect<any, any, any>,
1177 AEff
1178>(
1179 ...args:
1180 | [options: { readonly self: Self }, body: (this: Self) => Generator<Eff, AEff, never>]
1181 | [body: () => Generator<Eff, AEff, never>]
1182): Effect.Effect<
1183 AEff,
1184 [Eff] extends [never] ? never
1185 : [Eff] extends [Effect.Effect<infer _A, infer E, infer _R>] ? E
1186 : never,
1187 [Eff] extends [never] ? never
1188 : [Eff] extends [Effect.Effect<infer _A, infer _E, infer R>] ? R
1189 : never
1190> =>
1191 suspend(() =>
1192 fromIteratorUnsafe(
1193 args.length === 1 ? args[0]() : (args[1].call(args[0].self) as any)
1194 )
1195 )
1196
1197/** @internal */
1198export const fnUntraced: Effect.fn.Untraced = (

Callers

nothing calls this directly

Calls 1

suspendFunction · 0.50

Tested by

no test coverage detected