@stencil/dev-server
Version:
Development server for Stencil with DOM-based HMR
54 lines (53 loc) • 1.85 kB
text/typescript
import "node:http";
import "node:https";
import { CompilerBuildResults, CompilerRequestResponse, CompilerWatcher, DevServer, DevServerConfig, DevServerConfig as DevServerConfig$1, Logger, StencilDevServerConfig } from "@stencil/core/compiler";
//#region src/server/types.d.ts
/**
* Internal dev server message protocol for communication between
* main process and browser clients.
*/
interface DevServerMessage {
startServer?: DevServerConfig$1;
closeServer?: boolean;
serverStarted?: DevServerConfig$1;
serverClosed?: boolean;
buildStart?: boolean;
buildLog?: BuildLog;
buildResults?: CompilerBuildResults;
requestBuildResults?: boolean;
error?: {
message?: string;
type?: string;
stack?: string | null;
};
isActivelyBuilding?: boolean;
compilerRequestPath?: string;
compilerRequestResults?: CompilerRequestResponse;
requestLog?: {
method: string;
url: string;
status: number;
};
}
interface BuildLog {
buildId?: number;
messages?: string[];
progress?: number;
}
type DevServerSendMessage = (msg: DevServerMessage) => void;
//#endregion
//#region src/server/server.d.ts
declare function initServerProcess(sendMsg: DevServerSendMessage): (msg: DevServerMessage) => void;
//#endregion
//#region src/server/index.d.ts
/**
* Start the Stencil development server.
*
* @param stencilDevServerConfig - Configuration for the dev server
* @param logger - Logger instance for output
* @param watcher - Optional compiler watcher for build events
* @returns Promise resolving to the DevServer instance
*/
declare function start(stencilDevServerConfig: StencilDevServerConfig, logger: Logger, watcher?: CompilerWatcher): Promise<DevServer>;
//#endregion
export { type CompilerWatcher, type DevServer, type DevServerConfig, type Logger, type StencilDevServerConfig, initServerProcess, start };