UNPKG

browser-debugger-cli

Version:

DevTools telemetry in your terminal. For humans and agents. Direct WebSocket to Chrome's debugging port.

69 lines 2.44 kB
/** * Type guards for runtime type validation. * * Provides type-safe validation of IPC response data, replacing unsafe * `as unknown as` type assertions with proper runtime checks. * * WHY: Type assertions bypass TypeScript's type system and can lead to * runtime errors. Type guards provide actual runtime validation while * maintaining type safety. */ import type { NetworkRequest, ConsoleMessage } from '../types.js'; /** * Type guard to check if a value is a valid NetworkRequest. * * Validates the presence of required NetworkRequest properties. * * @param value - Unknown value to validate * @returns True if value is a valid NetworkRequest * * @example * ```typescript * if (isNetworkRequest(item)) { * console.log(item.url); // TypeScript knows item is NetworkRequest * } * ``` */ export declare function isNetworkRequest(value: unknown): value is NetworkRequest; /** * Type guard to check if a value is a valid ConsoleMessage. * * Validates the presence of required ConsoleMessage properties. * * @param value - Unknown value to validate * @returns True if value is a valid ConsoleMessage * * @example * ```typescript * if (isConsoleMessage(item)) { * console.log(item.text); // TypeScript knows item is ConsoleMessage * } * ``` */ export declare function isConsoleMessage(value: unknown): value is ConsoleMessage; /** * Validate and return a details item with proper type safety. * * Replaces unsafe `as unknown as` assertions with runtime validation. * Throws CommandError if validation fails. * * Uses function overloads to return the correct type based on the `type` parameter, * enabling proper type narrowing in discriminated unions. * * @param item - Unknown item from IPC response * @param type - Expected type ('network' or 'console') * @returns Validated NetworkRequest or ConsoleMessage based on type parameter * @throws CommandError if item fails validation * * @example * ```typescript * const networkItem = validateDetailsItem(response.data.item, 'network'); * // networkItem is typed as NetworkRequest * * const consoleItem = validateDetailsItem(response.data.item, 'console'); * // consoleItem is typed as ConsoleMessage * ``` */ export declare function validateDetailsItem(item: unknown, type: 'network'): NetworkRequest; export declare function validateDetailsItem(item: unknown, type: 'console'): ConsoleMessage; //# sourceMappingURL=typeGuards.d.ts.map