From 384d1c1a2b5eaab575d98af83d7a372274a2a805 Mon Sep 17 00:00:00 2001 From: David Walker Date: Tue, 23 Apr 2024 17:21:05 -0700 Subject: [PATCH] NETSCRIPT: A minorly breaking change around script launch, and refactoring. (#1213) --- markdown/bitburner.ns.args.md | 2 +- markdown/bitburner.ns.exec.md | 9 ++---- markdown/bitburner.ns.getrunningscript.md | 8 ++---- markdown/bitburner.ns.getscriptexpgain.md | 4 +-- markdown/bitburner.ns.getscriptincome.md | 4 +-- markdown/bitburner.ns.getscriptlogs.md | 4 +-- markdown/bitburner.ns.isrunning.md | 4 +-- markdown/bitburner.ns.md | 2 +- markdown/bitburner.ns.run.md | 4 +-- markdown/bitburner.ns.spawn.md | 4 +-- markdown/bitburner.ns.tail.md | 4 +-- markdown/bitburner.processinfo.args.md | 2 +- markdown/bitburner.processinfo.md | 2 +- markdown/bitburner.runningscript.args.md | 2 +- markdown/bitburner.runningscript.md | 2 +- src/Netscript/NetscriptHelpers.tsx | 3 +- src/Netscript/ScriptArg.ts | 1 - src/Netscript/ScriptIdentifier.ts | 2 +- src/Netscript/WorkerScript.ts | 2 +- src/NetscriptFunctions/Flags.ts | 2 +- src/NetscriptWorker.ts | 6 ++-- src/Script/LoadedModule.ts | 6 ++-- src/ScriptEditor/NetscriptDefinitions.d.ts | 33 ++++++++-------------- src/utils/helpers/scriptKey.ts | 2 +- 24 files changed, 48 insertions(+), 66 deletions(-) delete mode 100644 src/Netscript/ScriptArg.ts diff --git a/markdown/bitburner.ns.args.md b/markdown/bitburner.ns.args.md index 0eff7da40..7340b104d 100644 --- a/markdown/bitburner.ns.args.md +++ b/markdown/bitburner.ns.args.md @@ -9,7 +9,7 @@ Arguments passed into the script. **Signature:** ```typescript -readonly args: (string | number | boolean)[]; +readonly args: ScriptArg[]; ``` ## Remarks diff --git a/markdown/bitburner.ns.exec.md b/markdown/bitburner.ns.exec.md index 5822647cc..f47ed17a7 100644 --- a/markdown/bitburner.ns.exec.md +++ b/markdown/bitburner.ns.exec.md @@ -9,12 +9,7 @@ Start another script on any server. **Signature:** ```typescript -exec( - script: string, - hostname: string, - threadOrOptions?: number | RunOptions, - ...args: (string | number | boolean)[] - ): number; +exec(script: string, hostname: string, threadOrOptions?: number | RunOptions, ...args: ScriptArg[]): number; ``` ## Parameters @@ -24,7 +19,7 @@ exec( | script | string | Filename of script to execute. This file must already exist on the target server. | | hostname | string | Hostname of the target server on which to execute the script. | | threadOrOptions | number \| [RunOptions](./bitburner.runoptions.md) | _(Optional)_ Either an integer number of threads for new script, or a [RunOptions](./bitburner.runoptions.md) object. Threads defaults to 1. | -| args | (string \| number \| boolean)\[\] | Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the third argument threadOrOptions must be filled in with a value. | +| args | [ScriptArg](./bitburner.scriptarg.md)\[\] | Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the third argument threadOrOptions must be filled in with a value. | **Returns:** diff --git a/markdown/bitburner.ns.getrunningscript.md b/markdown/bitburner.ns.getrunningscript.md index 3c0c4bee0..5fc05e748 100644 --- a/markdown/bitburner.ns.getrunningscript.md +++ b/markdown/bitburner.ns.getrunningscript.md @@ -9,11 +9,7 @@ Get general info about a running script. **Signature:** ```typescript -getRunningScript( - filename?: FilenameOrPID, - hostname?: string, - ...args: (string | number | boolean)[] - ): RunningScript | null; +getRunningScript(filename?: FilenameOrPID, hostname?: string, ...args: ScriptArg[]): RunningScript | null; ``` ## Parameters @@ -22,7 +18,7 @@ getRunningScript( | --- | --- | --- | | filename | [FilenameOrPID](./bitburner.filenameorpid.md) | _(Optional)_ Optional. Filename or PID of the script. | | hostname | string | _(Optional)_ Hostname of target server. Optional, defaults to the server the calling script is running on. | -| args | (string \| number \| boolean)\[\] | Arguments to specify/identify the script. Optional, when looking for scripts run without arguments. | +| args | [ScriptArg](./bitburner.scriptarg.md)\[\] | Arguments to specify/identify the script. Optional, when looking for scripts run without arguments. | **Returns:** diff --git a/markdown/bitburner.ns.getscriptexpgain.md b/markdown/bitburner.ns.getscriptexpgain.md index 682b5cc40..cb2f773e5 100644 --- a/markdown/bitburner.ns.getscriptexpgain.md +++ b/markdown/bitburner.ns.getscriptexpgain.md @@ -9,7 +9,7 @@ Get the exp gain of a script. **Signature:** ```typescript -getScriptExpGain(script: string, host: string, ...args: (string | number | boolean)[]): number; +getScriptExpGain(script: string, host: string, ...args: ScriptArg[]): number; ``` ## Parameters @@ -18,7 +18,7 @@ getScriptExpGain(script: string, host: string, ...args: (string | number | boole | --- | --- | --- | | script | string | Filename of script. | | host | string | Server on which script is running. | -| args | (string \| number \| boolean)\[\] | Arguments that the script is running with. | +| args | [ScriptArg](./bitburner.scriptarg.md)\[\] | Arguments that the script is running with. | **Returns:** diff --git a/markdown/bitburner.ns.getscriptincome.md b/markdown/bitburner.ns.getscriptincome.md index ad6a53f01..d9cc82f8a 100644 --- a/markdown/bitburner.ns.getscriptincome.md +++ b/markdown/bitburner.ns.getscriptincome.md @@ -9,7 +9,7 @@ Get the income of a script. **Signature:** ```typescript -getScriptIncome(script: string, host: string, ...args: (string | number | boolean)[]): number; +getScriptIncome(script: string, host: string, ...args: ScriptArg[]): number; ``` ## Parameters @@ -18,7 +18,7 @@ getScriptIncome(script: string, host: string, ...args: (string | number | boolea | --- | --- | --- | | script | string | Filename of script. | | host | string | Server on which script is running. | -| args | (string \| number \| boolean)\[\] | Arguments that the script is running with. | +| args | [ScriptArg](./bitburner.scriptarg.md)\[\] | Arguments that the script is running with. | **Returns:** diff --git a/markdown/bitburner.ns.getscriptlogs.md b/markdown/bitburner.ns.getscriptlogs.md index ac8666f84..d1ab18e8f 100644 --- a/markdown/bitburner.ns.getscriptlogs.md +++ b/markdown/bitburner.ns.getscriptlogs.md @@ -9,7 +9,7 @@ Get all the logs of a script. **Signature:** ```typescript -getScriptLogs(fn?: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): string[]; +getScriptLogs(fn?: FilenameOrPID, host?: string, ...args: ScriptArg[]): string[]; ``` ## Parameters @@ -18,7 +18,7 @@ getScriptLogs(fn?: FilenameOrPID, host?: string, ...args: (string | number | boo | --- | --- | --- | | fn | [FilenameOrPID](./bitburner.filenameorpid.md) | _(Optional)_ Optional. Filename or PID of script to get logs from. | | host | string | _(Optional)_ Optional. Hostname of the server that the script is on. | -| args | (string \| number \| boolean)\[\] | Arguments to identify which scripts to get logs for. | +| args | [ScriptArg](./bitburner.scriptarg.md)\[\] | Arguments to identify which scripts to get logs for. | **Returns:** diff --git a/markdown/bitburner.ns.isrunning.md b/markdown/bitburner.ns.isrunning.md index e4da20aa9..686d7d13f 100644 --- a/markdown/bitburner.ns.isrunning.md +++ b/markdown/bitburner.ns.isrunning.md @@ -9,7 +9,7 @@ Check if a script is running. **Signature:** ```typescript -isRunning(script: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): boolean; +isRunning(script: FilenameOrPID, host?: string, ...args: ScriptArg[]): boolean; ``` ## Parameters @@ -18,7 +18,7 @@ isRunning(script: FilenameOrPID, host?: string, ...args: (string | number | bool | --- | --- | --- | | script | [FilenameOrPID](./bitburner.filenameorpid.md) | Filename or PID of script to check. This is case-sensitive. | | host | string | _(Optional)_ Hostname of target server. Optional, defaults to the server the calling script is running on. | -| args | (string \| number \| boolean)\[\] | Arguments to specify/identify the script. Optional, when looking for scripts run without arguments. | +| args | [ScriptArg](./bitburner.scriptarg.md)\[\] | Arguments to specify/identify the script. Optional, when looking for scripts run without arguments. | **Returns:** diff --git a/markdown/bitburner.ns.md b/markdown/bitburner.ns.md index 6c52c9494..e3ee38863 100644 --- a/markdown/bitburner.ns.md +++ b/markdown/bitburner.ns.md @@ -31,7 +31,7 @@ export async function main(ns) { | Property | Modifiers | Type | Description | | --- | --- | --- | --- | -| [args](./bitburner.ns.args.md) | readonly | (string \| number \| boolean)\[\] | Arguments passed into the script. | +| [args](./bitburner.ns.args.md) | readonly | [ScriptArg](./bitburner.scriptarg.md)\[\] | Arguments passed into the script. | | [bladeburner](./bitburner.ns.bladeburner.md) | readonly | [Bladeburner](./bitburner.bladeburner.md) | Namespace for bladeburner functions. Contains spoilers. | | [codingcontract](./bitburner.ns.codingcontract.md) | readonly | [CodingContract](./bitburner.codingcontract.md) | Namespace for codingcontract functions. | | [corporation](./bitburner.ns.corporation.md) | readonly | [Corporation](./bitburner.corporation.md) | Namespace for corporation functions. Contains spoilers. | diff --git a/markdown/bitburner.ns.run.md b/markdown/bitburner.ns.run.md index 0f9ee9501..974cd043b 100644 --- a/markdown/bitburner.ns.run.md +++ b/markdown/bitburner.ns.run.md @@ -9,7 +9,7 @@ Start another script on the current server. **Signature:** ```typescript -run(script: string, threadOrOptions?: number | RunOptions, ...args: (string | number | boolean)[]): number; +run(script: string, threadOrOptions?: number | RunOptions, ...args: ScriptArg[]): number; ``` ## Parameters @@ -18,7 +18,7 @@ run(script: string, threadOrOptions?: number | RunOptions, ...args: (string | nu | --- | --- | --- | | script | string | Filename of script to run. | | threadOrOptions | number \| [RunOptions](./bitburner.runoptions.md) | _(Optional)_ Either an integer number of threads for new script, or a [RunOptions](./bitburner.runoptions.md) object. Threads defaults to 1. | -| args | (string \| number \| boolean)\[\] | Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the second argument threadOrOptions must be filled in with a value. | +| args | [ScriptArg](./bitburner.scriptarg.md)\[\] | Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the second argument threadOrOptions must be filled in with a value. | **Returns:** diff --git a/markdown/bitburner.ns.spawn.md b/markdown/bitburner.ns.spawn.md index 7c9803a0c..46424bbb6 100644 --- a/markdown/bitburner.ns.spawn.md +++ b/markdown/bitburner.ns.spawn.md @@ -9,7 +9,7 @@ Terminate current script and start another in a defined number of milliseconds. **Signature:** ```typescript -spawn(script: string, threadOrOptions?: number | SpawnOptions, ...args: (string | number | boolean)[]): void; +spawn(script: string, threadOrOptions?: number | SpawnOptions, ...args: ScriptArg[]): void; ``` ## Parameters @@ -18,7 +18,7 @@ spawn(script: string, threadOrOptions?: number | SpawnOptions, ...args: (string | --- | --- | --- | | script | string | Filename of script to execute. | | threadOrOptions | number \| [SpawnOptions](./bitburner.spawnoptions.md) | _(Optional)_ Either an integer number of threads for new script, or a [SpawnOptions](./bitburner.spawnoptions.md) object. Threads defaults to 1 and spawnDelay defaults to 10,000 ms. | -| args | (string \| number \| boolean)\[\] | Additional arguments to pass into the new script that is being run. | +| args | [ScriptArg](./bitburner.scriptarg.md)\[\] | Additional arguments to pass into the new script that is being run. | **Returns:** diff --git a/markdown/bitburner.ns.tail.md b/markdown/bitburner.ns.tail.md index 917098686..ccc523286 100644 --- a/markdown/bitburner.ns.tail.md +++ b/markdown/bitburner.ns.tail.md @@ -9,7 +9,7 @@ Open the tail window of a script. **Signature:** ```typescript -tail(fn?: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): void; +tail(fn?: FilenameOrPID, host?: string, ...args: ScriptArg[]): void; ``` ## Parameters @@ -18,7 +18,7 @@ tail(fn?: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): | --- | --- | --- | | fn | [FilenameOrPID](./bitburner.filenameorpid.md) | _(Optional)_ Optional. Filename or PID of the script being tailed. If omitted, the current script is tailed. | | host | string | _(Optional)_ Optional. Hostname of the script being tailed. Defaults to the server this script is running on. If args are specified, this is not optional. | -| args | (string \| number \| boolean)\[\] | Arguments for the script being tailed. | +| args | [ScriptArg](./bitburner.scriptarg.md)\[\] | Arguments for the script being tailed. | **Returns:** diff --git a/markdown/bitburner.processinfo.args.md b/markdown/bitburner.processinfo.args.md index d23799ff3..59da6e94f 100644 --- a/markdown/bitburner.processinfo.args.md +++ b/markdown/bitburner.processinfo.args.md @@ -9,5 +9,5 @@ Script's arguments **Signature:** ```typescript -args: (string | number | boolean)[]; +args: ScriptArg[]; ``` diff --git a/markdown/bitburner.processinfo.md b/markdown/bitburner.processinfo.md index 08721b217..c139545f2 100644 --- a/markdown/bitburner.processinfo.md +++ b/markdown/bitburner.processinfo.md @@ -16,7 +16,7 @@ interface ProcessInfo | Property | Modifiers | Type | Description | | --- | --- | --- | --- | -| [args](./bitburner.processinfo.args.md) | | (string \| number \| boolean)\[\] | Script's arguments | +| [args](./bitburner.processinfo.args.md) | | [ScriptArg](./bitburner.scriptarg.md)\[\] | Script's arguments | | [filename](./bitburner.processinfo.filename.md) | | string | Script name. | | [pid](./bitburner.processinfo.pid.md) | | number | Process ID | | [temporary](./bitburner.processinfo.temporary.md) | | boolean | Whether this process is excluded from saves | diff --git a/markdown/bitburner.runningscript.args.md b/markdown/bitburner.runningscript.args.md index a0d42d023..45c3934f1 100644 --- a/markdown/bitburner.runningscript.args.md +++ b/markdown/bitburner.runningscript.args.md @@ -9,5 +9,5 @@ Arguments the script was called with **Signature:** ```typescript -args: (string | number | boolean)[]; +args: ScriptArg[]; ``` diff --git a/markdown/bitburner.runningscript.md b/markdown/bitburner.runningscript.md index fac4b92f8..8d758e91f 100644 --- a/markdown/bitburner.runningscript.md +++ b/markdown/bitburner.runningscript.md @@ -15,7 +15,7 @@ interface RunningScript | Property | Modifiers | Type | Description | | --- | --- | --- | --- | -| [args](./bitburner.runningscript.args.md) | | (string \| number \| boolean)\[\] | Arguments the script was called with | +| [args](./bitburner.runningscript.args.md) | | [ScriptArg](./bitburner.scriptarg.md)\[\] | Arguments the script was called with | | [filename](./bitburner.runningscript.filename.md) | | string | Filename of the script | | [logs](./bitburner.runningscript.logs.md) | | string\[\] | Script logs as an array. The newest log entries are at the bottom. Timestamps, if enabled, are placed inside [brackets] at the start of each line. | | [offlineExpGained](./bitburner.runningscript.offlineexpgained.md) | | number | Total amount of hacking experience earned from this script when offline | diff --git a/src/Netscript/NetscriptHelpers.tsx b/src/Netscript/NetscriptHelpers.tsx index e4c1ef1f2..045a42e0b 100644 --- a/src/Netscript/NetscriptHelpers.tsx +++ b/src/Netscript/NetscriptHelpers.tsx @@ -1,4 +1,5 @@ import type { NetscriptContext } from "./APIWrapper"; +import type { RunningScript as IRunningScript, Person as IPerson, Server as IServer, ScriptArg } from "@nsdefs"; import React from "react"; import { killWorkerScript } from "./killWorkerScript"; @@ -6,8 +7,6 @@ import { GetAllServers, GetServer } from "../Server/AllServers"; import { Player } from "@player"; import { ScriptDeath } from "./ScriptDeath"; import { formatExp, formatMoney, formatRam, formatThreads } from "../ui/formatNumber"; -import { ScriptArg } from "./ScriptArg"; -import { RunningScript as IRunningScript, Person as IPerson, Server as IServer } from "@nsdefs"; import { Server } from "../Server/Server"; import { calculateHackingChance, diff --git a/src/Netscript/ScriptArg.ts b/src/Netscript/ScriptArg.ts deleted file mode 100644 index 168a10722..000000000 --- a/src/Netscript/ScriptArg.ts +++ /dev/null @@ -1 +0,0 @@ -export type ScriptArg = string | number | boolean; diff --git a/src/Netscript/ScriptIdentifier.ts b/src/Netscript/ScriptIdentifier.ts index 497d70a02..585470359 100644 --- a/src/Netscript/ScriptIdentifier.ts +++ b/src/Netscript/ScriptIdentifier.ts @@ -1,4 +1,4 @@ -import { ScriptArg } from "./ScriptArg"; +import type { ScriptArg } from "@nsdefs"; //This was previously in INetscriptHelper.ts, may move to its own file or a generic types file. export type ScriptIdentifier = diff --git a/src/Netscript/WorkerScript.ts b/src/Netscript/WorkerScript.ts index 28f6c0c3e..cdc22cc01 100644 --- a/src/Netscript/WorkerScript.ts +++ b/src/Netscript/WorkerScript.ts @@ -12,7 +12,7 @@ import type { NSFull } from "../NetscriptFunctions"; import type { ScriptFilePath } from "../Paths/ScriptFilePath"; import type { RunningScript } from "../Script/RunningScript"; import type { Script } from "../Script/Script"; -import type { ScriptArg } from "./ScriptArg"; +import type { ScriptArg } from "@nsdefs"; import type { ScriptDeath } from "./ScriptDeath"; import { Environment } from "./Environment"; diff --git a/src/NetscriptFunctions/Flags.ts b/src/NetscriptFunctions/Flags.ts index 8071b3650..0e8a8075b 100644 --- a/src/NetscriptFunctions/Flags.ts +++ b/src/NetscriptFunctions/Flags.ts @@ -1,6 +1,6 @@ +import type { ScriptArg } from "@nsdefs"; import { toNative } from "./toNative"; import libarg from "arg"; -import { ScriptArg } from "../Netscript/ScriptArg"; import { NetscriptContext } from "../Netscript/APIWrapper"; type FlagType = StringConstructor | NumberConstructor | BooleanConstructor | StringConstructor[]; diff --git a/src/NetscriptWorker.ts b/src/NetscriptWorker.ts index 4db39464b..51fa94e66 100644 --- a/src/NetscriptWorker.ts +++ b/src/NetscriptWorker.ts @@ -57,10 +57,12 @@ async function startNetscript2Script(workerScript: WorkerScript): Promise const loadedModule = await compile(script, scripts); if (!loadedModule) throw `${script.filename} cannot be run because the script module won't load`; + const mainFunc = loadedModule.main; // TODO unplanned: Better error for "unexpected reserved word" when using await in non-async function? - if (typeof loadedModule.main !== "function") + if (typeof mainFunc !== "function") throw `${script.filename} cannot be run because it does not have a main function.`; - await loadedModule.main(ns); + // Explicitly called from a variable so that we don't bind "this". + await mainFunc(ns); } async function startNetscript1Script(workerScript: WorkerScript): Promise { diff --git a/src/Script/LoadedModule.ts b/src/Script/LoadedModule.ts index e0041e3c2..6c3980630 100644 --- a/src/Script/LoadedModule.ts +++ b/src/Script/LoadedModule.ts @@ -1,12 +1,12 @@ -import { NSFull } from "../NetscriptFunctions"; -import { AutocompleteData } from "@nsdefs"; +import type { NSFull } from "../NetscriptFunctions"; +import type { AutocompleteData, ScriptArg } from "@nsdefs"; // The object portion of this type is not runtime information, it's only to ensure type validation // And make it harder to overwrite a url with a random non-url string. export type ScriptURL = string & { __type: "ScriptURL" }; export interface ScriptModule { - main?: (ns: NSFull) => unknown; + main?: (ns: NSFull, ...args: ScriptArg[]) => unknown; autocomplete?: (data: AutocompleteData, flags: string[]) => unknown; } diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index a224b0f67..3d4934411 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -211,7 +211,7 @@ interface ReactElement { /** @public */ interface RunningScript { /** Arguments the script was called with */ - args: (string | number | boolean)[]; + args: ScriptArg[]; /** Filename of the script */ filename: string; /** @@ -435,7 +435,7 @@ interface ProcessInfo { /** Number of threads script is running with */ threads: number; /** Script's arguments */ - args: (string | number | boolean)[]; + args: ScriptArg[]; /** Process ID */ pid: number; /** Whether this process is excluded from saves */ @@ -5365,7 +5365,7 @@ export interface NS { * } * ``` */ - readonly args: (string | number | boolean)[]; + readonly args: ScriptArg[]; /** The current script's PID */ readonly pid: number; @@ -5834,7 +5834,7 @@ export interface NS { * @param args - Arguments to identify which scripts to get logs for. * @returns Returns a string array, where each line is an element in the array. The most recently logged line is at the end of the array. */ - getScriptLogs(fn?: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): string[]; + getScriptLogs(fn?: FilenameOrPID, host?: string, ...args: ScriptArg[]): string[]; /** * Get an array of recently killed scripts across all servers. @@ -5884,7 +5884,7 @@ export interface NS { * @param host - Optional. Hostname of the script being tailed. Defaults to the server this script is running on. If args are specified, this is not optional. * @param args - Arguments for the script being tailed. */ - tail(fn?: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): void; + tail(fn?: FilenameOrPID, host?: string, ...args: ScriptArg[]): void; /** * Move a tail window. @@ -6119,7 +6119,7 @@ export interface NS { * @param args - Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the second argument threadOrOptions must be filled in with a value. * @returns Returns the PID of a successfully started script, and 0 otherwise. */ - run(script: string, threadOrOptions?: number | RunOptions, ...args: (string | number | boolean)[]): number; + run(script: string, threadOrOptions?: number | RunOptions, ...args: ScriptArg[]): number; /** * Start another script on any server. @@ -6159,12 +6159,7 @@ export interface NS { * @param args - Additional arguments to pass into the new script that is being run. Note that if any arguments are being passed into the new script, then the third argument threadOrOptions must be filled in with a value. * @returns Returns the PID of a successfully started script, and 0 otherwise. */ - exec( - script: string, - hostname: string, - threadOrOptions?: number | RunOptions, - ...args: (string | number | boolean)[] - ): number; + exec(script: string, hostname: string, threadOrOptions?: number | RunOptions, ...args: ScriptArg[]): number; /** * Terminate current script and start another in a defined number of milliseconds. @@ -6189,7 +6184,7 @@ export interface NS { * @param threadOrOptions - Either an integer number of threads for new script, or a {@link SpawnOptions} object. Threads defaults to 1 and spawnDelay defaults to 10,000 ms. * @param args - Additional arguments to pass into the new script that is being run. */ - spawn(script: string, threadOrOptions?: number | SpawnOptions, ...args: (string | number | boolean)[]): void; + spawn(script: string, threadOrOptions?: number | SpawnOptions, ...args: ScriptArg[]): void; /** * Terminate the script with the provided PID. * @remarks @@ -6586,7 +6581,7 @@ export interface NS { * @param args - Arguments to specify/identify the script. Optional, when looking for scripts run without arguments. * @returns True if the specified script is running on the target server, and false otherwise. */ - isRunning(script: FilenameOrPID, host?: string, ...args: (string | number | boolean)[]): boolean; + isRunning(script: FilenameOrPID, host?: string, ...args: ScriptArg[]): boolean; /** * Get general info about a running script. @@ -6605,11 +6600,7 @@ export interface NS { * @param args - Arguments to specify/identify the script. Optional, when looking for scripts run without arguments. * @returns The info about the running script if found, and null otherwise. */ - getRunningScript( - filename?: FilenameOrPID, - hostname?: string, - ...args: (string | number | boolean)[] - ): RunningScript | null; + getRunningScript(filename?: FilenameOrPID, hostname?: string, ...args: ScriptArg[]): RunningScript | null; /** * Get cost of purchasing a server. @@ -7020,7 +7011,7 @@ export interface NS { * @param args - Arguments that the script is running with. * @returns Amount of income the specified script generates while online. */ - getScriptIncome(script: string, host: string, ...args: (string | number | boolean)[]): number; + getScriptIncome(script: string, host: string, ...args: ScriptArg[]): number; /** * Get the exp gain of all scripts. @@ -7048,7 +7039,7 @@ export interface NS { * @param args - Arguments that the script is running with. * @returns Amount of hacking experience the specified script generates while online. */ - getScriptExpGain(script: string, host: string, ...args: (string | number | boolean)[]): number; + getScriptExpGain(script: string, host: string, ...args: ScriptArg[]): number; /** * Returns the amount of time in milliseconds that have passed since you last installed Augmentations. diff --git a/src/utils/helpers/scriptKey.ts b/src/utils/helpers/scriptKey.ts index 7b1586cd6..aab4c51a1 100644 --- a/src/utils/helpers/scriptKey.ts +++ b/src/utils/helpers/scriptKey.ts @@ -1,4 +1,4 @@ -import type { ScriptArg } from "../../Netscript/ScriptArg"; +import type { ScriptArg } from "@nsdefs"; import type { ScriptFilePath } from "../../Paths/ScriptFilePath"; // This needs to be high in the dependency graph, with few/no dependencies of