@typed/effects
Version:
Generator-powered Effect management
30 lines • 845 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.KillError = exports.kill = exports.Kill = void 0;
const env_1 = require("@typed/env");
exports.Kill = {
kill(fiber) {
const { info } = fiber;
if (info.state === 0 /* Running */) {
fiber.info = { state: 2 /* Error */, error: new KillError() };
fiber.dispose();
return env_1.Resume.of(true);
}
return env_1.Resume.of(false);
},
};
function* kill(f) {
return yield (c) => c.kill(f);
}
exports.kill = kill;
class KillError extends Error {
constructor() {
super(KillError.message);
if (Error.captureStackTrace) {
Error.captureStackTrace(this);
}
}
}
exports.KillError = KillError;
KillError.message = `Kill`;
//# sourceMappingURL=kill.js.map
;