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;
|
|
|