@lynx-js/webpack-dev-transport
Version:
A webpack dev-server transport implementation for Lynx
50 lines • 1.54 kB
JavaScript
/**
* 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 class LynxTransportClient {
/** @internal */
static EventType = 'message';
/** {@inheritdoc Client.onOpen} */
onOpen(callback) {
callback();
}
/** {@inheritdoc Client.onClose} */
onClose(_callback) {
// webpack-dev-server will retry in the `callback`
// but `onOpen` in Lynx will never fail.
}
/** {@inheritdoc Client.onMessage} */
onMessage(callback) {
lynx.getDevtool().addEventListener(LynxTransportClient.EventType, (event) => {
const CDP = JSON.parse(event.data.message);
if (CDP.method === LynxTransportClient.EventType) {
callback(CDP.params.data);
}
});
}
}
//# sourceMappingURL=transport.js.map