diff options
author | Minteck <46352972+Minteck@users.noreply.github.com> | 2021-07-20 01:30:23 +0200 |
---|---|---|
committer | Minteck <46352972+Minteck@users.noreply.github.com> | 2021-07-20 01:30:23 +0200 |
commit | 44210691ee8444509ac466a362337af77f2bcd49 (patch) | |
tree | 4dc2f242cf5fd4daa3fc6f9e42516e7d55b73538 /typescript/builder.js | |
parent | efa5fc926071de7087836d399c42f53e701b4cff (diff) | |
download | kartik-client-44210691ee8444509ac466a362337af77f2bcd49.tar.gz kartik-client-44210691ee8444509ac466a362337af77f2bcd49.tar.bz2 kartik-client-44210691ee8444509ac466a362337af77f2bcd49.zip |
Commit
Diffstat (limited to 'typescript/builder.js')
-rw-r--r-- | typescript/builder.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/typescript/builder.js b/typescript/builder.js new file mode 100644 index 0000000..e3294a1 --- /dev/null +++ b/typescript/builder.js @@ -0,0 +1,50 @@ +const os = require('os'); +const fs = require('fs'); +const { dialog } = require('electron'); + +if (os.platform() === "win32") { + cmd = "typescript\\engine-win32.exe"; +} else { + cmd = "./typescript/engine-" + os.platform(); +} + +fs.copyFileSync("./typescript/interface.ts", homedir + "/.kartik/build/kartik.ts"); + +cp = require('child_process').spawnSync(cmd, [ "./node_modules/typescript/bin/tsc", "--skipLibCheck", "--removeComments", "--sourceMap", "-m", "commonjs", "--target", "es6", homedir + "/.kartik/build/kartik.ts" ], { cwd: KartikRoot }); +if (cp.status !== 0) { + console.error(cp.stdout.toString()); + throw new Error("Subprocess exited with code " + cp.status); +} + +fs.unlinkSync(homedir + "/.kartik/build/kartik.ts"); + +module.exports = (source, destination) => { + if (os.platform() === "win32") { + source = source.replaceAll("/", "\\"); + destination = destination.replaceAll("/", "\\"); + } + + console.log(destination.substr(0, destination.length - 3)); + fs.copyFileSync(source, destination.substr(0, destination.length - 3)); + fs.writeFileSync(destination.substr(0, destination.length - 3), fs.readFileSync(destination.substr(0, destination.length - 3)).toString().replaceAll("$KARTIK:", homedir.replaceAll("\\", "\\\\") + "/.kartik/build/kartik.js")) + cp = require('child_process').spawnSync(cmd, [ "./node_modules/typescript/bin/tsc", "--skipLibCheck", "--removeComments", "--sourceMap", "-m", "commonjs", "--target", "es5", destination.substr(0, destination.length - 3) ], { cwd: KartikRoot }); + if (cp.status !== 0) { + if (cp.stdout !== undefined) { + dialog.showMessageBoxSync( + { + type: "error", + title: "KMP Mod Loader", + message: "On package " + item + ": KMP-API building " + source + ":\n\n" + cp.stdout.toString().trim() + "\n\nEXITING." + } + ) + process.exit(2); + } else { + throw new Error("Subprocess exited with code " + cp.status); + } + } + compiledTypeScriptFiles.push(destination.substr(0, destination.length - 6) + ".js"); + + lines = fs.readFileSync(destination.substr(0, destination.length - 6) + ".js").toString().split("\n"); + lines[1] = ""; + fs.writeFileSync(destination.substr(0, destination.length - 6) + ".js", lines.join("\n")); +}
\ No newline at end of file |