"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Oneshot = void 0; const CommandController_1 = require("./CommandController"); const Daemon_1 = require("./Daemon"); /** * This is a wrapper around CommandController that has a state of off, where the command shouldn't be running * and the others state of running, where it will keep a living running command * unlike Daemon, does not restart on success */ class Oneshot extends Daemon_1.Daemon { static of() { return (effects, subcontainer, exec) => { let subc = subcontainer; if (subcontainer && subcontainer.isOwned()) subc = subcontainer.rc(); const startCommand = () => CommandController_1.CommandController.of()(effects, (subc?.rc() ?? null), exec); return new Oneshot(subcontainer, startCommand, true); }; } } exports.Oneshot = Oneshot; //# sourceMappingURL=Oneshot.js.map