126 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# locate-path [](https://travis-ci.com/github/sindresorhus/locate-path)
 | 
						|
 | 
						|
> Get the first path that exists on disk of multiple paths
 | 
						|
 | 
						|
## Install
 | 
						|
 | 
						|
```
 | 
						|
$ npm install locate-path
 | 
						|
```
 | 
						|
 | 
						|
## Usage
 | 
						|
 | 
						|
Here we find the first file that exists on disk, in array order.
 | 
						|
 | 
						|
```js
 | 
						|
const locatePath = require('locate-path');
 | 
						|
 | 
						|
const files = [
 | 
						|
	'unicorn.png',
 | 
						|
	'rainbow.png', // Only this one actually exists on disk
 | 
						|
	'pony.png'
 | 
						|
];
 | 
						|
 | 
						|
(async () => {
 | 
						|
	console(await locatePath(files));
 | 
						|
	//=> 'rainbow'
 | 
						|
})();
 | 
						|
```
 | 
						|
 | 
						|
## API
 | 
						|
 | 
						|
### locatePath(paths, options?)
 | 
						|
 | 
						|
Returns a `Promise<string>` for the first path that exists or `undefined` if none exists.
 | 
						|
 | 
						|
#### paths
 | 
						|
 | 
						|
Type: `Iterable<string>`
 | 
						|
 | 
						|
Paths to check.
 | 
						|
 | 
						|
#### options
 | 
						|
 | 
						|
Type: `object`
 | 
						|
 | 
						|
##### concurrency
 | 
						|
 | 
						|
Type: `number`\
 | 
						|
Default: `Infinity`\
 | 
						|
Minimum: `1`
 | 
						|
 | 
						|
Number of concurrently pending promises.
 | 
						|
 | 
						|
##### preserveOrder
 | 
						|
 | 
						|
Type: `boolean`\
 | 
						|
Default: `true`
 | 
						|
 | 
						|
Preserve `paths` order when searching.
 | 
						|
 | 
						|
Disable this to improve performance if you don't care about the order.
 | 
						|
 | 
						|
##### cwd
 | 
						|
 | 
						|
Type: `string`\
 | 
						|
Default: `process.cwd()`
 | 
						|
 | 
						|
Current working directory.
 | 
						|
 | 
						|
##### type
 | 
						|
 | 
						|
Type: `string`\
 | 
						|
Default: `'file'`\
 | 
						|
Values: `'file' | 'directory'`
 | 
						|
 | 
						|
The type of paths that can match.
 | 
						|
 | 
						|
##### allowSymlinks
 | 
						|
 | 
						|
Type: `boolean`\
 | 
						|
Default: `true`
 | 
						|
 | 
						|
Allow symbolic links to match if they point to the chosen path type.
 | 
						|
 | 
						|
### locatePath.sync(paths, options?)
 | 
						|
 | 
						|
Returns the first path that exists or `undefined` if none exists.
 | 
						|
 | 
						|
#### paths
 | 
						|
 | 
						|
Type: `Iterable<string>`
 | 
						|
 | 
						|
Paths to check.
 | 
						|
 | 
						|
#### options
 | 
						|
 | 
						|
Type: `object`
 | 
						|
 | 
						|
##### cwd
 | 
						|
 | 
						|
Same as above.
 | 
						|
 | 
						|
##### type
 | 
						|
 | 
						|
Same as above.
 | 
						|
 | 
						|
##### allowSymlinks
 | 
						|
 | 
						|
Same as above.
 | 
						|
 | 
						|
## Related
 | 
						|
 | 
						|
- [path-exists](https://github.com/sindresorhus/path-exists) - Check if a path exists
 | 
						|
 | 
						|
---
 | 
						|
 | 
						|
<div align="center">
 | 
						|
	<b>
 | 
						|
		<a href="https://tidelift.com/subscription/pkg/npm-locate-path?utm_source=npm-locate-path&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
 | 
						|
	</b>
 | 
						|
	<br>
 | 
						|
	<sub>
 | 
						|
		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
 | 
						|
	</sub>
 | 
						|
</div>
 |