@typed/effects
Version:
Generator-powered Effect management
25 lines • 665 B
JavaScript
import { Resume } from '@typed/env';
export const Kill = {
kill(fiber) {
const { info } = fiber;
if (info.state === 0 /* Running */) {
fiber.info = { state: 2 /* Error */, error: new KillError() };
fiber.dispose();
return Resume.of(true);
}
return Resume.of(false);
},
};
export function* kill(f) {
return yield (c) => c.kill(f);
}
export class KillError extends Error {
constructor() {
super(KillError.message);
if (Error.captureStackTrace) {
Error.captureStackTrace(this);
}
}
}
KillError.message = `Kill`;
//# sourceMappingURL=kill.js.map