123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- import Webpack, { Stats } from 'webpack';
- type ReporterContextFunc<T = any> = (context: WebpackBarPlugin, opts: T) => void
- interface State {
- start: [number, number] | null
- progress: number
- done: boolean
- message: string
- details: string[]
- request: null | {
- file: null | string
- loaders: string[]
- }
- hasErrors: boolean
- color: string
- name: string
- }
- interface Reporter {
- /**
- * Called when (re)compile is started
- */
- start?: ReporterContextFunc
- /**
- * Called when a file changed on watch mode
- */
- change?: ReporterContextFunc<{ shortPath: string }>
- /**
- * Called after each progress update
- */
- update?: ReporterContextFunc
- /**
- * Called when compile finished
- */
- done?: ReporterContextFunc<{ stats: Stats }>
- /**
- * Called when build progress updated
- */
- progress?: ReporterContextFunc
- /**
- * Called when _all_ compiles finished
- */
- allDone?: ReporterContextFunc
- beforeAllDone?: ReporterContextFunc
- afterAllDone?: ReporterContextFunc
- }
- type ReporterOpts = { reporter: Reporter | string, options?: any }
- type ReporterInput = string | [Reporter | string, any?] | ReporterOpts
- interface WebpackBarOptions {
- /**
- * Display name
- * @default 'webpack'
- */
- name?: string
- /**
- * Color output of the progress bar
- * @default 'green'
- */
- color?: string
- /**
- * Enable profiler
- * @default false
- */
- profile?: boolean
- /**
- * Enable bars reporter
- * Defaults to 'true' when not in CI or testing mod
- * @default true
- */
- fancy?: boolean
- /**
- * Enable a simple log reporter (only start and end)
- * Defaults to 'true' when running in minimal environments
- * @default true
- */
- basic?: boolean
- /**
- * Register a custom reporter
- */
- reporter?: ReporterInput
- /**
- * Register an Array of your custom reporters.
- * @default ['basic'] | ['fancy']
- */
- reporters?: ReporterInput[]
- }
- declare class WebpackBarPlugin extends Webpack.ProgressPlugin {
- private options;
- private reporters;
- constructor(options?: WebpackBarOptions);
- callReporters(fn: any, payload?: {}): void;
- get hasRunning(): boolean;
- get hasErrors(): boolean;
- get statesArray(): any[];
- get states(): {
- [key: string]: State;
- };
- get state(): State;
- _ensureState(): void;
- apply(compiler: any): void;
- updateProgress(percent?: number, message?: string, details?: any[]): void;
- }
- export { Reporter, State, WebpackBarPlugin as default };
|