From 47d51391e348eaa114618655eccf577be0cff07b Mon Sep 17 00:00:00 2001 From: Snarling <84951833+Snarling@users.noreply.github.com> Date: Tue, 2 Aug 2022 11:30:28 -0400 Subject: [PATCH] fix typechecking and documentation for attempt --- src/NetscriptFunctions/CodingContract.ts | 5 +++-- src/ScriptEditor/NetscriptDefinitions.d.ts | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/NetscriptFunctions/CodingContract.ts b/src/NetscriptFunctions/CodingContract.ts index 388ce1202..93a34134c 100644 --- a/src/NetscriptFunctions/CodingContract.ts +++ b/src/NetscriptFunctions/CodingContract.ts @@ -33,10 +33,11 @@ export function NetscriptCodingContract(player: IPlayer, workerScript: WorkerScr const hostname = ctx.helper.string("hostname", _hostname); const contract = getCodingContract(ctx, "attempt", hostname, filename); + if (typeof answer !== "number" && typeof answer !== "string" && !Array.isArray(answer)) + throw new Error("The answer provided was not a number, string, or array"); + // Convert answer to string. const answerStr = JSON.stringify(answer); - if (answerStr === undefined) throw new Error("The provided answer could not be stringified"); - const creward = contract.reward; if (creward === null) throw new Error("Somehow solved a contract that didn't have a reward"); diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index 391044699..4bcd5413f 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -3222,7 +3222,7 @@ export interface CodingContract { * @param opts - Optional parameters for configuring function behavior. * @returns True if the solution was correct, false otherwise. If the returnReward option is configured, then the function will instead return a string. If the contract is successfully solved, the string will contain a description of the contract’s reward. Otherwise, it will be an empty string. */ - attempt(answer: string[] | number, filename: string, host?: string, opts?: CodingAttemptOptions): boolean | string; + attempt(answer: string | number | any[], filename: string, host?: string, opts?: CodingAttemptOptions): boolean | string; /** * Get the type of a coding contract.