webpack-userscript
Version:
A Webpack plugin for userscript projects.
37 lines (36 loc) • 2.28 kB
TypeScript
import { AsyncParallelHook, AsyncSeriesBailHook, AsyncSeriesWaterfallHook } from 'tapable';
import { Compilation, Compiler, WebpackPluginInstance } from 'webpack';
import { Feature, LoadHeadersOptions, ProxyScriptOptions, RenderHeadersOptions, ResolveBaseURLsOptions, SSRIOptions, ValidateHeadersOptions } from './features';
import { CompilationContext, FileInfo, HeadersProps, UserscriptPluginInstance, WaterfallContext } from './types';
export interface UserscriptPluginOptions {
metajs?: boolean;
skip?: (fileInfo: FileInfo) => boolean;
proxyScript?: unknown;
i18n?: Record<string, unknown>;
}
export type UserscriptOptions = LoadHeadersOptions & ResolveBaseURLsOptions & SSRIOptions & ProxyScriptOptions & RenderHeadersOptions & ValidateHeadersOptions & UserscriptPluginOptions;
export declare class UserscriptPlugin implements WebpackPluginInstance, UserscriptPluginInstance {
readonly name = "UserscriptPlugin";
readonly features: Feature[];
readonly hooks: {
init: AsyncParallelHook<[Compiler], import("tapable").UnsetAdditionalOptions>;
close: AsyncParallelHook<[Compiler], import("tapable").UnsetAdditionalOptions>;
preprocess: AsyncParallelHook<[Compilation, CompilationContext], import("tapable").UnsetAdditionalOptions>;
process: AsyncParallelHook<[Compilation, CompilationContext], import("tapable").UnsetAdditionalOptions>;
headers: AsyncSeriesWaterfallHook<[HeadersProps, WaterfallContext], import("tapable").UnsetAdditionalOptions>;
proxyHeaders: AsyncSeriesWaterfallHook<[HeadersProps, WaterfallContext], import("tapable").UnsetAdditionalOptions>;
proxyScriptFile: AsyncSeriesWaterfallHook<[string, WaterfallContext], import("tapable").UnsetAdditionalOptions>;
renderHeaders: AsyncSeriesBailHook<Map<string, HeadersProps>, string, import("tapable").UnsetAdditionalOptions>;
renderProxyHeaders: AsyncSeriesBailHook<HeadersProps, string, import("tapable").UnsetAdditionalOptions>;
};
private readonly contexts;
private options;
constructor(options?: UserscriptOptions);
apply(compiler: Compiler): void;
private init;
private close;
private preprocess;
private process;
private collectFileInfo;
private emitUserscript;
}