@lynx-js/webpack-dev-transport
Version:
A webpack dev-server transport implementation for Lynx
50 lines (49 loc) • 1.68 kB
TypeScript
/**
* 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;
}