mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-18 21:53:50 +01:00
Less hardcoding
This commit is contained in:
parent
b8496b4c2c
commit
8d0347577d
@ -40,7 +40,7 @@ function wrapFunction(
|
|||||||
const functionPath = tree.join(".");
|
const functionPath = tree.join(".");
|
||||||
const functionName = tree.pop();
|
const functionName = tree.pop();
|
||||||
if (typeof functionName !== "string") {
|
if (typeof functionName !== "string") {
|
||||||
throw helpers.makeBasicErrorMsg(workerScript, "Failure occured while wrapping netscript api");
|
throw helpers.makeBasicErrorMsg(workerScript, "Failure occured while wrapping netscript api", "INITIALIZATION");
|
||||||
}
|
}
|
||||||
const ctx = {
|
const ctx = {
|
||||||
workerScript,
|
workerScript,
|
||||||
|
@ -131,11 +131,11 @@ function argsToString(args: unknown[]): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Creates an error message string containing hostname, scriptname, and the error message msg */
|
/** Creates an error message string containing hostname, scriptname, and the error message msg */
|
||||||
function makeBasicErrorMsg(workerScript: WorkerScript, msg: string): string {
|
function makeBasicErrorMsg(workerScript: WorkerScript, msg: string, type = "RUNTIME"): string {
|
||||||
for (const scriptUrl of workerScript.scriptRef.dependencies) {
|
for (const scriptUrl of workerScript.scriptRef.dependencies) {
|
||||||
msg = msg.replace(new RegExp(scriptUrl.url, "g"), scriptUrl.filename);
|
msg = msg.replace(new RegExp(scriptUrl.url, "g"), scriptUrl.filename);
|
||||||
}
|
}
|
||||||
return msg;
|
return `${type} ERROR\n${workerScript.name}@${workerScript.hostname} (PID - ${workerScript.pid})\n\n${msg}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Creates an error message string with a stack trace. */
|
/** Creates an error message string with a stack trace. */
|
||||||
@ -204,7 +204,7 @@ function makeRuntimeErrorMsg(ctx: NetscriptContext, msg: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log(ctx, () => msg);
|
log(ctx, () => msg);
|
||||||
let rejectMsg = `RUNTIME ERROR\n${ws.name}@${ws.hostname} (PID - ${ws.pid})\n\n${caller}: ${msg}`;
|
let rejectMsg = `${caller}: ${msg}`;
|
||||||
if (userstack.length !== 0) rejectMsg += `\n\nStack:\n${userstack.join("\n")}`;
|
if (userstack.length !== 0) rejectMsg += `\n\nStack:\n${userstack.join("\n")}`;
|
||||||
return makeBasicErrorMsg(ws, rejectMsg);
|
return makeBasicErrorMsg(ws, rejectMsg);
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,7 @@ import { simple as walksimple } from "acorn-walk";
|
|||||||
import { areFilesEqual } from "./Terminal/DirectoryHelpers";
|
import { areFilesEqual } from "./Terminal/DirectoryHelpers";
|
||||||
import { Terminal } from "./Terminal";
|
import { Terminal } from "./Terminal";
|
||||||
import { ScriptArg } from "./Netscript/ScriptArg";
|
import { ScriptArg } from "./Netscript/ScriptArg";
|
||||||
|
import { helpers } from "./Netscript/NetscriptHelpers";
|
||||||
|
|
||||||
export const NetscriptPorts: Map<number, IPort> = new Map();
|
export const NetscriptPorts: Map<number, IPort> = new Map();
|
||||||
|
|
||||||
@ -346,12 +347,16 @@ function createAndAddWorkerScript(runningScriptObj: RunningScript, server: BaseS
|
|||||||
workerScript.log("", () => "Script finished running");
|
workerScript.log("", () => "Script finished running");
|
||||||
})
|
})
|
||||||
.catch(function (e) {
|
.catch(function (e) {
|
||||||
const initialText = `ERROR\n${workerScript.name}@${workerScript.hostname} (PID - ${workerScript.pid})\n\n`;
|
if (typeof e === "string") {
|
||||||
if (e instanceof SyntaxError) e = `SYNTAX ${initialText}${e.message} (sorry we can't be more helpful)`;
|
const headerText = helpers.makeBasicErrorMsg(workerScript, "", "");
|
||||||
else if (e instanceof Error) {
|
//Add header info if it is not present;
|
||||||
e = `RUNTIME ${initialText}${e.message}${e.stack ? `\nstack:\n${e.stack.toString()}` : ""}`;
|
if (!e.includes(headerText)) e = helpers.makeBasicErrorMsg(workerScript, e);
|
||||||
|
} else if (e instanceof SyntaxError) {
|
||||||
|
e = helpers.makeBasicErrorMsg(workerScript, `${e.message} (sorry we can't be more helpful)`, "SYNTAX");
|
||||||
|
} else if (e instanceof Error) {
|
||||||
|
e = helpers.makeBasicErrorMsg(workerScript, `${e.message}${e.stack ? `\nstack:\n${e.stack.toString()}` : ""}`);
|
||||||
}
|
}
|
||||||
errorDialog(e, typeof e === "string" && e.includes(initialText) ? "" : initialText);
|
errorDialog(e);
|
||||||
workerScript.log("", () => (e instanceof ScriptDeath ? "Script killed." : "Script crashed due to an error."));
|
workerScript.log("", () => (e instanceof ScriptDeath ? "Script killed." : "Script crashed due to an error."));
|
||||||
killWorkerScript(workerScript);
|
killWorkerScript(workerScript);
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user