UNPKG

@lynx-js/webpack-dev-transport

Version:

A webpack dev-server transport implementation for Lynx

50 lines (49 loc) 1.68 kB
/** * Client is the interface that {@link https://github.com/webpack/webpack-dev-server/blob/48f56d57775dc4cf78bfcf51c3761adf852b0310/client-src/socket.js#L30 | `webpack-dev-server`} uses for a websocket client. * * @public */ export interface Client { /** Register a open callback */ onOpen(callback: () => void): void; /** Register a close callback */ onClose(callback: () => void): void; /** Register a message callback */ onMessage(callback: (message: string) => void): void; } export type ClientClass = new (url: string) => Client; /** * LynxTransportClient is the client transport implementation for webpack-dev-server. * It can be used in the * {@link https://webpack.js.org/configuration/dev-server/#websockettransport | `devServer.client.webSocketTransport`} * configuration of webpack. * It should be used with `LynxTransportServer`. * * @example * ```js * // webpack.config.js * import { createRequire } from 'node:module' * import { LynxTransportServer } from '@lynx-js/webpack-dev-transport' * * const require = createRequire(import.meta.url) * export default { * devServer: { * client: { * webSocketTransport: require.resolve('@lynx-js/webpack-dev-transport/client') * }, * allowedHosts: 'all', * webSocketServer: LynxTransportServer * } * } * ``` * * @public */ export declare class LynxTransportClient implements Client { /** {@inheritdoc Client.onOpen} */ onOpen(callback: () => void): void; /** {@inheritdoc Client.onClose} */ onClose(_callback: () => void): void; /** {@inheritdoc Client.onMessage} */ onMessage(callback: (message: string) => void): void; }