25 lines
		
	
	
		
			512 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			512 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| const path = require('path');
 | |
| const pathExists = require('path-exists');
 | |
| const pLocate = require('p-locate');
 | |
| 
 | |
| module.exports = (iterable, opts) => {
 | |
| 	opts = Object.assign({
 | |
| 		cwd: process.cwd()
 | |
| 	}, opts);
 | |
| 
 | |
| 	return pLocate(iterable, el => pathExists(path.resolve(opts.cwd, el)), opts);
 | |
| };
 | |
| 
 | |
| module.exports.sync = (iterable, opts) => {
 | |
| 	opts = Object.assign({
 | |
| 		cwd: process.cwd()
 | |
| 	}, opts);
 | |
| 
 | |
| 	for (const el of iterable) {
 | |
| 		if (pathExists.sync(path.resolve(opts.cwd, el))) {
 | |
| 			return el;
 | |
| 		}
 | |
| 	}
 | |
| };
 |