@codesandbox/sdk
Version:
The CodeSandbox SDK
40 lines (39 loc) • 1.36 kB
TypeScript
import { Disposable } from "../utils/disposable";
import { type IAgentClient } from "../agent-client-interface";
import { Tracer } from "@opentelemetry/api";
export type Port = {
host: string;
port: number;
};
export declare class Ports {
private agentClient;
private tracer?;
private disposable;
private onDidPortOpenEmitter;
get onDidPortOpen(): import("../utils/event").Event<Port>;
private onDidPortCloseEmitter;
get onDidPortClose(): import("../utils/event").Event<number>;
private lastOpenedPorts;
constructor(sessionDisposable: Disposable, agentClient: IAgentClient, tracer?: Tracer | undefined);
private withSpan;
/**
* Get a port by number.
*/
get(port: number): Promise<Port | undefined>;
/**
* Get all ports.
*/
getAll(): Promise<Port[]>;
/**
* Wait for a port to be opened.
*
* @param port - The port to wait for.
* @param options - Additional options
* @param options.timeoutMs - Optional timeout in milliseconds. If specified, the promise will reject after this time if the port hasn't opened.
* @returns A promise that resolves when the port is opened.
* @throws {Error} If the timeout is reached before the port opens
*/
waitForPort(port: number, options?: {
timeoutMs?: number;
}): Promise<Port>;
}