@rsbuild/core 0.7.0-beta.5 → 0.7.0-beta.6

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.
@@ -1,8 +1,34 @@
1
- import { type CreateDevMiddlewareReturns, type RspackCompiler, type RspackConfig, type RspackMultiCompiler } from '@rsbuild/shared';
2
- import type { InternalContext } from '../types';
1
+ import { type Rspack, type RspackConfig } from '@rsbuild/shared';
2
+ import type { DevMiddlewareAPI } from '../server/devMiddleware';
3
+ import type { DevConfig, InternalContext } from '../types';
3
4
  import { type InitConfigsOptions } from './initConfigs';
4
5
  export declare function createCompiler({ context, rspackConfigs, }: {
5
6
  context: InternalContext;
6
7
  rspackConfigs: RspackConfig[];
7
- }): Promise<RspackCompiler | RspackMultiCompiler>;
8
- export declare function createDevMiddleware(options: InitConfigsOptions, customCompiler?: RspackCompiler | RspackMultiCompiler): Promise<CreateDevMiddlewareReturns>;
8
+ }): Promise<Rspack.Compiler | Rspack.MultiCompiler>;
9
+ export type MiddlewareCallbacks = {
10
+ onInvalid: () => void;
11
+ onDone: (stats: any) => void;
12
+ };
13
+ export type DevMiddlewareOptions = {
14
+ /** To ensure HMR works, the devMiddleware need inject the hmr client path into page when HMR enable. */
15
+ clientPaths?: string[];
16
+ clientConfig: DevConfig['client'];
17
+ publicPath?: string;
18
+ /** When liveReload is disabled, the page does not reload. */
19
+ liveReload?: boolean;
20
+ etag?: 'weak' | 'strong';
21
+ /** The options need by compiler middleware (like webpackMiddleware) */
22
+ headers?: Record<string, string | string[]>;
23
+ writeToDisk?: boolean | ((filename: string) => boolean);
24
+ stats?: boolean;
25
+ /** should trigger when compiler hook called */
26
+ callbacks: MiddlewareCallbacks;
27
+ /** whether use Server Side Render */
28
+ serverSideRender?: boolean;
29
+ };
30
+ export type CreateDevMiddlewareReturns = {
31
+ devMiddleware: (options: DevMiddlewareOptions) => DevMiddlewareAPI;
32
+ compiler: Rspack.Compiler | Rspack.MultiCompiler;
33
+ };
34
+ export declare function createDevMiddleware(options: InitConfigsOptions, customCompiler?: Rspack.Compiler | Rspack.MultiCompiler): Promise<CreateDevMiddlewareReturns>;
@@ -2,7 +2,8 @@
2
2
  /// <reference types="node" />
3
3
  import type { IncomingMessage } from 'node:http';
4
4
  import type { Socket } from 'node:net';
