// @ts-nocheck import type { Compiler } from 'webpack' import { launchEditorMiddleware } from './middlewares' /** * [webpack service side] * * add launch editor middleware in webpack devServer.before method * * https://webpack.js.org/configuration/dev-server/#devserverbefore * https://webpack.js.org/contribute/writing-a-plugin */ export class ReactInspectorPlugin { public apply(compiler: Compiler) { if (!compiler.options.devServer) { compiler.options.devServer = {} } const { devServer } = compiler.options /** * for webpack@^5 + webpack-dev-server@^4.7 */ const originSetup = devServer.setupMiddlewares devServer.setupMiddlewares = (middlewares, devServer) => { const result = originSetup ? originSetup(middlewares, devServer) : middlewares result.unshift(launchEditorMiddleware) return result } /** * for webpack@^4 + webpack-dev-server@^3 */ const originBefore = devServer.before devServer.before = (app, server, compiler) => { app.use(launchEditorMiddleware) originBefore?.(app, server, compiler) } } }