/* (c) 2015 Ari Porad (@ariporad) . License: ariporad.mit-license.org */ /** * The hook. Accepts the code of the module and the filename. */ declare type Hook = (code: string, filename: string) => string; /** * A matcher function, will be called with path to a file. * * Should return truthy if the file should be hooked, falsy otherwise. */ declare type Matcher = (path: string) => boolean; /** * Reverts the hook when called. */ declare type RevertFunction = () => void; interface Options { /** * The extensions to hook. Should start with '.' (ex. ['.js']). * * Takes precedence over `exts`, `extension` and `ext`. * * @alias exts * @alias extension * @alias ext * @default ['.js'] */ extensions?: ReadonlyArray | string; /** * The extensions to hook. Should start with '.' (ex. ['.js']). * * Takes precedence over `extension` and `ext`. * * @alias extension * @alias ext * @default ['.js'] */ exts?: ReadonlyArray | string; /** * The extensions to hook. Should start with '.' (ex. ['.js']). * * Takes precedence over `ext`. * * @alias ext * @default ['.js'] */ extension?: ReadonlyArray | string; /** * The extensions to hook. Should start with '.' (ex. ['.js']). * * @default ['.js'] */ ext?: ReadonlyArray | string; /** * A matcher function, will be called with path to a file. * * Should return truthy if the file should be hooked, falsy otherwise. */ matcher?: Matcher | null; /** * Auto-ignore node_modules. Independent of any matcher. * * @default true */ ignoreNodeModules?: boolean; } /** * Add a require hook. * * @param hook The hook. Accepts the code of the module and the filename. Required. * @returns The `revert` function. Reverts the hook when called. */ export declare function addHook(hook: Hook, opts?: Options): RevertFunction; export {};