| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | 
							- 'use strict';
 
- const path = require('path');
 
- const locatePath = require('locate-path');
 
- const pathExists = require('path-exists');
 
- const stop = Symbol('findUp.stop');
 
- module.exports = async (name, options = {}) => {
 
- 	let directory = path.resolve(options.cwd || '');
 
- 	const {root} = path.parse(directory);
 
- 	const paths = [].concat(name);
 
- 	const runMatcher = async locateOptions => {
 
- 		if (typeof name !== 'function') {
 
- 			return locatePath(paths, locateOptions);
 
- 		}
 
- 		const foundPath = await name(locateOptions.cwd);
 
- 		if (typeof foundPath === 'string') {
 
- 			return locatePath([foundPath], locateOptions);
 
- 		}
 
- 		return foundPath;
 
- 	};
 
- 	// eslint-disable-next-line no-constant-condition
 
- 	while (true) {
 
- 		// eslint-disable-next-line no-await-in-loop
 
- 		const foundPath = await runMatcher({...options, cwd: directory});
 
- 		if (foundPath === stop) {
 
- 			return;
 
- 		}
 
- 		if (foundPath) {
 
- 			return path.resolve(directory, foundPath);
 
- 		}
 
- 		if (directory === root) {
 
- 			return;
 
- 		}
 
- 		directory = path.dirname(directory);
 
- 	}
 
- };
 
- module.exports.sync = (name, options = {}) => {
 
- 	let directory = path.resolve(options.cwd || '');
 
- 	const {root} = path.parse(directory);
 
- 	const paths = [].concat(name);
 
- 	const runMatcher = locateOptions => {
 
- 		if (typeof name !== 'function') {
 
- 			return locatePath.sync(paths, locateOptions);
 
- 		}
 
- 		const foundPath = name(locateOptions.cwd);
 
- 		if (typeof foundPath === 'string') {
 
- 			return locatePath.sync([foundPath], locateOptions);
 
- 		}
 
- 		return foundPath;
 
- 	};
 
- 	// eslint-disable-next-line no-constant-condition
 
- 	while (true) {
 
- 		const foundPath = runMatcher({...options, cwd: directory});
 
- 		if (foundPath === stop) {
 
- 			return;
 
- 		}
 
- 		if (foundPath) {
 
- 			return path.resolve(directory, foundPath);
 
- 		}
 
- 		if (directory === root) {
 
- 			return;
 
- 		}
 
- 		directory = path.dirname(directory);
 
- 	}
 
- };
 
- module.exports.exists = pathExists;
 
- module.exports.sync.exists = pathExists.sync;
 
- module.exports.stop = stop;
 
 
  |