isaacscript
Version:
A command line tool for managing Isaac mods written in TypeScript.
29 lines • 1.27 kB
JavaScript
import { fatalError } from "complete-node";
import { fork } from "node:child_process";
import path from "node:path";
import { WATCHER_MOD_NAME } from "../../constants.js";
const SUBPROCESS_NAME = "saveDatWriter";
const SUBPROCESS_DESCRIPTION = "save#.dat writer";
let saveDatWriter;
export function spawnSaveDatWriter(config) {
const processPath = path.join(import.meta.dirname, SUBPROCESS_NAME, SUBPROCESS_NAME);
const modsDataPath = path.resolve(config.modsDirectory, "..", "data");
const watcherModDataPath = path.join(modsDataPath, WATCHER_MOD_NAME);
const saveDatFileName = `save${config.saveSlot}.dat`;
const saveDatPath = path.join(watcherModDataPath, saveDatFileName);
saveDatWriter = fork(processPath, [saveDatPath], {
stdio: ["pipe", "pipe", "pipe", "ipc"],
});
saveDatWriter.on("close", (code) => {
fatalError(`Error: ${SUBPROCESS_DESCRIPTION} subprocess closed with code: ${code}`);
});
saveDatWriter.on("exit", (code) => {
fatalError(`Error: ${SUBPROCESS_DESCRIPTION} subprocess exited with code: ${code}`);
});
}
export function sendMsgToSaveDatWriter(msg) {
if (saveDatWriter !== undefined) {
saveDatWriter.send(msg);
}
}
//# sourceMappingURL=spawnSaveDatWriter.js.map