Skip to content

Commit

Permalink
feat: add rsdoctor native plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
LingyuCoder committed Jan 9, 2025
1 parent 0952f55 commit 8bb0d08
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 8 deletions.
67 changes: 60 additions & 7 deletions packages/rspack/src/Compiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ import {
import {
HtmlRspackPlugin,
JavascriptModulesPlugin,
JsLoaderRspackPlugin
JsLoaderRspackPlugin,
RsdoctorRspackPlugin
} from "./builtin-plugin";

import { Chunk } from "./Chunk";
Expand Down Expand Up @@ -769,7 +770,7 @@ class Compiler {
this.#compilation = undefined;
// ensure thisCompilation must call
this.hooks.thisCompilation.intercept({
call: () => {}
call: () => { }
});
}

Expand Down Expand Up @@ -1445,8 +1446,8 @@ class Compiler {
) {
const data = bindingData
? ContextModuleFactoryBeforeResolveData.__from_binding(
bindingData
)
bindingData
)
: false;
const result = await queried.promise(data);
return result
Expand All @@ -1472,8 +1473,8 @@ class Compiler {
) {
const data = bindingData
? ContextModuleFactoryAfterResolveData.__from_binding(
bindingData
)
bindingData
)
: false;
const result = await queried.promise(data);
return result
Expand Down Expand Up @@ -1626,7 +1627,59 @@ class Compiler {
});
};
}
)
),
registerRsdoctorPluginModuleGraphTaps: this.#createHookRegisterTaps(
binding.RegisterJsTapKind.RsdoctorPluginModuleGraph,
function () {
return RsdoctorRspackPlugin.getCompilationHooks(
that.deref()!.#compilation!
).moduleGraph;
},
function (queried) {
return async function (data: binding.JsRsdoctorModuleGraph) {
return await queried.promise(data);
};
}
),
registerRsdoctorPluginChunkGraphTaps: this.#createHookRegisterTaps(
binding.RegisterJsTapKind.RsdoctorPluginChunkGraph,
function () {
return RsdoctorRspackPlugin.getCompilationHooks(
that.deref()!.#compilation!
).chunkGraph;
},
function (queried) {
return async function (data: binding.JsRsdoctorChunkGraph) {
return await queried.promise(data);
};
}
),
registerRsdoctorPluginModuleSourcesTaps: this.#createHookRegisterTaps(
binding.RegisterJsTapKind.RsdoctorPluginChunkGraph,
function () {
return RsdoctorRspackPlugin.getCompilationHooks(
that.deref()!.#compilation!
).moduleSources;
},
function (queried) {
return async function (data: binding.JsRsdoctorModuleSource[]) {
return await queried.promise(data);
};
}
),
registerRsdoctorPluginAssetsTaps: this.#createHookRegisterTaps(
binding.RegisterJsTapKind.RsdoctorPluginAssets,
function () {
return RsdoctorRspackPlugin.getCompilationHooks(
that.deref()!.#compilation!
).assets;
},
function (queried) {
return async function (data: binding.JsRsdoctorAsset[]) {
return await queried.promise(data);
};
}
),
};

this.#instance = new instanceBinding.Rspack(
Expand Down
5 changes: 4 additions & 1 deletion packages/rspack/src/exports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ import { LimitChunkCountPlugin } from "./builtin-plugin";
import { RuntimeChunkPlugin } from "./builtin-plugin";
import { SplitChunksPlugin } from "./builtin-plugin";
import { RemoveDuplicateModulesPlugin } from "./builtin-plugin";
import { RsdoctorRspackPlugin } from "./builtin-plugin";

interface Optimize {
LimitChunkCountPlugin: typeof LimitChunkCountPlugin;
Expand Down Expand Up @@ -297,12 +298,14 @@ interface Experiments {
cleanup: typeof cleanupGlobalTrace;
};
RemoveDuplicateModulesPlugin: typeof RemoveDuplicateModulesPlugin;
RsdoctorRspackPlugin: typeof RsdoctorRspackPlugin,
}

export const experiments: Experiments = {
globalTrace: {
register: registerGlobalTrace,
cleanup: cleanupGlobalTrace
},
RemoveDuplicateModulesPlugin
RemoveDuplicateModulesPlugin,
RsdoctorRspackPlugin
};

0 comments on commit 8bb0d08

Please sign in to comment.