///
import { Stats } from 'fs';
export interface Request {
request?: Request;
relativePath: string;
}
export interface Callback {
(err?: Error | null, result?: T): void;
}
export interface ResolverCallback {
(request: Request, callback: Callback): void;
}
export interface Tapable {
apply(plugin: ResolverPlugin): void;
}
export interface ResolverPlugin extends Tapable {
plugin(source: string, cb: ResolverCallback): void;
doResolve(target: string, req: Request, desc: string, callback: Callback): void;
join(relativePath: string, innerRequest: Request): Request;
}
export interface LoaderCallback {
(err: Error | null, source?: string, sourceMap?: string): void;
}
export interface ModuleReason {
dependency: any;
module: NormalModule;
}
export interface NormalModule {
buildTimestamp: number;
built: boolean;
reasons: ModuleReason[];
resource: string;
}
export interface NormalModuleFactory {
plugin(event: string, callback: (data: NormalModuleFactoryRequest, callback: Callback) => void): any;
}
export interface NormalModuleFactoryRequest {
request: string;
contextInfo: {
issuer: string;
};
}
export interface LoaderContext {
_module: NormalModule;
addDependency(path: string): void;
async(): LoaderCallback;
cacheable(): void;
readonly resourcePath: string;
readonly query: any;
}
export interface InputFileSystem {
stat(path: string, callback: Callback): void;
readdir(path: string, callback: Callback): void;
readFile(path: string, callback: Callback): void;
readJson(path: string, callback: Callback): void;
readlink(path: string, callback: Callback): void;
statSync(path: string): Stats;
readdirSync(path: string): string[];
readFileSync(path: string): string;
readJsonSync(path: string): string;
readlinkSync(path: string): string;
purge(changes?: string[] | string): void;
}
export interface NodeWatchFileSystemInterface {
inputFileSystem: InputFileSystem;
new (inputFileSystem: InputFileSystem): NodeWatchFileSystemInterface;
watch(files: any, dirs: any, missing: any, startTime: any, options: any, callback: any, callbackUndelayed: any): any;
}