@ordojs/cli
Version:
Command-line interface for OrdoJS framework
120 lines • 2.73 kB
TypeScript
/**
* @fileoverview OrdoJS CLI - Development Server with File Watching
*
* Main development server implementation with lifecycle management and file watching.
*/
/**
* Development server options
*/
export interface DevServerOptions {
/** Directory to serve */
dir: string;
/** Host to listen on */
host: string;
/** Port to listen on */
port: string | number;
/** Enable hot module replacement */
hmr: boolean;
/** HMR port (defaults to main port + 1) */
hmrPort?: number;
}
/**
* Server status enum
*/
export declare enum ServerStatus {
STOPPED = "stopped",
STARTING = "starting",
RUNNING = "running",
STOPPING = "stopping",
ERROR = "error",
RESTARTING = "restarting"
}
/**
* Server state interface for preserving state during restarts
*/
export interface ServerState {
/** Connected clients */
connectedClients?: string[];
/** Active file watchers */
activeWatchers?: string[];
/** Compilation cache */
compilationCache?: Record<string, unknown>;
/** Custom state data */
[key: string]: unknown;
}
/**
* OrdoJSDevServer class for managing the development server lifecycle
*/
export declare class OrdoJSDevServer {
private options;
private server;
private portManager;
private processManager;
private fileWatcher;
private hmr;
private status;
private actualPort;
private hmrPort;
private serverState;
/**
* Create a new OrdoJSDevServer instance
*
* @param options - Server options
*/
constructor(options: DevServerOptions);
/**
* Get the current server status
*/
getStatus(): ServerStatus;
/**
* Get the actual port the server is running on
*/
getPort(): number;
/**
* Get the HMR port
*/
getHMRPort(): number;
/**
* Get the current server state
*
* @returns The current server state
*/
getServerState(): ServerState;
/**
* Start the development server
*/
start(): Promise<void>;
/**
* Stop the development server
*/
stop(): Promise<void>;
/**
* Restart the development server
*/
restart(): Promise<void>;
/**
* Set up HMR system and file watching
*/
private setupHMR;
/**
* Handle file change events
*/
private handleFileChange;
/**
* Handle file watcher errors
*/
private handleFileWatcherError;
/**
* Start the HTTP server
*/
private startServer;
/**
* Stop the HTTP server
*/
private stopServer;
/**
* HTTP request handler
*/
private requestHandler;
}
//# sourceMappingURL=server-with-watcher.d.ts.map