UNPKG

@lynx-js/webpack-dev-transport

Version:

A webpack dev-server transport implementation for Lynx

50 lines 1.54 kB
/** * 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