67 lines
1.4 KiB
TypeScript
67 lines
1.4 KiB
TypeScript
import {type MergeExclusive} from 'type-fest';
|
|
import {type Compiler} from 'webpack';
|
|
|
|
declare namespace NodePolyfillPlugin {
|
|
export type Alias =
|
|
| 'assert'
|
|
| 'buffer'
|
|
| 'Buffer'
|
|
| 'console'
|
|
| 'constants'
|
|
| 'crypto'
|
|
| 'domain'
|
|
| 'events'
|
|
| 'fs'
|
|
| 'http'
|
|
| 'https'
|
|
| 'os'
|
|
| 'path'
|
|
| 'process'
|
|
| 'punycode'
|
|
| 'querystring'
|
|
| 'stream'
|
|
| '_stream_duplex'
|
|
| '_stream_passthrough'
|
|
| '_stream_readable'
|
|
| '_stream_transform'
|
|
| '_stream_writable'
|
|
| 'string_decoder'
|
|
| 'sys'
|
|
| 'timers'
|
|
| 'timers/promises'
|
|
| 'tty'
|
|
| 'url'
|
|
| 'util'
|
|
| 'vm'
|
|
| 'zlib';
|
|
|
|
export type OnlyAliasesOptions = {
|
|
/**
|
|
You can choose to only include certain aliases, ignoring the defaults. For example, you can have only `console` polyfilled.
|
|
*/
|
|
onlyAliases?: readonly Alias[];
|
|
};
|
|
|
|
export type AdditionalExcludeAliasesOptions = {
|
|
/**
|
|
You can choose to add certain aliases to the list of polyfilled modules. For example, you can choose to polyfill `console`.
|
|
*/
|
|
additionalAliases?: readonly Alias[];
|
|
|
|
/**
|
|
If you don't want a module to be polyfilled, you can specify aliases to be skipped here.
|
|
*/
|
|
excludeAliases?: readonly Alias[];
|
|
};
|
|
|
|
export type Options = MergeExclusive<OnlyAliasesOptions, AdditionalExcludeAliasesOptions>;
|
|
}
|
|
|
|
declare class NodePolyfillPlugin {
|
|
constructor(options?: NodePolyfillPlugin.Options);
|
|
|
|
apply(compiler: InstanceType<typeof Compiler>): void;
|
|
}
|
|
|
|
export = NodePolyfillPlugin;
|