@rsbuild/core 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -72,8 +72,7 @@ async function init({
72
72
  }
73
73
  return await createRsbuild({
74
74
  cwd: root,
75
- rsbuildConfig: config,
76
- provider: config.provider
75
+ rsbuildConfig: config
77
76
  });
78
77
  } catch (err) {
79
78
  if (isRestart) {
@@ -84,7 +83,7 @@ async function init({
84
83
  }
85
84
  }
86
85
  function runCli() {
87
- import_commander.program.name("rsbuild").usage("<command> [options]").version("0.2.2");
86
+ import_commander.program.name("rsbuild").usage("<command> [options]").version("0.2.4");
88
87
  import_commander.program.command("dev").option("--open", "open the page in browser on startup").option(
89
88
  "--port <port>",
90
89
  "specify a port number for Rsbuild Server to listen"
@@ -1,10 +1,4 @@
1
- import { type RsbuildConfig as BaseRsbuildConfig } from '@rsbuild/shared';
2
- export type RsbuildConfig = BaseRsbuildConfig & {
3
- /**
4
- * @private only for testing
5
- */
6
- provider?: any;
7
- };
1
+ import { type RsbuildConfig } from '@rsbuild/shared';
8
2
  export type ConfigParams = {
9
3
  env: string;
10
4
  command: string;
@@ -34,7 +34,7 @@ function prepareCli() {
34
34
  if (!npm_execpath || npm_execpath.includes("npx-cli.js")) {
35
35
  console.log();
36
36
  }
37
- import_rslog.logger.greet(` ${`Rsbuild v${"0.2.2"}`}
37
+ import_rslog.logger.greet(` ${`Rsbuild v${"0.2.4"}`}
38
38
  `);
39
39
  }
40
40
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,9 +1,2 @@
1
- import { type RsbuildInstance, type RsbuildProvider, type CreateRsbuildOptions } from '@rsbuild/shared';
2
- import type { RsbuildConfig } from './types';
3
- export declare function createRsbuild(options: CreateRsbuildOptions & {
4
- provider?: ({
5
- rsbuildConfig
6
- }: {
7
- rsbuildConfig: RsbuildConfig;
8
- }) => RsbuildProvider;
9
- }): Promise<RsbuildInstance>;
1
+ import { type RsbuildInstance, type CreateRsbuildOptions } from '@rsbuild/shared';
2
+ export declare function createRsbuild(options: CreateRsbuildOptions): Promise<RsbuildInstance>;
@@ -33,15 +33,13 @@ __export(createRsbuild_exports, {
33
33
  module.exports = __toCommonJS(createRsbuild_exports);
34
34
  var import_shared = require("@rsbuild/shared");
35
35
  var import_plugins = require("./plugins");
36
- const getRspackProvider = async (rsbuildConfig) => {
36
+ const getRspackProvider = async () => {
37
37
  const { rspackProvider } = await Promise.resolve().then(() => __toESM(require("./provider")));
38
- return rspackProvider({
39
- rsbuildConfig
40
- });
38
+ return rspackProvider;
41
39
  };
42
40
  async function createRsbuild(options) {
43
41
  const { rsbuildConfig = {} } = options;
44
- const provider = options.provider ? options.provider({ rsbuildConfig }) : await getRspackProvider(rsbuildConfig);
42
+ const provider = rsbuildConfig.provider || await getRspackProvider();
45
43
  const rsbuildOptions = {
46
44
  cwd: process.cwd(),
47
45
  rsbuildConfig,
@@ -60,9 +58,9 @@ async function createRsbuild(options) {
60
58
  startDevServer,
61
59
  applyDefaultPlugins
62
60
  } = await provider({
61
+ plugins: import_plugins.plugins,
63
62
  pluginStore,
64
- rsbuildOptions,
65
- plugins: import_plugins.plugins
63
+ rsbuildOptions
66
64
  });
67
65
  (0, import_shared.debug)("add default plugins");
68
66
  await applyDefaultPlugins(pluginStore);
package/dist/loadEnv.js CHANGED
@@ -39,6 +39,7 @@ const getEnvFiles = () => {
39
39
  const { NODE_ENV } = process.env;
40
40
  return [".env", ".env.local", `.env.${NODE_ENV}`, `.env.${NODE_ENV}.local`];
41
41
  };
42
+ let lastParsed;
42
43
  async function loadEnv({
43
44
  cwd = process.cwd(),
44
45
  prefixes = ["PUBLIC_"]
@@ -50,6 +51,13 @@ async function loadEnv({
50
51
  envPaths.forEach((envPath) => {
51
52
  Object.assign(parsed, parse(import_fs.default.readFileSync(envPath)));
52
53
  });
54
+ if (lastParsed) {
55
+ Object.keys(lastParsed).forEach((key) => {
56
+ if (process.env[key] === lastParsed[key]) {
57
+ delete process.env[key];
58
+ }
59
+ });
60
+ }
53
61
  expand({ parsed });
54
62
  const publicVars = {};
55
63
  Object.keys(process.env).forEach((key) => {
@@ -58,6 +66,7 @@ async function loadEnv({
58
66
  publicVars[`process.env.${key}`] = JSON.stringify(val);
59
67
  }
60
68
  });
69
+ lastParsed = parsed;
61
70
  return {
62
71
  parsed,
63
72
  publicVars
@@ -59,7 +59,7 @@ function createContextByConfig(options, bundlerType, config = {}) {
59
59
  const context = {
60
60
  entry: config.source?.entry || getDefaultEntry(rootPath),
61
61
  targets: config.output?.targets || [],
62
- version: "0.2.2",
62
+ version: "0.2.4",
63
63
  rootPath,
64
64
  distPath,
65
65
  cachePath,
@@ -96,9 +96,10 @@ async function applyBaseCSSRule({
96
96
  rule.type("css");
97
97
  }
98
98
  if (!isServer && !isWebWorker) {
99
- const postcssLoaderOptions = (0, import_shared.getPostcssConfig)({
99
+ const postcssLoaderOptions = await (0, import_shared.getPostcssLoaderOptions)({
100
100
  browserslist,
101
- config
101
+ config,
102
+ root: context.rootPath
102
103
  });
103
104
  rule.use(CHAIN_ID.USE.POSTCSS).loader((0, import_shared.getSharedPkgCompiledPath)("postcss-loader")).options(postcssLoaderOptions).end();
104
105
  }
@@ -33,7 +33,7 @@ __export(swc_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(swc_exports);
35
35
  var import_shared = require("@rsbuild/shared");
36
- var path = __toESM(require("path"));
36
+ var import_path = __toESM(require("path"));
37
37
  const builtinSwcLoaderName = "builtin:swc-loader";
38
38
  async function getDefaultSwcConfig(config, rootPath, target) {
39
39
  return {
@@ -106,7 +106,7 @@ const pluginSwc = () => ({
106
106
  async function applyCoreJs(swcConfig, chain, polyfillMode) {
107
107
  const coreJsPath = require.resolve("core-js/package.json");
108
108
  const version = (0, import_shared.getCoreJsVersion)(coreJsPath);
109
- const coreJsDir = path.dirname(coreJsPath);
109
+ const coreJsDir = import_path.default.dirname(coreJsPath);
110
110
  swcConfig.env.coreJs = version;
111
111
  if (polyfillMode === "usage") {
112
112
  swcConfig.env.shippedProposals = true;
@@ -1,7 +1,2 @@
1
1
  import { type RsbuildProvider } from '@rsbuild/shared';
2
- import type { RsbuildConfig } from '../types';
3
- export declare function rspackProvider({
4
- rsbuildConfig: originalRsbuildConfig
5
- }: {
6
- rsbuildConfig: RsbuildConfig;
7
- }): RsbuildProvider;
2
+ export declare const rspackProvider: RsbuildProvider;
@@ -36,90 +36,86 @@ var import_createContext = require("./core/createContext");
36
36
  var import_initConfigs = require("./core/initConfigs");
37
37
  var import_initPlugins = require("./core/initPlugins");
38
38
  var import_shared2 = require("./shared");
39
- function rspackProvider({
40
- rsbuildConfig: originalRsbuildConfig
41
- }) {
42
- const rsbuildConfig = (0, import_shared.pickRsbuildConfig)(originalRsbuildConfig);
43
- return async ({ pluginStore, rsbuildOptions, plugins }) => {
44
- const context = await (0, import_createContext.createContext)(
45
- rsbuildOptions,
46
- rsbuildConfig,
47
- "rspack"
48
- );
49
- const pluginAPI = (0, import_initPlugins.getPluginAPI)({ context, pluginStore });
50
- context.pluginAPI = pluginAPI;
51
- return {
52
- bundler: "rspack",
53
- pluginAPI,
54
- publicContext: (0, import_createContext.createPublicContext)(context),
55
- async applyDefaultPlugins() {
56
- pluginStore.addPlugins(await (0, import_shared2.applyDefaultPlugins)(plugins));
57
- },
58
- async createCompiler() {
59
- const { createCompiler } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
60
- const { rspackConfigs } = await (0, import_initConfigs.initConfigs)({
61
- context,
62
- pluginStore,
63
- rsbuildOptions
64
- });
65
- return createCompiler({
66
- context,
67
- rspackConfigs
68
- });
69
- },
70
- async getServerAPIs(options) {
71
- const { getServerAPIs } = await Promise.resolve().then(() => __toESM(require("../server/devServer")));
72
- const { createDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
73
- await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
74
- return getServerAPIs(
75
- { context, pluginStore, rsbuildOptions },
76
- createDevMiddleware,
77
- options
78
- );
79
- },
80
- async startDevServer(options) {
81
- const { startDevServer } = await Promise.resolve().then(() => __toESM(require("../server/devServer")));
82
- const { createDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
83
- await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
84
- return startDevServer(
85
- { context, pluginStore, rsbuildOptions },
86
- createDevMiddleware,
87
- options
88
- );
89
- },
90
- async preview(options) {
91
- const { startProdServer } = await Promise.resolve().then(() => __toESM(require("../server/prodServer")));
92
- await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
93
- return startProdServer(context, context.config, options);
94
- },
95
- async build(options) {
96
- const { build: buildImpl, rspackBuild } = await Promise.resolve().then(() => __toESM(require("./core/build")));
97
- return buildImpl(
98
- { context, pluginStore, rsbuildOptions },
99
- options,
100
- rspackBuild
101
- );
102
- },
103
- async initConfigs() {
104
- const { rspackConfigs } = await (0, import_initConfigs.initConfigs)({
105
- context,
106
- pluginStore,
107
- rsbuildOptions
108
- });
109
- return rspackConfigs;
110
- },
111
- async inspectConfig(inspectOptions) {
112
- const { inspectConfig } = await Promise.resolve().then(() => __toESM(require("./core/inspectConfig")));
113
- return inspectConfig({
114
- context,
115
- pluginStore,
116
- rsbuildOptions,
117
- inspectOptions
118
- });
119
- }
120
- };
39
+ const rspackProvider = async ({
40
+ pluginStore,
41
+ rsbuildOptions,
42
+ plugins
43
+ }) => {
44
+ const rsbuildConfig = (0, import_shared.pickRsbuildConfig)(rsbuildOptions.rsbuildConfig);
45
+ const context = await (0, import_createContext.createContext)(rsbuildOptions, rsbuildConfig, "rspack");
46
+ const pluginAPI = (0, import_initPlugins.getPluginAPI)({ context, pluginStore });
47
+ context.pluginAPI = pluginAPI;
48
+ return {
49
+ bundler: "rspack",
50
+ pluginAPI,
51
+ publicContext: (0, import_createContext.createPublicContext)(context),
52
+ async applyDefaultPlugins() {
53
+ pluginStore.addPlugins(await (0, import_shared2.applyDefaultPlugins)(plugins));
54
+ },
55
+ async createCompiler() {
56
+ const { createCompiler } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
57
+ const { rspackConfigs } = await (0, import_initConfigs.initConfigs)({
58
+ context,
59
+ pluginStore,
60
+ rsbuildOptions
61
+ });
62
+ return createCompiler({
63
+ context,
64
+ rspackConfigs
65
+ });
66
+ },
67
+ async getServerAPIs(options) {
68
+ const { getServerAPIs } = await Promise.resolve().then(() => __toESM(require("../server/devServer")));
69
+ const { createDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
70
+ await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
71
+ return getServerAPIs(
72
+ { context, pluginStore, rsbuildOptions },
73
+ createDevMiddleware,
74
+ options
75
+ );
76
+ },
77
+ async startDevServer(options) {
78
+ const { startDevServer } = await Promise.resolve().then(() => __toESM(require("../server/devServer")));
79
+ const { createDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
80
+ await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
81
+ return startDevServer(
82
+ { context, pluginStore, rsbuildOptions },
83
+ createDevMiddleware,
84
+ options
85
+ );
86
+ },
87
+ async preview(options) {
88
+ const { startProdServer } = await Promise.resolve().then(() => __toESM(require("../server/prodServer")));
89
+ await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
90
+ return startProdServer(context, context.config, options);
91
+ },
92
+ async build(options) {
93
+ const { build: buildImpl, rspackBuild } = await Promise.resolve().then(() => __toESM(require("./core/build")));
94
+ return buildImpl(
95
+ { context, pluginStore, rsbuildOptions },
96
+ options,
97
+ rspackBuild
98
+ );
99
+ },
100
+ async initConfigs() {
101
+ const { rspackConfigs } = await (0, import_initConfigs.initConfigs)({
102
+ context,
103
+ pluginStore,
104
+ rsbuildOptions
105
+ });
106
+ return rspackConfigs;
107
+ },
108
+ async inspectConfig(inspectOptions) {
109
+ const { inspectConfig } = await Promise.resolve().then(() => __toESM(require("./core/inspectConfig")));
110
+ return inspectConfig({
111
+ context,
112
+ pluginStore,
113
+ rsbuildOptions,
114
+ inspectOptions
115
+ });
116
+ }
121
117
  };
122
- }
118
+ };
123
119
  // Annotate the CommonJS export names for ESM import in node:
124
120
  0 && (module.exports = {
125
121
  rspackProvider
@@ -2,16 +2,21 @@
2
2
  /// <reference types="node" />
3
3
  import type { IncomingMessage } from 'http';
4
4
  import type { Socket } from 'net';
5
- import type { RsbuildDevMiddlewareOptions, DevMiddlewareAPI, DevMiddleware as CustomDevMiddleware } from '@rsbuild/shared';
5
+ import type { DevMiddlewaresConfig, DevMiddlewareAPI, DevMiddleware as CustomDevMiddleware } from '@rsbuild/shared';
6
6
  type Options = {
7
7
  publicPaths: string[];
8
- dev: RsbuildDevMiddlewareOptions['dev'];
9
- devMiddleware?: CustomDevMiddleware;
8
+ dev: DevMiddlewaresConfig;
9
+ devMiddleware: CustomDevMiddleware;
10
10
  };
11
- export default class DevMiddleware {
12
- middleware?: DevMiddlewareAPI;
11
+ /**
12
+ * Setup compiler-related logic:
13
+ * 1. setup webpack-dev-middleware
14
+ * 2. establish webSocket connect
15
+ */
16
+ export declare class CompilerDevMiddleware {
17
+ middleware: DevMiddlewareAPI;
13
18
  private devOptions;
14
- private devMiddleware?;
19
+ private devMiddleware;
15
20
  private publicPaths;
16
21
  private socketServer;
17
22
  constructor({
@@ -26,12 +26,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var compiler_dev_middleware_exports = {};
30
- __export(compiler_dev_middleware_exports, {
31
- default: () => DevMiddleware
29
+ var compilerDevMiddleware_exports = {};
30
+ __export(compilerDevMiddleware_exports, {
31
+ CompilerDevMiddleware: () => CompilerDevMiddleware
32
32
  });
33
- module.exports = __toCommonJS(compiler_dev_middleware_exports);
34
- var import_socketServer = __toESM(require("./socketServer"));
33
+ module.exports = __toCommonJS(compilerDevMiddleware_exports);
34
+ var import_socketServer = require("./socketServer");
35
35
  const noop = () => {
36
36
  };
37
37
  function getHMRClientPath(client) {
@@ -42,20 +42,18 @@ function getHMRClientPath(client) {
42
42
  const clientEntry = `${require.resolve("@rsbuild/core/client/hmr")}?${host}${path}${port}${protocol}`;
43
43
  return clientEntry;
44
44
  }
45
- class DevMiddleware {
45
+ class CompilerDevMiddleware {
46
46
  constructor({ dev, devMiddleware, publicPaths }) {
47
47
  this.devOptions = dev;
48
48
  this.publicPaths = publicPaths;
49
- this.socketServer = new import_socketServer.default(dev);
49
+ this.socketServer = new import_socketServer.SocketServer(dev);
50
50
  this.devMiddleware = devMiddleware;
51
51
  }
52
52
  init() {
53
- if (this.devMiddleware) {
54
- this.middleware = this.setupDevMiddleware(
55
- this.devMiddleware,
56
- this.publicPaths
57
- );
58
- }
53
+ this.middleware = this.setupDevMiddleware(
54
+ this.devMiddleware,
55
+ this.publicPaths
56
+ );
59
57
  this.socketServer.prepare();
60
58
  }
61
59
  upgrade(req, sock, head) {
@@ -89,7 +87,7 @@ class DevMiddleware {
89
87
  writeToDisk: devOptions.writeToDisk
90
88
  });
91
89
  const warp = async (req, res, next) => {
92
- const url = req.url;
90
+ const { url } = req;
93
91
  const assetPrefix = url && publicPaths.find((prefix) => url.startsWith(prefix));
94
92
  if (assetPrefix && assetPrefix !== "/") {
95
93
  req.url = url.slice(assetPrefix.length - 1);
@@ -105,3 +103,7 @@ class DevMiddleware {
105
103
  return warp;
106
104
  }
107
105
  }
106
+ // Annotate the CommonJS export names for ESM import in node:
107
+ 0 && (module.exports = {
108
+ CompilerDevMiddleware
109
+ });
@@ -36,7 +36,7 @@ var import_shared = require("@rsbuild/shared");
36
36
  var import_connect = __toESM(require("@rsbuild/shared/connect"));
37
37
  var import_restart = require("./restart");
38
38
  var import_httpServer = require("./httpServer");
39
- var import_devMiddlewares = require("./devMiddlewares");
39
+ var import_getDevMiddlewares = require("./getDevMiddlewares");
40
40
  var import_middlewares = require("./middlewares");
41
41
  async function getServerAPIs(options, createDevMiddleware, {
42
42
  compiler: customCompiler,
@@ -60,11 +60,6 @@ async function getServerAPIs(options, createDevMiddleware, {
60
60
  port,
61
61
  https
62
62
  };
63
- const { devMiddleware, compiler } = await createDevMiddleware(
64
- options,
65
- customCompiler
66
- );
67
- const publicPaths = compiler.compilers ? compiler.compilers.map(import_shared.getPublicPathFromCompiler) : [(0, import_shared.getPublicPathFromCompiler)(compiler)];
68
63
  return {
69
64
  config: { devServerConfig, port, host, https, defaultRoutes },
70
65
  beforeStart: async () => {
@@ -76,18 +71,42 @@ async function getServerAPIs(options, createDevMiddleware, {
76
71
  routes: params.routes || defaultRoutes
77
72
  });
78
73
  },
79
- getMiddlewares: async (overrides = {}) => await (0, import_devMiddlewares.getMiddlewares)({
80
- pwd: options.context.rootPath,
81
- devMiddleware,
82
- dev: {
83
- ...devServerConfig,
84
- ...overrides
85
- },
86
- output: {
87
- distPath: rsbuildConfig.output?.distPath?.root || import_shared.ROOT_DIST_DIR,
88
- publicPaths
89
- }
90
- })
74
+ startCompile: async () => {
75
+ const { devMiddleware, compiler } = await createDevMiddleware(
76
+ options,
77
+ customCompiler
78
+ );
79
+ const { CompilerDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./compilerDevMiddleware")));
80
+ const publicPaths = compiler.compilers ? compiler.compilers.map(
81
+ import_shared.getPublicPathFromCompiler
82
+ ) : [(0, import_shared.getPublicPathFromCompiler)(compiler)];
83
+ const compilerDevMiddleware = new CompilerDevMiddleware({
84
+ dev: devServerConfig,
85
+ publicPaths,
86
+ devMiddleware
87
+ });
88
+ compilerDevMiddleware.init();
89
+ return {
90
+ middleware: compilerDevMiddleware.middleware,
91
+ sockWrite: (...args) => compilerDevMiddleware.sockWrite(...args),
92
+ onUpgrade: (...args) => compilerDevMiddleware.upgrade(...args),
93
+ close: () => compilerDevMiddleware?.close()
94
+ };
95
+ },
96
+ getMiddlewares: async (params = {}) => {
97
+ const { compileMiddlewareAPI, overrides = {} } = params;
98
+ return (0, import_getDevMiddlewares.getMiddlewares)({
99
+ pwd: options.context.rootPath,
100
+ compileMiddlewareAPI,
101
+ dev: {
102
+ ...devServerConfig,
103
+ ...overrides
104
+ },
105
+ output: {
106
+ distPath: rsbuildConfig.output?.distPath?.root || import_shared.ROOT_DIST_DIR
107
+ }
108
+ });
109
+ }
91
110
  };
92
111
  }
93
112
  async function startDevServer(options, createDevMiddleware, {
@@ -125,7 +144,10 @@ async function startDevServer(options, createDevMiddleware, {
125
144
  }
126
145
  (0, import_shared.printServerURLs)(urls, defaultRoutes, logger);
127
146
  }
128
- const devMiddlewares = await serverAPIs.getMiddlewares();
147
+ const compileMiddlewareAPI = await serverAPIs.startCompile();
148
+ const devMiddlewares = await serverAPIs.getMiddlewares({
149
+ compileMiddlewareAPI
150
+ });
129
151
  devMiddlewares.middlewares.forEach((m) => middlewares.use(m));
130
152
  middlewares.use(import_middlewares.notFoundMiddleware);
131
153
  (0, import_shared.debug)("listen dev server");
@@ -0,0 +1,14 @@
1
+ import type { UpgradeEvent, RequestHandler, DevMiddlewaresConfig, CompileMiddlewareAPI } from '@rsbuild/shared';
2
+ export type RsbuildDevMiddlewareOptions = {
3
+ pwd: string;
4
+ dev: DevMiddlewaresConfig;
5
+ compileMiddlewareAPI?: CompileMiddlewareAPI;
6
+ output: {
7
+ distPath: string;
8
+ };
9
+ };
10
+ export declare const getMiddlewares: (options: RsbuildDevMiddlewareOptions) => Promise<{
11
+ close: () => Promise<void>;
12
+ onUpgrade: UpgradeEvent;
13
+ middlewares: RequestHandler[];
14
+ }>;
@@ -26,19 +26,18 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var devMiddlewares_exports = {};
30
- __export(devMiddlewares_exports, {
29
+ var getDevMiddlewares_exports = {};
30
+ __export(getDevMiddlewares_exports, {
31
31
  getMiddlewares: () => getMiddlewares
32
32
  });
33
- module.exports = __toCommonJS(devMiddlewares_exports);
33
+ module.exports = __toCommonJS(getDevMiddlewares_exports);
34
34
  var import_url = __toESM(require("url"));
35
- var import_compiler_dev_middleware = __toESM(require("./compiler-dev-middleware"));
36
35
  var import_middlewares = require("./middlewares");
37
36
  var import_path = require("path");
38
- const applySetupMiddlewares = (dev, devMiddleware) => {
37
+ const applySetupMiddlewares = (dev, compileMiddlewareAPI) => {
39
38
  const setupMiddlewares = dev.setupMiddlewares || [];
40
39
  const serverOptions = {
41
- sockWrite: (type, data) => devMiddleware.sockWrite(type, data)
40
+ sockWrite: (type, data) => compileMiddlewareAPI?.sockWrite(type, data)
42
41
  };
43
42
  const before = [];
44
43
  const after = [];
@@ -56,7 +55,7 @@ const applySetupMiddlewares = (dev, devMiddleware) => {
56
55
  const applyDefaultMiddlewares = async ({
57
56
  middlewares,
58
57
  dev,
59
- devMiddleware,
58
+ compileMiddlewareAPI,
60
59
  output,
61
60
  pwd
62
61
  }) => {
@@ -94,9 +93,12 @@ const applyDefaultMiddlewares = async ({
94
93
  middlewares.push(middleware);
95
94
  });
96
95
  }
97
- devMiddleware.init();
98
- devMiddleware.middleware && middlewares.push(devMiddleware.middleware);
99
- upgradeEvents.push(devMiddleware.upgrade.bind(devMiddleware));
96
+ if (compileMiddlewareAPI) {
97
+ middlewares.push(compileMiddlewareAPI.middleware);
98
+ upgradeEvents.push(
99
+ compileMiddlewareAPI.onUpgrade.bind(compileMiddlewareAPI)
100
+ );
101
+ }
100
102
  if (dev.publicDir && dev.publicDir.name) {
101
103
  const { default: sirv } = await Promise.resolve().then(() => __toESM(require("../../compiled/sirv")));
102
104
  const { name } = dev.publicDir;
@@ -108,10 +110,10 @@ const applyDefaultMiddlewares = async ({
108
110
  middlewares.push(assetMiddleware);
109
111
  }
110
112
  const { distPath } = output;
111
- middlewares.push(
113
+ compileMiddlewareAPI && middlewares.push(
112
114
  (0, import_middlewares.getHtmlFallbackMiddleware)({
113
115
  distPath: (0, import_path.isAbsolute)(distPath) ? distPath : (0, import_path.join)(pwd, distPath),
114
- callback: devMiddleware.middleware,
116
+ callback: compileMiddlewareAPI.middleware,
115
117
  htmlFallback: dev.htmlFallback
116
118
  })
117
119
  );
@@ -121,7 +123,7 @@ const applyDefaultMiddlewares = async ({
121
123
  dev.historyApiFallback === true ? {} : dev.historyApiFallback
122
124
  );
123
125
  middlewares.push(historyApiFallbackMiddleware);
124
- devMiddleware.middleware && middlewares.push(devMiddleware.middleware);
126
+ compileMiddlewareAPI?.middleware && middlewares.push(compileMiddlewareAPI.middleware);
125
127
  }
126
128
  middlewares.push(import_middlewares.faviconFallbackMiddleware);
127
129
  return {
@@ -132,24 +134,23 @@ const applyDefaultMiddlewares = async ({
132
134
  };
133
135
  const getMiddlewares = async (options) => {
134
136
  const middlewares = [];
135
- const devMiddleware = new import_compiler_dev_middleware.default({
136
- dev: options.dev,
137
- publicPaths: options.output.publicPaths,
138
- devMiddleware: options.devMiddleware
139
- });
140
- const { before, after } = applySetupMiddlewares(options.dev, devMiddleware);
137
+ const { compileMiddlewareAPI } = options;
138
+ const { before, after } = applySetupMiddlewares(
139
+ options.dev,
140
+ compileMiddlewareAPI
141
+ );
141
142
  before.forEach((fn) => middlewares.push(fn));
142
143
  const { onUpgrade } = await applyDefaultMiddlewares({
143
144
  middlewares,
144
145
  dev: options.dev,
145
- devMiddleware,
146
+ compileMiddlewareAPI,
146
147
  output: options.output,
147
148
  pwd: options.pwd
148
149
  });
149
150
  after.forEach((fn) => middlewares.push(fn));
150
151
  return {
151
152
  close: async () => {
152
- devMiddleware.close();
153
+ compileMiddlewareAPI?.close();
153
154
  },
154
155
  onUpgrade,
155
156
  middlewares
@@ -32,15 +32,12 @@ __export(httpServer_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(httpServer_exports);
34
34
  const createHttpServer = async (options) => {
35
- let app;
36
35
  if (options.https) {
37
- const { createServer } = await Promise.resolve().then(() => __toESM(require("https")));
38
- app = createServer(options.https, options.middlewares);
39
- } else {
40
- const { createServer } = await Promise.resolve().then(() => __toESM(require("http")));
41
- app = createServer(options.middlewares);
36
+ const { createServer: createServer2 } = await Promise.resolve().then(() => __toESM(require("https")));
37
+ return createServer2(options.https, options.middlewares);
42
38
  }
43
- return app;
39
+ const { createServer } = await Promise.resolve().then(() => __toESM(require("http")));
40
+ return createServer(options.middlewares);
44
41
  };
45
42
  // Annotate the CommonJS export names for ESM import in node:
46
43
  0 && (module.exports = {
@@ -2,15 +2,15 @@
2
2
  /// <reference types="node" />
3
3
  import type { IncomingMessage } from 'http';
4
4
  import type { Socket } from 'net';
5
- import ws from '../../../compiled/ws';
6
- import { type Stats, type RsbuildDevMiddlewareOptions } from '@rsbuild/shared';
7
- export default class SocketServer {
5
+ import ws from '../../compiled/ws';
6
+ import { type Stats, type DevMiddlewaresConfig } from '@rsbuild/shared';
7
+ export declare class SocketServer {
8
8
  private wsServer;
9
9
  private readonly sockets;
10
10
  private readonly options;
11
11
  private stats?;
12
12
  private timer;
13
- constructor(options: RsbuildDevMiddlewareOptions['dev']);
13
+ constructor(options: DevMiddlewaresConfig);
14
14
  upgrade(req: IncomingMessage, sock: Socket, head: any): void;
15
15
  prepare(): void;
16
16
  updateStats(stats: Stats): void;
@@ -28,10 +28,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var socketServer_exports = {};
30
30
  __export(socketServer_exports, {
31
- default: () => SocketServer
31
+ SocketServer: () => SocketServer
32
32
  });
33
33
  module.exports = __toCommonJS(socketServer_exports);
34
- var import_ws = __toESM(require("../../../compiled/ws"));
34
+ var import_ws = __toESM(require("../../compiled/ws"));
35
35
  var import_shared = require("@rsbuild/shared");
36
36
  class SocketServer {
37
37
  constructor(options) {
@@ -146,11 +146,11 @@ class SocketServer {
146
146
  this.sockWrite("hash", stats.hash);
147
147
  if (stats.errors && stats.errors.length > 0) {
148
148
  return this.sockWrite("errors", stats.errors);
149
- } else if (stats.warnings && stats.warnings.length > 0) {
149
+ }
150
+ if (stats.warnings && stats.warnings.length > 0) {
150
151
  return this.sockWrite("warnings", stats.warnings);
151
- } else {
152
- return this.sockWrite("ok");
153
152
  }
153
+ return this.sockWrite("ok");
154
154
  }
155
155
  // send message to connecting socket
156
156
  send(connection, message) {
@@ -160,3 +160,7 @@ class SocketServer {
160
160
  connection.send(message);
161
161
  }
162
162
  }
163
+ // Annotate the CommonJS export names for ESM import in node:
164
+ 0 && (module.exports = {
165
+ SocketServer
166
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsbuild/core",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Unleash the power of Rspack with the out-of-the-box build tool.",
5
5
  "homepage": "https://rsbuild.dev",
6
6
  "bugs": {
@@ -56,11 +56,11 @@
56
56
  "types.d.ts"
57
57
  ],
58
58
  "dependencies": {
59
- "@rspack/core": "0.4.2",
59
+ "@rspack/core": "0.4.3",
60
60
  "core-js": "~3.32.2",
61
61
  "html-webpack-plugin": "npm:html-rspack-plugin@5.5.7",
62
62
  "postcss": "8.4.31",
63
- "@rsbuild/shared": "0.2.2"
63
+ "@rsbuild/shared": "0.2.4"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/node": "16.x",
@@ -1,6 +0,0 @@
1
- import { RequestHandler, RsbuildDevMiddlewareOptions, UpgradeEvent } from '@rsbuild/shared';
2
- export declare const getMiddlewares: (options: RsbuildDevMiddlewareOptions) => Promise<{
3
- close: () => Promise<void>;
4
- onUpgrade: UpgradeEvent;
5
- middlewares: RequestHandler[];
6
- }>;