@lakutata/core
Version:
Lakutata Framework Core
34 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProcessManager = void 0;
const ProcessException_1 = require("../../exceptions/ProcessException");
const Process_1 = require("../../lib/multipleRunner/lib/Process");
class ProcessManager {
constructor() {
this.processMap = new Map();
}
async createProcess(processConstructor) {
if (this.processMap.has(processConstructor))
return false;
const processProxy = await (0, Process_1.Process)(processConstructor);
this.processMap.set(processConstructor, processProxy);
return true;
}
has(processConstructor) {
return this.processMap.has(processConstructor);
}
get(processConstructor) {
if (this.processMap.has(processConstructor)) {
return this.processMap.get(processConstructor);
}
throw new ProcessException_1.ProcessException(`Process [${processConstructor.name}] is not bound`);
}
async destroy(processConstructor) {
if (this.processMap.has(processConstructor)) {
await this.processMap.get(processConstructor)?.terminate();
this.processMap.delete(processConstructor);
}
}
}
exports.ProcessManager = ProcessManager;
//# sourceMappingURL=ProcessManager.js.map