webpack/declarations.d.ts

353 lines
9.0 KiB
TypeScript
Raw Normal View History

2025-03-14 00:34:04 +08:00
type TODO = any;
type EXPECTED_ANY = any;
type EXPECTED_FUNCTION = Function;
type EXPECTED_OBJECT = object;
2018-03-29 12:24:34 +08:00
declare module "*.json";
2018-03-26 00:07:41 +08:00
2020-02-09 15:32:38 +08:00
// Deprecated NodeJS API usages in webpack
2018-03-30 08:15:49 +08:00
declare namespace NodeJS {
interface Process {
2018-04-06 01:44:15 +08:00
binding(internalModule: string): any;
2018-03-30 08:15:49 +08:00
}
interface ProcessVersions {
pnp: "1" | "3";
}
2018-04-06 01:44:15 +08:00
}
2018-03-30 08:15:49 +08:00
declare module "neo-async" {
interface QueueObject<T, E> {
push(item: T): void;
drain: () => void;
error: (err: E) => void;
}
export interface Dictionary<T> {
[key: string]: T;
}
export type IterableCollection<T> = T[] | Iterable<T> | Dictionary<T>;
export interface ErrorCallback<T> {
(err?: T): void;
}
export interface AsyncBooleanResultCallback<E> {
(err?: E, truthValue?: boolean): void;
}
export interface AsyncResultCallback<T, E> {
(err?: E, result?: T): void;
}
export interface AsyncResultArrayCallback<T, E> {
(err?: E, results?: Array<T | undefined>): void;
}
export interface AsyncResultObjectCallback<T, E> {
(err: E | undefined, results: Dictionary<T | undefined>): void;
}
export interface AsyncFunction<T, E> {
(callback: (err?: E, result?: T) => void): void;
}
export interface AsyncFunctionEx<T, E> {
(callback: (err?: E, ...results: T[]) => void): void;
}
export interface AsyncIterator<T, E> {
(item: T, callback: ErrorCallback<E>): void;
}
export interface AsyncForEachOfIterator<T, E> {
(item: T, key: number | string, callback: ErrorCallback<E>): void;
}
export interface AsyncResultIterator<T, R, E> {
(item: T, callback: AsyncResultCallback<R, E>): void;
}
export interface AsyncMemoIterator<T, R, E> {
(memo: R | undefined, item: T, callback: AsyncResultCallback<R, E>): void;
}
export interface AsyncBooleanIterator<T, E> {
(item: T, callback: AsyncBooleanResultCallback<E>): void;
}
export interface AsyncWorker<T, E> {
(task: T, callback: ErrorCallback<E>): void;
}
export interface AsyncVoidFunction<E> {
(callback: ErrorCallback<E>): void;
}
export type AsyncAutoTasks<R extends Dictionary<any>, E> = {
2019-06-09 17:23:42 +08:00
[K in keyof R]: AsyncAutoTask<R[K], R, E>;
};
export type AsyncAutoTask<R1, R extends Dictionary<any>, E> =
| AsyncAutoTaskFunctionWithoutDependencies<R1, E>
| (keyof R | AsyncAutoTaskFunction<R1, R, E>)[];
export interface AsyncAutoTaskFunctionWithoutDependencies<R1, E> {
(cb: AsyncResultCallback<R1, E> | ErrorCallback<E>): void;
}
export interface AsyncAutoTaskFunction<R1, R extends Dictionary<any>, E> {
(results: R, cb: AsyncResultCallback<R1, E> | ErrorCallback<E>): void;
}
export function each<T, E>(
arr: IterableCollection<T>,
iterator: AsyncIterator<T, E>,
callback?: ErrorCallback<E>
): void;
2019-01-10 03:53:04 +08:00
export function eachLimit<T, E>(
arr: IterableCollection<T>,
limit: number,
iterator: AsyncIterator<T, E>,
callback?: ErrorCallback<E>
): void;
export function map<T, R, E>(
arr: T[] | IterableIterator<T>,
iterator: AsyncResultIterator<T, R, E>,
callback?: AsyncResultArrayCallback<R, E>
): void;
export function map<T, R, E>(
arr: Dictionary<T>,
iterator: AsyncResultIterator<T, R, E>,
callback?: AsyncResultArrayCallback<R, E>
): void;
export function parallel<T, E>(
tasks: Array<AsyncFunction<T, E>>,
callback?: AsyncResultArrayCallback<T, E>
): void;
export function parallel<T, E>(
tasks: Dictionary<AsyncFunction<T, E>>,
callback?: AsyncResultObjectCallback<T, E>
): void;
export function queue<T, E>(
2020-02-28 18:36:40 +08:00
worker: AsyncIterator<T, E>,
concurrency?: number
): QueueObject<T, E>;
export const forEach: typeof each;
2019-01-10 03:53:04 +08:00
export const forEachLimit: typeof eachLimit;
}
2018-04-28 00:53:07 +08:00
// There are no typings for @webassemblyjs/ast
declare module "@webassemblyjs/ast" {
2025-03-14 00:34:04 +08:00
export type AST = TODO;
2024-03-18 01:15:44 +08:00
export interface Visitor {
ModuleImport?: (p: NodePath<ModuleImport>) => void;
ModuleExport?: (p: NodePath<ModuleExport>) => void;
Start?: (p: NodePath<Start>) => void;
Global?: (p: NodePath<Global>) => void;
}
2025-05-16 21:49:07 +08:00
export function traverse(ast: AST, visitor: Visitor): void;
2018-05-09 23:40:38 +08:00
export class NodePath<T> {
node: T;
2024-02-22 22:20:17 +08:00
remove(): void;
2018-04-28 00:53:07 +08:00
}
2025-03-14 00:34:04 +08:00
export class Node {
type: string;
}
2018-04-28 00:53:07 +08:00
export class Identifier extends Node {
value: string;
}
2018-05-09 23:40:38 +08:00
export class Start extends Node {
index: Identifier;
}
2025-03-14 00:34:04 +08:00
export class Module extends Node {
id: TODO;
fields: Node[];
metadata: TODO;
}
2018-05-11 20:13:06 +08:00
export class ModuleImportDescription {
type: string;
valtype?: string;
id?: Identifier;
signature?: Signature;
2024-02-22 22:20:17 +08:00
mutability: string;
2018-05-11 20:13:06 +08:00
}
2018-04-28 00:53:07 +08:00
export class ModuleImport extends Node {
module: string;
2018-05-11 20:13:06 +08:00
descr: ModuleImportDescription;
2018-04-28 00:53:07 +08:00
name: string;
}
export class ModuleExport extends Node {
name: string;
descr: ModuleExportDescr;
}
2018-05-30 20:20:35 +08:00
type Index = Identifier | NumberLiteral;
export class ModuleExportDescr extends Node {
type: string;
exportType: string;
id: Index;
}
export class NumberLiteral extends Node {
value: number;
raw: string;
2018-04-28 00:53:07 +08:00
}
export class FloatLiteral extends Node {}
2018-06-03 00:00:10 +08:00
export class GlobalType extends Node {
valtype: string;
2024-02-22 22:20:17 +08:00
mutability: string;
2018-06-03 00:00:10 +08:00
}
export class Global extends Node {
init: Instruction[];
2018-06-03 00:00:10 +08:00
globalType: GlobalType;
}
export class FuncParam extends Node {
valtype: string;
}
export class Instruction extends Node {
id: string;
args: NumberLiteral[];
}
2018-04-28 00:53:07 +08:00
export class CallInstruction extends Instruction {}
export class ObjectInstruction extends Instruction {}
export class Func extends Node {
signature: Signature;
}
export class Signature {
2018-06-04 22:23:41 +08:00
type: "Signature";
params: FuncParam[];
results: string[];
2018-04-28 00:53:07 +08:00
}
2018-05-16 19:22:46 +08:00
export class TypeInstruction extends Node {}
2018-04-28 00:53:07 +08:00
export class IndexInFuncSection extends Node {}
export function indexLiteral(index: number): Index;
2018-05-14 19:00:19 +08:00
export function numberLiteralFromRaw(num: number): NumberLiteral;
2018-05-29 22:14:16 +08:00
export function floatLiteral(
value: number,
nan?: boolean,
inf?: boolean,
raw?: string
): FloatLiteral;
2025-03-14 00:34:04 +08:00
export function global(globalType: GlobalType, nodes: Node[]): Global;
export function identifier(identifier: string): Identifier;
2018-04-28 00:53:07 +08:00
export function funcParam(valType: string, id: Identifier): FuncParam;
2019-02-12 00:42:14 +08:00
export function instruction(inst: string, args?: Node[]): Instruction;
export function callInstruction(funcIndex: Index): CallInstruction;
2018-04-28 00:53:07 +08:00
export function objectInstruction(
kind: string,
type: string,
init: Node[]
): ObjectInstruction;
2018-05-16 19:22:46 +08:00
export function signature(params: FuncParam[], results: string[]): Signature;
2025-05-16 21:49:07 +08:00
export function func(
initFuncId: Identifier,
signature: Signature,
funcBody: Instruction[]
): Func;
2018-05-29 22:14:16 +08:00
export function typeInstruction(
2024-02-22 22:20:17 +08:00
id: Identifier | undefined,
2018-05-29 22:14:16 +08:00
functype: Signature
): TypeInstruction;
export function indexInFuncSection(index: Index): IndexInFuncSection;
2018-04-28 00:53:07 +08:00
export function moduleExport(
identifier: string,
2018-05-16 19:22:46 +08:00
descr: ModuleExportDescr
): ModuleExport;
export function moduleExportDescr(
2018-04-28 00:53:07 +08:00
type: string,
index: Index
): ModuleExportDescr;
2018-04-28 00:53:07 +08:00
2025-05-16 21:49:07 +08:00
export function getSectionMetadata(
ast: AST,
section: string
): { vectorOfSize: { value: number } };
2018-06-04 22:23:41 +08:00
export class FuncSignature {
args: string[];
result: string[];
}
2025-03-14 00:34:04 +08:00
export function moduleContextFromModuleAST(module: Module): TODO;
2018-06-06 16:39:06 +08:00
// Node matcher
export function isGlobalType(n: Node): boolean;
export function isTable(n: Node): boolean;
export function isMemory(n: Node): boolean;
export function isFuncImportDescr(n: Node): boolean;
2018-04-28 00:53:07 +08:00
}
2024-03-18 01:15:44 +08:00
declare module "@webassemblyjs/wasm-parser" {
2025-05-16 21:49:07 +08:00
export function decode(
source: string | Buffer,
options: {
dump?: boolean;
ignoreCodeSection?: boolean;
ignoreDataSection?: boolean;
ignoreCustomNameSection?: boolean;
}
): import("@webassemblyjs/ast").AST;
2024-03-18 01:15:44 +08:00
}
declare module "@webassemblyjs/wasm-edit" {
2025-05-16 21:49:07 +08:00
export function addWithAST(
ast: import("@webassemblyjs/ast").AST,
bin: any,
newNodes: import("@webassemblyjs/ast").Node[]
): ArrayBuffer;
export function editWithAST(
ast: import("@webassemblyjs/ast").AST,
bin: any,
visitors: import("@webassemblyjs/ast").Visitor
): ArrayBuffer;
2024-03-18 01:15:44 +08:00
}
2019-01-19 04:51:03 +08:00
declare module "webpack-sources" {
export {
SourceLike,
RawSourceMap,
MapOptions,
Source,
RawSource,
OriginalSource,
ReplaceSource,
SourceMapSource,
ConcatSource,
PrefixSource,
CachedSource,
SizeOnlySource,
CompatSource
} from "webpack-sources/types";
2019-01-19 04:51:03 +08:00
}
2023-06-02 03:44:37 +08:00
declare module "json-parse-even-better-errors" {
2025-05-16 21:49:07 +08:00
function parseJson(
text: string,
reviver?: (this: any, key: string, value: any) => any,
context?: number
): any;
2023-06-02 03:44:37 +08:00
export = parseJson;
}
type RecursiveArrayOrRecord<T> =
| { [index: string]: RecursiveArrayOrRecord<T> }
| Array<RecursiveArrayOrRecord<T>>
| T;
2024-10-02 05:18:10 +08:00
declare module "loader-runner" {
2025-05-16 21:49:07 +08:00
export function getContext(resource: string): string;
export function runLoaders(
options: any,
callback: (err: Error | null, result: any) => void
): void;
2024-10-02 05:18:10 +08:00
}
declare module "watchpack" {
class Watchpack {
aggregatedChanges: Set<string>;
aggregatedRemovals: Set<string>;
constructor(options: import("./declarations/WebpackOptions").WatchOptions);
once(eventName: string, callback: any): void;
watch(options: any): void;
2025-05-16 21:49:07 +08:00
collectTimeInfoEntries(
fileTimeInfoEntries: Map<string, number>,
contextTimeInfoEntries: Map<string, number>
): void;
2024-10-02 05:18:10 +08:00
pause(): void;
close(): void;
}
export = Watchpack;
}
2024-10-25 02:13:59 +08:00
declare module "eslint-scope/lib/referencer" {
class Referencer {}
export = Referencer;
}