5
- import type { DevMiddleware as CustomDevMiddleware, DevConfig, DevMiddlewareAPI, ServerConfig } from '@rsbuild/shared';
5
+ import type { DevConfig, ServerConfig } from '@rsbuild/shared';
6
+ import type { DevMiddleware as CustomDevMiddleware, DevMiddlewareAPI } from './devMiddleware';
6
7
  type Options = {
7
8
  publicPaths: string[];
8
9
  dev: DevConfig;
@@ -1,5 +1,8 @@
1
- import { type CompilerTapFn, type DevMiddleware } from '@rsbuild/shared';
1
+ /// <reference types="node" />
2
+ import type { IncomingMessage, ServerResponse } from 'node:http';
3
+ import { type CompilerTapFn, type NextFunction } from '@rsbuild/shared';
2
4
  import type { Compiler, MultiCompiler } from '@rspack/core';
5
+ import type { DevMiddlewareOptions } from '../provider/createCompiler';
3
6
  type ServerCallbacks = {
4
7
  onInvalid: () => void;
5
8
  onDone: (stats: any) => void;
@@ -14,5 +17,16 @@ export declare const setupServerHooks: (compiler: {
14
17
  done: CompilerTapFn<ServerCallbacks['onDone']>;
15
18
  };
16
19
  }, hookCallbacks: ServerCallbacks) => void;
20
+ export type Middleware = (req: IncomingMessage, res: ServerResponse, next: NextFunction) => Promise<void>;
21
+ export type DevMiddlewareAPI = Middleware & {
22
+ close: (callback: (err: Error | null | undefined) => void) => any;
23
+ };
24
+ /**
25
+ * The rsbuild/server do nothing about compiler, the devMiddleware need do such things to ensure dev works well:
26
+ * - Call compiler.watch (normally did by webpack-dev-middleware).
27
+ * - Inject the hmr client path into page (the hmr client rsbuild/server already provide).
28
+ * - Notify server when compiler hooks are triggered.
29
+ */
30
+ export type DevMiddleware = (options: DevMiddlewareOptions) => DevMiddlewareAPI;
17
31
  export declare const getDevMiddleware: (multiCompiler: Compiler | MultiCompiler) => Promise<NonNullable<DevMiddleware>>;
18
32
  export {};
@@ -1,4 +1,5 @@
1
- import { type CreateDevMiddlewareReturns, type CreateDevServerOptions, type RsbuildDevServer, type StartDevServerOptions } from '@rsbuild/shared';
1
+ import { type CreateDevServerOptions, type RsbuildDevServer, type StartDevServerOptions } from '@rsbuild/shared';
2
+ import type { CreateDevMiddlewareReturns } from '../provider/createCompiler';
2
3
  import type { InternalContext } from '../types';
3
4
  export declare function createDevServer<Options extends {
4
5
  context: InternalContext;
@@ -1,14 +1,21 @@
1
- import type { CompileMiddlewareAPI, DevConfig, Middlewares, OutputFileSystem, ServerConfig, UpgradeEvent } from '@rsbuild/shared';
1
+ import type { DevConfig, RequestHandler, Rspack, ServerAPIs, ServerConfig, UpgradeEvent } from '@rsbuild/shared';
2
+ export type CompileMiddlewareAPI = {
3
+ middleware: RequestHandler;
4
+ sockWrite: ServerAPIs['sockWrite'];
5
+ onUpgrade: UpgradeEvent;
6
+ close: () => void;
7
+ };
2
8
  export type RsbuildDevMiddlewareOptions = {
3
9
  pwd: string;
4
10
  dev: DevConfig;
5
11
  server: ServerConfig;
6
12
  compileMiddlewareAPI?: CompileMiddlewareAPI;
7
- outputFileSystem: OutputFileSystem;
13
+ outputFileSystem: Rspack.OutputFileSystem;
8
14
  output: {
9
15
  distPath: string;
10
16
  };
11
17
  };
18
+ export type Middlewares = Array<RequestHandler | [string, RequestHandler]>;
12
19
  export declare const getMiddlewares: (options: RsbuildDevMiddlewareOptions) => Promise<{
13
20
  close: () => Promise<void>;
14
21
  onUpgrade: UpgradeEvent;
@@ -1,4 +1,4 @@
1
- import { type HtmlFallback, type RequestHandler as Middleware, type OutputFileSystem } from '@rsbuild/shared';
1
+ import { type HtmlFallback, type RequestHandler as Middleware, type Rspack } from '@rsbuild/shared';
2
2
  import type Connect from '@rsbuild/shared/connect';
3
3
  export declare const faviconFallbackMiddleware: Middleware;
4
4
  export declare const getRequestLoggerMiddleware: () => Promise<Connect.NextHandleFunction>;
@@ -7,5 +7,5 @@ export declare const getHtmlFallbackMiddleware: (params: {
7
7
  distPath: string;
8
8
  callback?: Middleware;
9
9
  htmlFallback?: HtmlFallback;
10
- outputFileSystem: OutputFileSystem;
10
+ outputFileSystem: Rspack.OutputFileSystem;
11
11
  }) => Middleware;
@@ -1,4 +1,5 @@
1
- import type { CompileMiddlewareAPI, DevConfig, ServerConfig } from '@rsbuild/shared';
1
+ import type { DevConfig, ServerConfig } from '@rsbuild/shared';
2
+ import type { CompileMiddlewareAPI } from './getDevMiddlewares';
2
3
  type WatchFilesOptions = {
3
4
  dev: DevConfig;
4
5
  server: ServerConfig;
@@ -5,6 +5,15 @@ declare module '@rspack/core' {
5
5
  __rsbuildTransformer?: Record<string, TransformHandler>;
6
6
  }
7
7
  }
8
+ export type RspackSourceMap = {
9
+ version: number;
10
+ sources: string[];
11
+ mappings: string;
12
+ file?: string;
13
+ sourceRoot?: string;
14
+ sourcesContent?: string[];
15
+ names?: string[];
16
+ };
8
17
  export type { RsbuildPlugin, RsbuildPlugins, RsbuildPluginAPI };
9
18
  /** The inner context. */
10
19
  export type InternalContext = RsbuildContext & {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsbuild/core",
3
- "version": "0.7.0-beta.5",
3
+ "version": "0.7.0-beta.6",
4
4
  "description": "The Rspack-based build tool.",
5
5
  "homepage": "https://rsbuild.dev",
6
6
  "bugs": {
@@ -46,19 +46,19 @@
46
46
  "types.d.ts"
47
47
  ],
48
48
  "dependencies": {
49
- "@rspack/core": "0.7.0-beta.0",
49
+ "@rspack/core": "0.7.0-beta.1",
50
50
  "@swc/helpers": "0.5.3",
51
51
  "core-js": "~3.36.0",
52
52
  "html-webpack-plugin": "npm:html-rspack-plugin@5.7.2",
53
53
  "postcss": "^8.4.38",
54
- "@rsbuild/shared": "0.7.0-beta.5"
54
+ "@rsbuild/shared": "0.7.0-beta.6"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/fs-extra": "^11.0.4",
58
58
  "@types/node": "18.x",
59
59
  "@types/on-finished": "2.3.4",
60
60
  "@types/ws": "^8.5.10",
61
- "commander": "^12.0.0",
61
+ "commander": "^12.1.0",
62
62
  "connect-history-api-fallback": "^2.0.0",
63
63
  "css-loader": "7.1.1",
64
64
  "dotenv": "16.4.5",