You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					83 lines
				
				1.9 KiB
			
		
		
			
		
	
	
					83 lines
				
				1.9 KiB
			| 
											3 years ago
										 | /* (c) 2015 Ari Porad (@ariporad) <http://ariporad.com>. 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> | 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> | string; | ||
|  | 
 | ||
|  |   /** | ||
|  |    * The extensions to hook. Should start with '.' (ex. ['.js']). | ||
|  |    * | ||
|  |    * Takes precedence over `ext`. | ||
|  |    * | ||
|  |    * @alias ext | ||
|  |    * @default ['.js'] | ||
|  |    */ | ||
|  |   extension?: ReadonlyArray<string> | string; | ||
|  | 
 | ||
|  |   /** | ||
|  |    * The extensions to hook. Should start with '.' (ex. ['.js']). | ||
|  |    * | ||
|  |    * @default ['.js'] | ||
|  |    */ | ||
|  |   ext?: ReadonlyArray<string> | 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 {}; |