aboutsummaryrefslogtreecommitdiff
path: root/typescript/builder.js
diff options
context:
space:
mode:
authorMinteck <46352972+Minteck@users.noreply.github.com>2021-07-20 01:30:23 +0200
committerMinteck <46352972+Minteck@users.noreply.github.com>2021-07-20 01:30:23 +0200
commit44210691ee8444509ac466a362337af77f2bcd49 (patch)
tree4dc2f242cf5fd4daa3fc6f9e42516e7d55b73538 /typescript/builder.js
parentefa5fc926071de7087836d399c42f53e701b4cff (diff)
downloadkartik-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.js50
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