import { BundleTransformOptions } from "./transform.cjs"; import { StatsWrite } from "./write.cjs"; import { OutputBundle } from "rollup-plugin-stats"; import { StatsOptions } from "rollup-plugin-stats/extract"; //#region src/plugin.d.ts /** * A subset of resolved output options provided to the `generateBundle` hook by Vite/Rolldown/Rollup, * containing only the fields this plugin uses to generate a stats file for a specific output. */ type OutputOptions = { /** Output directory for the generated files. */dir?: string | undefined; /** Output format */ format?: 'es' | 'esm' | 'module' | 'cjs' | 'commonjs' | 'iife' | 'umd' | 'amd' | 'system' | 'systemjs' | undefined; }; /** * Subset of the Vite/Rolldown/Rollup plugin hook context (`this`) used by this plugin. */ type PluginContext = { /** Log an informational message through Vite/Rolldown/Rollup's logging pipeline. */info: (message: string) => void; /** Log a warning through Vite/Rolldown/Rollup's logging pipeline without stopping the build. */ warn: (message: string) => void; }; /** * Minimum plugin interface compatible with Vite/Rolldown/Rollup. */ type Plugin = { /** Unique identifier for the plugin, used in error messages and logs. */name: string; /** * Hook called after the bundle has been fully generated but before it is * written to disk. Receives the resolved output options and the complete * output bundle map. */ generateBundle?: (this: PluginContext, outputOptions: OutputOptions, bundle: OutputBundle, isWrite: boolean) => void | Promise; }; type WebpackStatsOptions = { /** * JSON file output fileName * default: webpack-stats.json */ fileName?: string; /** * Custom file writer * @default - fs.write(FILENAME, JSON.stringify(STATS, null, 2)); */ write?: StatsWrite; } & Omit & BundleTransformOptions; type WebpackStatsOptionsOrBuilder = WebpackStatsOptions | ((outputOptions: OutputOptions) => WebpackStatsOptions); declare const webpackStats: (options?: WebpackStatsOptionsOrBuilder) => Plugin; //#endregion export { webpackStats }; //# sourceMappingURL=plugin.d.cts.map