From 8454d2a53c051b1c4a4e395a299efe8b71fd0a54 Mon Sep 17 00:00:00 2001 From: LingyuCoder Date: Wed, 8 Jan 2025 18:45:55 +0800 Subject: [PATCH] feat: add rsdoctor native plugin --- crates/node_binding/binding.d.ts | 131 ++++++++++++++++++++++++++++++- 1 file changed, 130 insertions(+), 1 deletion(-) diff --git a/crates/node_binding/binding.d.ts b/crates/node_binding/binding.d.ts index 6dd61c6f44be..8c692d85894a 100644 --- a/crates/node_binding/binding.d.ts +++ b/crates/node_binding/binding.d.ts @@ -363,6 +363,7 @@ export declare enum BuiltinPluginName { LightningCssMinimizerRspackPlugin = 'LightningCssMinimizerRspackPlugin', BundlerInfoRspackPlugin = 'BundlerInfoRspackPlugin', CssExtractRspackPlugin = 'CssExtractRspackPlugin', + RsdoctorRspackPlugin = 'RsdoctorRspackPlugin', JsLoaderRspackPlugin = 'JsLoaderRspackPlugin', LazyCompilationPlugin = 'LazyCompilationPlugin' } @@ -809,6 +810,122 @@ export interface JsResourceData { fragment?: string } +export interface JsRsdoctorAsset { + ukey: number + path: string + chunks: Array +} + +export interface JsRsdoctorChunk { + ukey: number + name: string + initial: boolean + entry: boolean + assets: Array + dependencies: Array + imported: Array +} + +export interface JsRsdoctorChunkGraph { + chunks: Array + entrypoints: Array +} + +export interface JsRsdoctorDependency { + ukey: number + kind: string + request: string + module: number + dependency: number +} + +export interface JsRsdoctorEntrypoint { + ukey: number + name: string + chunks: Array +} + +export interface JsRsdoctorExportInfo { + ukey: number + name: string + from?: number + variable?: number + identifier?: JsRsdoctorStatement + sideEffects: Array +} + +export interface JsRsdoctorModule { + ukey: number + identifier: string + path: string + isEntry: boolean + kind: string + layer?: string + dependencies: Array + imported: Array + modules: Array + chunks: Array +} + +export interface JsRsdoctorModuleGraph { + modules: Array + dependencies: Array +} + +export interface JsRsdoctorModuleGraphModule { + ukey: number + module: number + exports: Array + sideEffects: Array + variables: Array + dynamic: boolean +} + +export interface JsRsdoctorModuleSource { + sourceSize: number + transformSize: number + source?: string + sourceMap?: string +} + +export interface JsRsdoctorSideEffect { + ukey: number + name: string + originName?: string + module: number + identifier: JsRsdoctorStatement + isNameSpace: boolean + fromDependency?: number + exports: Array + variable?: number +} + +export interface JsRsdoctorSourcePosition { + line?: number + column?: number + index?: number +} + +export interface JsRsdoctorSourceRange { + start: JsRsdoctorSourcePosition + end?: JsRsdoctorSourcePosition +} + +export interface JsRsdoctorStatement { + module: number + sourcePosition?: JsRsdoctorSourceRange + transformedPosition: JsRsdoctorSourceRange +} + +export interface JsRsdoctorVariable { + ukey: number + name: string + module: number + usedInfo: string + identififer: JsRsdoctorStatement + exported?: number +} + export interface JsRspackDiagnostic { severity: JsRspackSeverity error: JsRspackError @@ -1917,6 +2034,10 @@ export interface RawResolveTsconfigOptions { references?: Array } +export interface RawRsdoctorPluginOptions { + +} + export interface RawRspackFuture { } @@ -2086,7 +2207,11 @@ export declare enum RegisterJsTapKind { HtmlPluginAlterAssetTagGroups = 37, HtmlPluginAfterTemplateExecution = 38, HtmlPluginBeforeEmit = 39, - HtmlPluginAfterEmit = 40 + HtmlPluginAfterEmit = 40, + RsdoctorPluginModuleGraph = 41, + RsdoctorPluginChunkGraph = 42, + RsdoctorPluginModuleSources = 43, + RsdoctorPluginAssets = 44 } export interface RegisterJsTaps { @@ -2131,6 +2256,10 @@ export interface RegisterJsTaps { registerHtmlPluginAfterTemplateExecutionTaps: (stages: Array) => Array<{ function: ((arg: JsAfterTemplateExecutionData) => JsAfterTemplateExecutionData); stage: number; }> registerHtmlPluginBeforeEmitTaps: (stages: Array) => Array<{ function: ((arg: JsBeforeEmitData) => JsBeforeEmitData); stage: number; }> registerHtmlPluginAfterEmitTaps: (stages: Array) => Array<{ function: ((arg: JsAfterEmitData) => JsAfterEmitData); stage: number; }> + registerRsdoctorPluginModuleGraphTaps: (stages: Array) => Array<{ function: ((arg: JsRsdoctorModuleGraph) => Promise); stage: number; }> + registerRsdoctorPluginChunkGraphTaps: (stages: Array) => Array<{ function: ((arg: JsRsdoctorChunkGraph) => Promise); stage: number; }> + registerRsdoctorPluginModuleSourcesTaps: (stages: Array) => Array<{ function: ((arg: Vec) => Promise); stage: number; }> + registerRsdoctorPluginAssetsTaps: (stages: Array) => Array<{ function: ((arg: Vec) => Promise); stage: number; }> } export interface ThreadsafeNodeFS {