UNPKG

isaacscript

Version:

A command line tool for managing Isaac mods written in TypeScript.

29 lines 1.27 kB
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