UNPKG

@typed/effects

Version:

Generator-powered Effect management

29 lines 1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fork = exports.Fork = void 0; const env_1 = require("@typed/env"); const failures_1 = require("../failures"); const runEffects_1 = require("../run/runEffects"); const createFiber_1 = require("./createFiber"); const Fiber_1 = require("./Fiber"); exports.Fork = { fork: (effect, c) => { const fiber = createFiber_1.createFiber(); function* tryRunEffect() { try { fiber.info = { state: 1 /* Returned */, value: yield* effect }; } catch (error) { fiber.info = { state: 2 /* Error */, error }; yield* failures_1.fail(Fiber_1.FiberFailure, error); } } fiber.addDisposable(runEffects_1.runEffects(tryRunEffect(), c)); return env_1.Resume.of(fiber); }, }; function* fork(effect) { return yield (c) => c.fork(effect, c); } exports.fork = fork; //# sourceMappingURL=fork.js.map