diff --git a/src/NetscriptFunctions.ts b/src/NetscriptFunctions.ts index 7e1df5207..ea97083a9 100644 --- a/src/NetscriptFunctions.ts +++ b/src/NetscriptFunctions.ts @@ -1901,7 +1901,7 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS { const iport = helper.getValidPort("clearPort", port); return iport.clear(); }, - getPortHandle: function (port: any): any { + getPortHandle: function (port: any): IPort { updateDynamicRam("getPortHandle", getRamCost(Player, "getPortHandle")); const iport = helper.getValidPort("getPortHandle", port); return iport; diff --git a/src/ScriptEditor/NetscriptDefinitions.d.ts b/src/ScriptEditor/NetscriptDefinitions.d.ts index 058a46a42..99068487a 100644 --- a/src/ScriptEditor/NetscriptDefinitions.d.ts +++ b/src/ScriptEditor/NetscriptDefinitions.d.ts @@ -109,6 +109,32 @@ interface RunningScript { threads: number; } +/** + * Interface of a netscript port + * @public + */ +export interface IPort { + /** write data to the port and removes and returns first element if full */ + write: (value: any) => any; + /** add data to port if not full. + * @returns true if added and false if full and not added */ + tryWrite: (value: any) => boolean; + /** reads and removes first element from port + * if no data in port returns "NULL PORT DATA" + */ + read: () => any; + /** reads first element without removing it from port + * if no data in port returns "NULL PORT DATA" + */ + peek: () => any; + /** check if port is full */ + full: () => boolean; + /** check if port is empty */ + empty: () => boolean; + /** removes all data from port */ + clear: () => void; +} + /** * Data representing the internal values of a crime. * @public @@ -5409,7 +5435,7 @@ export interface NS extends Singularity { * @param port - Port number. Must be an integer between 1 and 20. * @returns Data in the specified port. */ - getPortHandle(port: number): any[]; + getPortHandle(port: number): IPort; /** * Delete a file.