.
This commit is contained in:
		
							
								
								
									
										89
									
								
								qwen/nodejs/node_modules/find-up/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								qwen/nodejs/node_modules/find-up/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
			
		||||
'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;
 | 
			
		||||
		Reference in New Issue
	
	Block a user