| import * as ESTree from 'estree'; |
| import { EventEmitter } from 'events'; |
| |
| export const VERSION: string; |
| |
| export interface RollupError extends RollupLogProps { |
| stack?: string; |
| watchFiles?: string[]; |
| } |
| |
| export interface RollupWarning extends RollupLogProps { |
| exporter?: string; |
| exportName?: string; |
| guess?: string; |
| importer?: string; |
| missing?: string; |
| modules?: string[]; |
| names?: string[]; |
| reexporter?: string; |
| source?: string; |
| sources?: string[]; |
| } |
| |
| export interface RollupLogProps { |
| code?: string; |
| frame?: string; |
| hook?: string; |
| id?: string; |
| loc?: { |
| column: number; |
| file?: string; |
| line: number; |
| }; |
| message: string; |
| name?: string; |
| plugin?: string; |
| pluginCode?: string; |
| pos?: number; |
| url?: string; |
| } |
| |
| export type SourceMapSegment = |
| | [number] |
| | [number, number, number, number] |
| | [number, number, number, number, number]; |
| |
| export interface ExistingDecodedSourceMap { |
| file?: string; |
| mappings: SourceMapSegment[][]; |
| names: string[]; |
| sourceRoot?: string; |
| sources: string[]; |
| sourcesContent?: string[]; |
| version: number; |
| } |
| |
| export interface ExistingRawSourceMap { |
| file?: string; |
| mappings: string; |
| names: string[]; |
| sourceRoot?: string; |
| sources: string[]; |
| sourcesContent?: string[]; |
| version: number; |
| } |
| |
| export type DecodedSourceMapOrMissing = |
| | { |
| mappings?: never; |
| missing: true; |
| plugin: string; |
| } |
| | ExistingDecodedSourceMap; |
| |
| export interface SourceMap { |
| file: string; |
| mappings: string; |
| names: string[]; |
| sources: string[]; |
| sourcesContent: string[]; |
| version: number; |
| toString(): string; |
| toUrl(): string; |
| } |
| |
| export type SourceMapInput = ExistingRawSourceMap | string | null | { mappings: '' }; |
| |
| export interface SourceDescription { |
| ast?: ESTree.Program; |
| code: string; |
| map?: SourceMapInput; |
| moduleSideEffects?: boolean | null; |
| } |
| |
| export interface TransformSourceDescription extends SourceDescription { |
| dependencies?: string[]; |
| } |
| |
| export interface TransformModuleJSON { |
| ast: ESTree.Program; |
| code: string; |
| // note if plugins use new this.cache to opt-out auto transform cache |
| customTransformCache: boolean; |
| moduleSideEffects: boolean | null; |
| originalCode: string; |
| originalSourcemap: ExistingDecodedSourceMap | null; |
| resolvedIds?: ResolvedIdMap; |
| sourcemapChain: DecodedSourceMapOrMissing[]; |
| transformDependencies: string[]; |
| } |
| |
| export interface ModuleJSON extends TransformModuleJSON { |
| dependencies: string[]; |
| id: string; |
| transformFiles: EmittedFile[] | undefined; |
| } |
| |
| export interface PluginCache { |
| delete(id: string): boolean; |
| get<T = any>(id: string): T; |
| has(id: string): boolean; |
| set<T = any>(id: string, value: T): void; |
| } |
| |
| export interface MinimalPluginContext { |
| meta: PluginContextMeta; |
| } |
| |
| export interface EmittedAsset { |
| fileName?: string; |
| name?: string; |
| source?: string | Buffer; |
| type: 'asset'; |
| } |
| |
| export interface EmittedChunk { |
| fileName?: string; |
| id: string; |
| name?: string; |
| type: 'chunk'; |
| } |
| |
| export type EmittedFile = EmittedAsset | EmittedChunk; |
| |
| export type EmitAsset = (name: string, source?: string | Buffer) => string; |
| |
| export type EmitChunk = (id: string, options?: { name?: string }) => string; |
| |
| export type EmitFile = (emittedFile: EmittedFile) => string; |
| |
| export interface PluginContext extends MinimalPluginContext { |
| addWatchFile: (id: string) => void; |
| cache: PluginCache; |
| /** @deprecated Use `this.emitFile` instead */ |
| emitAsset: EmitAsset; |
| /** @deprecated Use `this.emitFile` instead */ |
| emitChunk: EmitChunk; |
| emitFile: EmitFile; |
| error: (err: RollupError | string, pos?: number | { column: number; line: number }) => never; |
| /** @deprecated Use `this.getFileName` instead */ |
| getAssetFileName: (assetReferenceId: string) => string; |
| /** @deprecated Use `this.getFileName` instead */ |
| getChunkFileName: (chunkReferenceId: string) => string; |
| getFileName: (fileReferenceId: string) => string; |
| getModuleInfo: ( |
| moduleId: string |
| ) => { |
| hasModuleSideEffects: boolean; |
| id: string; |
| importedIds: string[]; |
| isEntry: boolean; |
| isExternal: boolean; |
| }; |
| /** @deprecated Use `this.resolve` instead */ |
| isExternal: IsExternal; |
| moduleIds: IterableIterator<string>; |
| parse: (input: string, options: any) => ESTree.Program; |
| resolve: ( |
| source: string, |
| importer: string, |
| options?: { skipSelf: boolean } |
| ) => Promise<ResolvedId | null>; |
| /** @deprecated Use `this.resolve` instead */ |
| resolveId: (source: string, importer: string) => Promise<string | null>; |
| setAssetSource: (assetReferenceId: string, source: string | Buffer) => void; |
| warn: (warning: RollupWarning | string, pos?: number | { column: number; line: number }) => void; |
| /** @deprecated Use `this.addWatchFile` and the `watchChange` hook instead */ |
| watcher: EventEmitter; |
| } |
| |
| export interface PluginContextMeta { |
| rollupVersion: string; |
| } |
| |
| export interface ResolvedId { |
| external: boolean; |
| id: string; |
| moduleSideEffects: boolean; |
| } |
| |
| export interface ResolvedIdMap { |
| [key: string]: ResolvedId; |
| } |
| |
| interface PartialResolvedId { |
| external?: boolean; |
| id: string; |
| moduleSideEffects?: boolean | null; |
| } |
| |
| export type ResolveIdResult = string | false | null | undefined | PartialResolvedId; |
| |
| export type ResolveIdHook = ( |
| this: PluginContext, |
| source: string, |
| importer: string | undefined |
| ) => Promise<ResolveIdResult> | ResolveIdResult; |
| |
| export type IsExternal = ( |
| source: string, |
| importer: string, |
| isResolved: boolean |
| ) => boolean | null | undefined; |
| |
| export type IsPureModule = (id: string) => boolean | null | undefined; |
| |
| export type HasModuleSideEffects = (id: string, external: boolean) => boolean; |
| |
| export type LoadHook = ( |
| this: PluginContext, |
| id: string |
| ) => Promise<SourceDescription | string | null> | SourceDescription | string | null; |
| |
| export type TransformResult = string | null | undefined | TransformSourceDescription; |
| |
| export type TransformHook = ( |
| this: PluginContext, |
| code: string, |
| id: string |
| ) => Promise<TransformResult> | TransformResult; |
| |
| export type TransformChunkHook = ( |
| this: PluginContext, |
| code: string, |
| options: OutputOptions |
| ) => |
| | Promise<{ code: string; map?: SourceMapInput } | null | undefined> |
| | { code: string; map?: SourceMapInput } |
| | null |
| | undefined; |
| |
| export type RenderChunkHook = ( |
| this: PluginContext, |
| code: string, |
| chunk: RenderedChunk, |
| options: OutputOptions |
| ) => |
| | Promise<{ code: string; map?: SourceMapInput } | null> |
| | { code: string; map?: SourceMapInput } |
| | string |
| | null; |
| |
| export type ResolveDynamicImportHook = ( |
| this: PluginContext, |
| specifier: string | ESTree.Node, |
| importer: string |
| ) => Promise<ResolveIdResult> | ResolveIdResult; |
| |
| export type ResolveImportMetaHook = ( |
| this: PluginContext, |
| prop: string | null, |
| options: { chunkId: string; format: string; moduleId: string } |
| ) => string | null | undefined; |
| |
| export type ResolveAssetUrlHook = ( |
| this: PluginContext, |
| options: { |
| assetFileName: string; |
| chunkId: string; |
| format: string; |
| moduleId: string; |
| relativeAssetPath: string; |
| } |
| ) => string | null | undefined; |
| |
| export type ResolveFileUrlHook = ( |
| this: PluginContext, |
| options: { |
| assetReferenceId: string | null; |
| chunkId: string; |
| chunkReferenceId: string | null; |
| fileName: string; |
| format: string; |
| moduleId: string; |
| referenceId: string; |
| relativePath: string; |
| } |
| ) => string | null | undefined; |
| |
| export type AddonHook = string | ((this: PluginContext) => string | Promise<string>); |
| |
| /** |
| * use this type for plugin annotation |
| * @example |
| * ```ts |
| * interface Options { |
| * ... |
| * } |
| * const myPlugin: PluginImpl<Options> = (options = {}) => { ... } |
| * ``` |
| */ |
| export type PluginImpl<O extends object = object> = (options?: O) => Plugin; |
| |
| export interface OutputBundle { |
| [fileName: string]: OutputAsset | OutputChunk; |
| } |
| |
| export interface FilePlaceholder { |
| type: 'placeholder'; |
| } |
| |
| export interface OutputBundleWithPlaceholders { |
| [fileName: string]: OutputAsset | OutputChunk | FilePlaceholder; |
| } |
| |
| interface OnGenerateOptions extends OutputOptions { |
| bundle: OutputChunk; |
| } |
| |
| interface OnWriteOptions extends OutputOptions { |
| bundle: RollupBuild; |
| } |
| |
| export interface PluginHooks { |
| augmentChunkHash: (this: PluginContext, chunk: PreRenderedChunk) => string | void; |
| buildEnd: (this: PluginContext, err?: Error) => Promise<void> | void; |
| buildStart: (this: PluginContext, options: InputOptions) => Promise<void> | void; |
| generateBundle: ( |
| this: PluginContext, |
| options: OutputOptions, |
| bundle: OutputBundle, |
| isWrite: boolean |
| ) => void | Promise<void>; |
| load: LoadHook; |
| /** @deprecated Use `generateBundle` instead */ |
| ongenerate: ( |
| this: PluginContext, |
| options: OnGenerateOptions, |
| chunk: OutputChunk |
| ) => void | Promise<void>; |
| /** @deprecated Use `writeBundle` instead */ |
| onwrite: ( |
| this: PluginContext, |
| options: OnWriteOptions, |
| chunk: OutputChunk |
| ) => void | Promise<void>; |
| options: (this: MinimalPluginContext, options: InputOptions) => InputOptions | null | undefined; |
| outputOptions: (this: PluginContext, options: OutputOptions) => OutputOptions | null | undefined; |
| renderChunk: RenderChunkHook; |
| renderError: (this: PluginContext, err?: Error) => Promise<void> | void; |
| renderStart: (this: PluginContext) => Promise<void> | void; |
| /** @deprecated Use `resolveFileUrl` instead */ |
| resolveAssetUrl: ResolveAssetUrlHook; |
| resolveDynamicImport: ResolveDynamicImportHook; |
| resolveFileUrl: ResolveFileUrlHook; |
| resolveId: ResolveIdHook; |
| resolveImportMeta: ResolveImportMetaHook; |
| transform: TransformHook; |
| /** @deprecated Use `renderChunk` instead */ |
| transformBundle: TransformChunkHook; |
| /** @deprecated Use `renderChunk` instead */ |
| transformChunk: TransformChunkHook; |
| watchChange: (id: string) => void; |
| writeBundle: (this: PluginContext, bundle: OutputBundle) => void | Promise<void>; |
| } |
| |
| export interface Plugin extends Partial<PluginHooks> { |
| banner?: AddonHook; |
| cacheKey?: string; |
| footer?: AddonHook; |
| intro?: AddonHook; |
| name: string; |
| outro?: AddonHook; |
| } |
| |
| export interface TreeshakingOptions { |
| annotations?: boolean; |
| moduleSideEffects?: ModuleSideEffectsOption; |
| propertyReadSideEffects?: boolean; |
| /** @deprecated Use `moduleSideEffects` instead */ |
| pureExternalModules?: PureModulesOption; |
| tryCatchDeoptimization?: boolean; |
| unknownGlobalSideEffects?: boolean; |
| } |
| |
| export type GetManualChunk = (id: string) => string | null | undefined; |
| |
| export type ExternalOption = string[] | IsExternal; |
| export type PureModulesOption = boolean | string[] | IsPureModule; |
| export type GlobalsOption = { [name: string]: string } | ((name: string) => string); |
| export type InputOption = string | string[] | { [entryAlias: string]: string }; |
| export type ManualChunksOption = { [chunkAlias: string]: string[] } | GetManualChunk; |
| export type ModuleSideEffectsOption = boolean | 'no-external' | string[] | HasModuleSideEffects; |
| |
| export interface InputOptions { |
| acorn?: any; |
| acornInjectPlugins?: Function[]; |
| cache?: false | RollupCache; |
| chunkGroupingSize?: number; |
| context?: string; |
| experimentalCacheExpiry?: number; |
| experimentalOptimizeChunks?: boolean; |
| experimentalTopLevelAwait?: boolean; |
| external?: ExternalOption; |
| inlineDynamicImports?: boolean; |
| input?: InputOption; |
| manualChunks?: ManualChunksOption; |
| moduleContext?: ((id: string) => string) | { [id: string]: string }; |
| onwarn?: WarningHandlerWithDefault; |
| perf?: boolean; |
| plugins?: Plugin[]; |
| preserveModules?: boolean; |
| preserveSymlinks?: boolean; |
| shimMissingExports?: boolean; |
| strictDeprecations?: boolean; |
| treeshake?: boolean | TreeshakingOptions; |
| watch?: WatcherOptions; |
| } |
| |
| export type ModuleFormat = |
| | 'amd' |
| | 'cjs' |
| | 'commonjs' |
| | 'es' |
| | 'esm' |
| | 'iife' |
| | 'module' |
| | 'system' |
| | 'umd'; |
| |
| export type OptionsPaths = Record<string, string> | ((id: string) => string); |
| |
| export interface OutputOptions { |
| amd?: { |
| define?: string; |
| id?: string; |
| }; |
| assetFileNames?: string; |
| banner?: string | (() => string | Promise<string>); |
| chunkFileNames?: string; |
| compact?: boolean; |
| // only required for bundle.write |
| dir?: string; |
| dynamicImportFunction?: string; |
| entryFileNames?: string; |
| esModule?: boolean; |
| exports?: 'default' | 'named' | 'none' | 'auto'; |
| extend?: boolean; |
| externalLiveBindings?: boolean; |
| // only required for bundle.write |
| file?: string; |
| footer?: string | (() => string | Promise<string>); |
| // this is optional at the base-level of RollupWatchOptions, |
| // which extends from this interface through config merge |
| format?: ModuleFormat; |
| freeze?: boolean; |
| globals?: GlobalsOption; |
| importMetaUrl?: (chunkId: string, moduleId: string) => string; |
| indent?: boolean; |
| interop?: boolean; |
| intro?: string | (() => string | Promise<string>); |
| name?: string; |
| namespaceToStringTag?: boolean; |
| noConflict?: boolean; |
| outro?: string | (() => string | Promise<string>); |
| paths?: OptionsPaths; |
| preferConst?: boolean; |
| sourcemap?: boolean | 'inline' | 'hidden'; |
| sourcemapExcludeSources?: boolean; |
| sourcemapFile?: string; |
| sourcemapPathTransform?: (sourcePath: string) => string; |
| strict?: boolean; |
| } |
| |
| export type WarningHandlerWithDefault = ( |
| warning: string | RollupWarning, |
| defaultHandler: WarningHandler |
| ) => void; |
| export type WarningHandler = (warning: string | RollupWarning) => void; |
| |
| export interface SerializedTimings { |
| [label: string]: [number, number, number]; |
| } |
| |
| export interface OutputAsset { |
| fileName: string; |
| /** @deprecated Accessing "isAsset" on files in the bundle is deprecated, please use "type === \'asset\'" instead */ |
| isAsset: true; |
| source: string | Buffer; |
| type: 'asset'; |
| } |
| |
| export interface RenderedModule { |
| originalLength: number; |
| removedExports: string[]; |
| renderedExports: string[]; |
| renderedLength: number; |
| } |
| |
| export interface PreRenderedChunk { |
| dynamicImports: string[]; |
| exports: string[]; |
| facadeModuleId: string | null; |
| imports: string[]; |
| isDynamicEntry: boolean; |
| isEntry: boolean; |
| modules: { |
| [id: string]: RenderedModule; |
| }; |
| name: string; |
| } |
| |
| export interface RenderedChunk extends PreRenderedChunk { |
| fileName: string; |
| } |
| |
| export interface OutputChunk extends RenderedChunk { |
| code: string; |
| map?: SourceMap; |
| type: 'chunk'; |
| } |
| |
| export interface SerializablePluginCache { |
| [key: string]: [number, any]; |
| } |
| |
| export interface RollupCache { |
| modules: ModuleJSON[]; |
| plugins?: Record<string, SerializablePluginCache>; |
| } |
| |
| export interface RollupOutput { |
| output: [OutputChunk, ...(OutputChunk | OutputAsset)[]]; |
| } |
| |
| export interface RollupBuild { |
| cache: RollupCache; |
| generate: (outputOptions: OutputOptions) => Promise<RollupOutput>; |
| getTimings?: () => SerializedTimings; |
| watchFiles: string[]; |
| write: (options: OutputOptions) => Promise<RollupOutput>; |
| } |
| |
| export interface RollupOptions extends InputOptions { |
| output?: OutputOptions; |
| } |
| |
| export function rollup(options: RollupOptions): Promise<RollupBuild>; |
| // chokidar watch options |
| export interface WatchOptions { |
| alwaysStat?: boolean; |
| atomic?: boolean | number; |
| awaitWriteFinish?: |
| | { |
| pollInterval?: number; |
| stabilityThreshold?: number; |
| } |
| | boolean; |
| binaryInterval?: number; |
| cwd?: string; |
| depth?: number; |
| disableGlobbing?: boolean; |
| followSymlinks?: boolean; |
| ignored?: any; |
| ignoreInitial?: boolean; |
| ignorePermissionErrors?: boolean; |
| interval?: number; |
| persistent?: boolean; |
| useFsEvents?: boolean; |
| usePolling?: boolean; |
| } |
| |
| export interface WatcherOptions { |
| chokidar?: boolean | WatchOptions; |
| clearScreen?: boolean; |
| exclude?: string[]; |
| include?: string[]; |
| } |
| |
| export interface RollupWatchOptions extends InputOptions { |
| output?: OutputOptions | OutputOptions[]; |
| watch?: WatcherOptions; |
| } |
| |
| export interface RollupWatcher extends EventEmitter { |
| close(): void; |
| } |
| |
| export function watch(configs: RollupWatchOptions[]): RollupWatcher; |