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