Effect CommunityEC
Effect Community4w ago
3 replies
Janosch

Using Object.assign with Effect.fn in TypeScript

import { Effect } from "effect";

Effect.runPromise(
  Effect.gen(function* () {
    const generateValue = Effect.fn(
      function* () {
        return 42;
      },
      (e) => Object.assign(e, { value: 12 }),
    );
    // @ts-expect-error value is not defined
    console.log(generateValue().value);
  })
)

Effect.runPromise(
  Effect.gen(function* () {
    const generateValue = () => Effect.gen(function* () {
      return 42;
    }).pipe((e) => Object.assign(e, { value: 12 }));
    console.log(generateValue().value);
  })
)

undefined
12

Is there any difference between the Effect returned from calling Effect.fn and () => Effect.gen?
Was this page helpful?