Merge pull request #3758 from danielyxie/api-wrap

Fix a few bugs related to api wrapping
This commit is contained in:
hydroflame 2022-05-25 11:12:38 -04:00 committed by GitHub
commit bef953bf59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 61 additions and 64 deletions

4
dist/main.bundle.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

42
dist/vendor.bundle.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -950,7 +950,7 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
(ctx: NetscriptContext) =>
(fn: any, hostname: any = workerScript.hostname, ...scriptArgs: any[]): void => {
let runningScriptObj;
if (arguments.length === 0) {
if (fn === undefined) {
runningScriptObj = workerScript.scriptRef;
} else if (typeof fn === "number") {
runningScriptObj = getRunningScriptByPid(fn);
@ -1248,12 +1248,9 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
(ctx: NetscriptContext) =>
async (scriptname: any, _hostname1: unknown, hostname2?: any): Promise<boolean> => {
const hostname1 = ctx.helper.string("hostname1", _hostname1);
if (arguments.length !== 2 && arguments.length !== 3) {
throw ctx.makeRuntimeErrorMsg("Takes 2 or 3 arguments");
}
if (scriptname && scriptname.constructor === Array) {
// Recursively call scp on all elements of array
const scripts: Array<string> = scriptname;
const scripts: string[] = scriptname;
if (scripts.length === 0) {
throw ctx.makeRuntimeErrorMsg("No scripts to copy");
}
@ -1412,7 +1409,7 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
// Get the grep filter, if one exists
let filter = "";
if (arguments.length >= 2) {
if (_grep !== undefined) {
filter = grep.toString();
}
@ -1787,7 +1784,6 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
(_name: unknown, _ram: unknown): string => {
const name = ctx.helper.string("name", _name);
const ram = ctx.helper.number("ram", _ram);
if (arguments.length !== 2) throw ctx.makeRuntimeErrorMsg("Takes 2 arguments");
let hostnameStr = String(name);
hostnameStr = hostnameStr.replace(/\s+/g, "");
if (hostnameStr == "") {
@ -2214,7 +2210,7 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
getScriptIncome:
(ctx: NetscriptContext) =>
(scriptname?: any, hostname?: any, ...args: any[]): any => {
if (arguments.length === 0) {
if (scriptname === undefined) {
const res = [];
// First element is total income of all currently running scripts
@ -2241,7 +2237,7 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS {
getScriptExpGain:
(ctx: NetscriptContext) =>
(scriptname?: any, hostname?: any, ...args: any[]): number => {
if (arguments.length === 0) {
if (scriptname === undefined) {
let total = 0;
for (const ws of workerScripts.values()) {
total += ws.scriptRef.onlineExpGained / ws.scriptRef.onlineRunningTime;

@ -2,7 +2,8 @@ import { toNative } from "./toNative";
import * as libarg from "arg";
export function Flags(vargs: string[]): any {
return function (data: any): any {
return () =>
(data: any): any => {
data = toNative(data);
// We always want the help flag.
const args: {