rollup-plugin-webpack-stats
Version:
Rollup/Vite/Rolldown plugin to generate a stats JSON file with a bundle-stats webpack-compatible structure
79 lines (78 loc) • 2.67 kB
text/typescript
import { AssetStats, ChunkStats, ModuleStats, Stats } from "rollup-plugin-stats/extract";
//#region src/transform.d.ts
type WebpackStatsFilteredAsset = {
name: string;
size?: number;
};
interface WebpackStatsFilteredChunk {
id: number | string;
entry: boolean;
initial: boolean;
files?: Array<string>;
names?: Array<string>;
}
interface WebpackStatsFilteredModule {
name: string;
size?: number;
chunks: Array<string | number>;
}
interface WebpackStatsFilteredConcatenatedModule {
name: string;
size?: number;
}
interface WebpackStatsFilteredRootModule extends WebpackStatsFilteredModule {
modules?: Array<WebpackStatsFilteredConcatenatedModule>;
}
interface WebpackStatsFiltered {
builtAt: number;
hash?: string;
assets: Array<WebpackStatsFilteredAsset>;
chunks: Array<WebpackStatsFilteredChunk>;
modules: Array<WebpackStatsFilteredRootModule>;
}
type ChunksIssuers = Record<string, Array<ChunkStats>>;
/**
* Recursivily check if a chunk is async based on the chunks issuers
*/
declare const lookupChunkAsync: (chunksIssuers: ChunksIssuers, chunk: ChunkStats, processedChunks?: Array<string>, cache?: Map<string, boolean>) => boolean;
type AssetSource = ChunkStats | AssetStats;
type ChunkSource = ChunkStats;
type ModuleSource = {
fileName: string;
} & ModuleStats;
/**
* Store transformed sources
*/
declare class TransformSources {
constructor();
entries: Record<string, unknown>;
push(id: string, source: AssetSource | ChunkSource | ModuleSource): void;
/**
* Get asset source
*/
getByAsset: (asset: WebpackStatsFilteredAsset) => AssetSource;
/**
* Get chunk source
*/
getByChunk: (chunk: WebpackStatsFilteredChunk) => ChunkSource;
/**
* Get module source
*/
getByModule: (module: WebpackStatsFilteredModule) => ModuleSource;
}
type TransformCallback = (stats: WebpackStatsFiltered, sources: TransformSources, bundle: Stats) => WebpackStatsFiltered;
type BundleTransformOptions = {
/**
* Extract module original size or rendered size
* default: false
*/
moduleOriginalSize?: boolean;
/**
* Callback function to access and mutate the resulting stats after the transformation
*/
transform?: TransformCallback;
};
declare const bundleToWebpackStats: (bundle: Stats, pluginOptions?: BundleTransformOptions) => WebpackStatsFiltered;
//#endregion
export { BundleTransformOptions, ChunksIssuers, TransformCallback, WebpackStatsFiltered, WebpackStatsFilteredAsset, WebpackStatsFilteredChunk, WebpackStatsFilteredConcatenatedModule, WebpackStatsFilteredModule, WebpackStatsFilteredRootModule, bundleToWebpackStats, lookupChunkAsync };
//# sourceMappingURL=transform.d.cts.map