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.
		
		
		
		
		
			
		
			
				
					
					
						
							137 lines
						
					
					
						
							3.6 KiB
						
					
					
				
			
		
		
	
	
							137 lines
						
					
					
						
							3.6 KiB
						
					
					
				import {Options as LocatePathOptions} from 'locate-path'; | 
						|
 | 
						|
declare const stop: unique symbol; | 
						|
 | 
						|
declare namespace findUp { | 
						|
	interface Options extends LocatePathOptions {} | 
						|
 | 
						|
	type StopSymbol = typeof stop; | 
						|
 | 
						|
	type Match = string | StopSymbol | undefined; | 
						|
} | 
						|
 | 
						|
declare const findUp: { | 
						|
	/** | 
						|
	Find a file or directory by walking up parent directories. | 
						|
 | 
						|
	@param name - Name of the file or directory to find. Can be multiple. | 
						|
	@returns The first path found (by respecting the order of `name`s) or `undefined` if none could be found. | 
						|
 | 
						|
	@example | 
						|
	``` | 
						|
	// / | 
						|
	// └── Users | 
						|
	//     └── sindresorhus | 
						|
	//         ├── unicorn.png | 
						|
	//         └── foo | 
						|
	//             └── bar | 
						|
	//                 ├── baz | 
						|
	//                 └── example.js | 
						|
 | 
						|
	// example.js | 
						|
	import findUp = require('find-up'); | 
						|
 | 
						|
	(async () => { | 
						|
		console.log(await findUp('unicorn.png')); | 
						|
		//=> '/Users/sindresorhus/unicorn.png' | 
						|
 | 
						|
		console.log(await findUp(['rainbow.png', 'unicorn.png'])); | 
						|
		//=> '/Users/sindresorhus/unicorn.png' | 
						|
	})(); | 
						|
	``` | 
						|
	*/ | 
						|
	(name: string | string[], options?: findUp.Options): Promise<string | undefined>; | 
						|
 | 
						|
	/** | 
						|
	Find a file or directory by walking up parent directories. | 
						|
 | 
						|
	@param matcher - Called for each directory in the search. Return a path or `findUp.stop` to stop the search. | 
						|
	@returns The first path found or `undefined` if none could be found. | 
						|
 | 
						|
	@example | 
						|
	``` | 
						|
	import path = require('path'); | 
						|
	import findUp = require('find-up'); | 
						|
 | 
						|
	(async () => { | 
						|
		console.log(await findUp(async directory => { | 
						|
			const hasUnicorns = await findUp.exists(path.join(directory, 'unicorn.png')); | 
						|
			return hasUnicorns && directory; | 
						|
		}, {type: 'directory'})); | 
						|
		//=> '/Users/sindresorhus' | 
						|
	})(); | 
						|
	``` | 
						|
	*/ | 
						|
	(matcher: (directory: string) => (findUp.Match | Promise<findUp.Match>), options?: findUp.Options): Promise<string | undefined>; | 
						|
 | 
						|
	sync: { | 
						|
		/** | 
						|
		Synchronously find a file or directory by walking up parent directories. | 
						|
 | 
						|
		@param name - Name of the file or directory to find. Can be multiple. | 
						|
		@returns The first path found (by respecting the order of `name`s) or `undefined` if none could be found. | 
						|
		*/ | 
						|
		(name: string | string[], options?: findUp.Options): string | undefined; | 
						|
 | 
						|
		/** | 
						|
		Synchronously find a file or directory by walking up parent directories. | 
						|
 | 
						|
		@param matcher - Called for each directory in the search. Return a path or `findUp.stop` to stop the search. | 
						|
		@returns The first path found or `undefined` if none could be found. | 
						|
 | 
						|
		@example | 
						|
		``` | 
						|
		import path = require('path'); | 
						|
		import findUp = require('find-up'); | 
						|
 | 
						|
		console.log(findUp.sync(directory => { | 
						|
			const hasUnicorns = findUp.sync.exists(path.join(directory, 'unicorn.png')); | 
						|
			return hasUnicorns && directory; | 
						|
		}, {type: 'directory'})); | 
						|
		//=> '/Users/sindresorhus' | 
						|
		``` | 
						|
		*/ | 
						|
		(matcher: (directory: string) => findUp.Match, options?: findUp.Options): string | undefined; | 
						|
 | 
						|
		/** | 
						|
		Synchronously check if a path exists. | 
						|
 | 
						|
		@param path - Path to the file or directory. | 
						|
		@returns Whether the path exists. | 
						|
 | 
						|
		@example | 
						|
		``` | 
						|
		import findUp = require('find-up'); | 
						|
 | 
						|
		console.log(findUp.sync.exists('/Users/sindresorhus/unicorn.png')); | 
						|
		//=> true | 
						|
		``` | 
						|
		*/ | 
						|
		exists(path: string): boolean; | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	Check if a path exists. | 
						|
 | 
						|
	@param path - Path to a file or directory. | 
						|
	@returns Whether the path exists. | 
						|
 | 
						|
	@example | 
						|
	``` | 
						|
	import findUp = require('find-up'); | 
						|
 | 
						|
	(async () => { | 
						|
		console.log(await findUp.exists('/Users/sindresorhus/unicorn.png')); | 
						|
		//=> true | 
						|
	})(); | 
						|
	``` | 
						|
	*/ | 
						|
	exists(path: string): Promise<boolean>; | 
						|
 | 
						|
	/** | 
						|
	Return this in a `matcher` function to stop the search and force `findUp` to immediately return `undefined`. | 
						|
	*/ | 
						|
	readonly stop: findUp.StopSymbol; | 
						|
}; | 
						|
 | 
						|
export = findUp;
 | 
						|
 |