aboutsummaryrefslogtreecommitdiff
path: root/typescript/builder.js
diff options
context:
space:
mode:
authorMinteck <nekostarfan@gmail.com>2021-08-05 17:29:18 +0200
committerGitHub <noreply@github.com>2021-08-05 17:29:18 +0200
commitb865b8f6586ffd4554cdfe45c739030afc882acd (patch)
tree37bcdf6575d8764b7367f34544658886879c0c5e /typescript/builder.js
parent79edea37d15f88f086f7775bbbce64a57535b043 (diff)
parent7b541bbf2a8d754d26511895801d90f02cdf99f7 (diff)
downloadkartik-client-b865b8f6586ffd4554cdfe45c739030afc882acd.tar.gz
kartik-client-b865b8f6586ffd4554cdfe45c739030afc882acd.tar.bz2
kartik-client-b865b8f6586ffd4554cdfe45c739030afc882acd.zip
Merge pull request #4 from Minteck-Projects/devel
Branching 21.08
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..d021fb2
--- /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