@rspack/test-tools 1.0.0-rc.1 → 1.0.0

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.
@@ -14,3 +14,4 @@ export * from "./stats-api";
14
14
  export * from "./stats-output";
15
15
  export * from "./treeshaking";
16
16
  export * from "./watch";
17
+ export * from "./new-incremental";
@@ -30,3 +30,4 @@ __exportStar(require("./stats-api"), exports);
30
30
  __exportStar(require("./stats-output"), exports);
31
31
  __exportStar(require("./treeshaking"), exports);
32
32
  __exportStar(require("./watch"), exports);
33
+ __exportStar(require("./new-incremental"), exports);
@@ -0,0 +1,3 @@
1
+ import { ECompilerType, type TCompilerOptions } from "../type";
2
+ export declare function createHotNewIncrementalCase(name: string, src: string, dist: string, target: TCompilerOptions<ECompilerType.Rspack>["target"]): void;
3
+ export declare function createWatchNewIncrementalCase(name: string, src: string, dist: string, temp: string): void;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createWatchNewIncrementalCase = exports.createHotNewIncrementalCase = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const hot_new_incremental_1 = require("../processor/hot-new-incremental");
10
+ const watch_1 = require("../processor/watch");
11
+ const runner_1 = require("../runner");
12
+ const creator_1 = require("../test/creator");
13
+ const type_1 = require("../type");
14
+ const hotCreators = new Map();
15
+ function getHotCreator(target) {
16
+ if (!hotCreators.has(target)) {
17
+ hotCreators.set(target, new creator_1.BasicCaseCreator({
18
+ clean: true,
19
+ describe: true,
20
+ target,
21
+ steps: ({ name, target }) => [
22
+ new hot_new_incremental_1.HotNewIncrementalProcessor({
23
+ name,
24
+ target: target,
25
+ compilerType: type_1.ECompilerType.Rspack,
26
+ configFiles: ["rspack.config.js", "webpack.config.js"]
27
+ })
28
+ ],
29
+ runner: runner_1.HotRunnerFactory
30
+ }));
31
+ }
32
+ return hotCreators.get(target);
33
+ }
34
+ function createHotNewIncrementalCase(name, src, dist, target) {
35
+ const creator = getHotCreator(target);
36
+ creator.create(name, src, dist);
37
+ }
38
+ exports.createHotNewIncrementalCase = createHotNewIncrementalCase;
39
+ const watchCreator = new creator_1.BasicCaseCreator({
40
+ clean: true,
41
+ runner: runner_1.WatchRunnerFactory,
42
+ description: (name, index) => {
43
+ return index === 0
44
+ ? `${name} should compile`
45
+ : "should compile the next step";
46
+ },
47
+ describe: false,
48
+ steps: ({ name, src, temp }) => {
49
+ const runs = node_fs_1.default
50
+ .readdirSync(src)
51
+ .sort()
52
+ .filter(name => {
53
+ return node_fs_1.default.statSync(node_path_1.default.join(src, name)).isDirectory();
54
+ })
55
+ .map(name => ({ name }));
56
+ return runs.map((run, index) => index === 0
57
+ ? new watch_1.WatchProcessor({
58
+ name,
59
+ stepName: run.name,
60
+ tempDir: temp,
61
+ runable: true,
62
+ compilerType: type_1.ECompilerType.Rspack,
63
+ configFiles: ["rspack.config.js", "webpack.config.js"],
64
+ experiments: {
65
+ rspackFuture: {
66
+ newIncremental: true
67
+ }
68
+ }
69
+ })
70
+ : new watch_1.WatchStepProcessor({
71
+ name,
72
+ stepName: run.name,
73
+ tempDir: temp,
74
+ runable: true,
75
+ compilerType: type_1.ECompilerType.Rspack,
76
+ configFiles: ["rspack.config.js", "webpack.config.js"]
77
+ }));
78
+ }
79
+ });
80
+ function createWatchNewIncrementalCase(name, src, dist, temp) {
81
+ watchCreator.create(name, src, dist, temp);
82
+ }
83
+ exports.createWatchNewIncrementalCase = createWatchNewIncrementalCase;
@@ -0,0 +1,11 @@
1
+ import { ECompilerType, type ITestContext, type TCompilerOptions } from "../type";
2
+ import type { IBasicProcessorOptions } from "./basic";
3
+ import { HotProcessor } from "./hot";
4
+ export interface IHotNewIncrementalProcessorOptions<T extends ECompilerType> extends Omit<IBasicProcessorOptions<T>, "runable"> {
5
+ target: TCompilerOptions<T>["target"];
6
+ }
7
+ export declare class HotNewIncrementalProcessor<T extends ECompilerType> extends HotProcessor<T> {
8
+ protected _hotOptions: IHotNewIncrementalProcessorOptions<T>;
9
+ constructor(_hotOptions: IHotNewIncrementalProcessorOptions<T>);
10
+ static defaultOptions<T extends ECompilerType>(this: HotNewIncrementalProcessor<T>, context: ITestContext): TCompilerOptions<T>;
11
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HotNewIncrementalProcessor = void 0;
4
+ const type_1 = require("../type");
5
+ const hot_1 = require("./hot");
6
+ class HotNewIncrementalProcessor extends hot_1.HotProcessor {
7
+ constructor(_hotOptions) {
8
+ super(_hotOptions);
9
+ this._hotOptions = _hotOptions;
10
+ }
11
+ static defaultOptions(context) {
12
+ const options = super.defaultOptions(context);
13
+ if (this._hotOptions.compilerType === type_1.ECompilerType.Rspack) {
14
+ const rspackOptions = options;
15
+ rspackOptions.experiments ??= {};
16
+ rspackOptions.experiments.rspackFuture ??= {};
17
+ rspackOptions.experiments.rspackFuture.newIncremental = true;
18
+ }
19
+ else {
20
+ throw new Error("HotNewIncrementalProcessor should only used for Rspack.");
21
+ }
22
+ return options;
23
+ }
24
+ }
25
+ exports.HotNewIncrementalProcessor = HotNewIncrementalProcessor;
@@ -8,6 +8,7 @@ export * from "./error";
8
8
  export * from "./hash";
9
9
  export * from "./hook";
10
10
  export * from "./hot";
11
+ export * from "./hot-new-incremental";
11
12
  export * from "./hot-step";
12
13
  export * from "./multi";
13
14
  export * from "./normal";
@@ -24,6 +24,7 @@ __exportStar(require("./error"), exports);
24
24
  __exportStar(require("./hash"), exports);
25
25
  __exportStar(require("./hook"), exports);
26
26
  __exportStar(require("./hot"), exports);
27
+ __exportStar(require("./hot-new-incremental"), exports);
27
28
  __exportStar(require("./hot-step"), exports);
28
29
  __exportStar(require("./multi"), exports);
29
30
  __exportStar(require("./normal"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rspack/test-tools",
3
- "version": "1.0.0-rc.1",
3
+ "version": "1.0.0",
4
4
  "license": "MIT",
5
5
  "description": "Test tools for rspack",
6
6
  "main": "dist/index.js",
@@ -58,50 +58,50 @@
58
58
  "devDependencies": {
59
59
  "@arco-design/web-react": "^2.56.1",
60
60
  "@monaco-editor/react": "^4.6.0",
61
- "@swc/plugin-remove-console": "^2.0.8",
62
61
  "@swc/helpers": "0.5.8",
62
+ "@swc/plugin-remove-console": "^2.0.8",
63
+ "@types/babel__generator": "7.6.8",
64
+ "@types/babel__traverse": "7.20.5",
65
+ "@types/fs-extra": "11.0.4",
63
66
  "@types/jsdom": "^21.1.7",
64
67
  "@types/react": "^18.2.48",
65
68
  "@types/react-dom": "^18.2.18",
66
69
  "@types/webpack": "5.28.5",
67
70
  "@types/webpack-sources": "3.2.3",
68
- "@types/fs-extra": "11.0.4",
69
- "@types/babel__generator": "7.6.8",
70
- "@types/babel__traverse": "7.20.5",
71
71
  "acorn": "^8.11.3",
72
- "core-js": "3.36.1",
72
+ "babel-loader": "^9.1.3",
73
+ "babel-plugin-import": "^1.13.5",
74
+ "chalk": "^4.1.0",
73
75
  "coffee-loader": "^1.0.0",
74
76
  "coffeescript": "^2.5.1",
75
77
  "copy-webpack-plugin": "5.1.2",
76
- "chalk": "^4.1.0",
77
- "babel-loader": "^9.1.3",
78
- "babel-plugin-import": "^1.13.5",
79
- "file-loader": "^6.2.0",
78
+ "core-js": "3.36.1",
80
79
  "css-loader": "^6.11.0",
80
+ "file-loader": "^6.2.0",
81
81
  "html-loader": "^5.0.0",
82
82
  "html-webpack-plugin": "^5.5.0",
83
83
  "less-loader": "^12.2.0",
84
84
  "lodash": "^4.17.21",
85
- "pug-loader": "^2.4.0",
86
- "postcss-loader": "^8.0.0",
87
- "postcss-pxtorem": "^6.0.0",
88
- "raw-loader": "^4.0.2",
89
85
  "monaco-editor": "0.47.0",
90
86
  "monaco-editor-webpack-plugin": "7.1.0",
91
87
  "normalize.css": "^8.0.0",
92
88
  "npm-run-all2": "^6.2.0",
89
+ "postcss-loader": "^8.0.0",
90
+ "postcss-pxtorem": "^6.0.0",
91
+ "pug-loader": "^2.4.0",
92
+ "raw-loader": "^4.0.2",
93
93
  "react": "^18.2.0",
94
94
  "react-dom": "^18.2.0",
95
95
  "react-refresh": "^0.14.0",
96
96
  "sass-embedded": "^1.77.8",
97
97
  "sass-loader": "^16.0.0",
98
- "style-loader": "^3.3.3",
99
98
  "source-map-loader": "^5.0.0",
99
+ "style-loader": "^3.3.3",
100
100
  "terser": "5.27.2",
101
101
  "typescript": "5.0.2",
102
102
  "wast-loader": "^1.12.1",
103
- "@rspack/cli": "1.0.0-rc.1",
104
- "@rspack/core": "1.0.0-rc.1"
103
+ "@rspack/cli": "1.0.0",
104
+ "@rspack/core": "1.0.0"
105
105
  },
106
106
  "peerDependencies": {
107
107
  "@rspack/core": ">=0.7.0"