2022-11-10 11:43:16 +01:00
# locate-path [![Build Status](https://travis-ci.com/sindresorhus/locate-path.svg?branch=master)](https://travis-ci.com/github/sindresorhus/locate-path)
2020-08-26 01:57:08 +02:00
> Get the first path that exists on disk of multiple paths
## Install
```
2022-11-10 11:43:16 +01:00
$ npm install locate-path
2020-08-26 01:57:08 +02:00
```
## Usage
Here we find the first file that exists on disk, in array order.
```js
const locatePath = require('locate-path');
const files = [
'unicorn.png',
2022-11-10 11:43:16 +01:00
'rainbow.png', // Only this one actually exists on disk
2020-08-26 01:57:08 +02:00
'pony.png'
];
2022-11-10 11:43:16 +01:00
(async () => {
console(await locatePath(files));
2020-08-26 01:57:08 +02:00
//=> 'rainbow'
2022-11-10 11:43:16 +01:00
})();
2020-08-26 01:57:08 +02:00
```
## API
2022-11-10 11:43:16 +01:00
### locatePath(paths, options?)
2020-08-26 01:57:08 +02:00
2022-11-10 11:43:16 +01:00
Returns a `Promise<string>` for the first path that exists or `undefined` if none exists.
2020-08-26 01:57:08 +02:00
2022-11-10 11:43:16 +01:00
#### paths
2020-08-26 01:57:08 +02:00
Type: `Iterable<string>`
Paths to check.
#### options
2022-11-10 11:43:16 +01:00
Type: `object`
2020-08-26 01:57:08 +02:00
##### concurrency
2022-11-10 11:43:16 +01:00
Type: `number` \
Default: `Infinity` \
2020-08-26 01:57:08 +02:00
Minimum: `1`
Number of concurrently pending promises.
##### preserveOrder
2022-11-10 11:43:16 +01:00
Type: `boolean` \
2020-08-26 01:57:08 +02:00
Default: `true`
2022-11-10 11:43:16 +01:00
Preserve `paths` order when searching.
2020-08-26 01:57:08 +02:00
Disable this to improve performance if you don't care about the order.
##### cwd
2022-11-10 11:43:16 +01:00
Type: `string` \
2020-08-26 01:57:08 +02:00
Default: `process.cwd()`
Current working directory.
2022-11-10 11:43:16 +01:00
##### 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?)
2020-08-26 01:57:08 +02:00
Returns the first path that exists or `undefined` if none exists.
2022-11-10 11:43:16 +01:00
#### paths
2020-08-26 01:57:08 +02:00
Type: `Iterable<string>`
Paths to check.
#### options
2022-11-10 11:43:16 +01:00
Type: `object`
2020-08-26 01:57:08 +02:00
##### cwd
Same as above.
2022-11-10 11:43:16 +01:00
##### type
2020-08-26 01:57:08 +02:00
2022-11-10 11:43:16 +01:00
Same as above.
2020-08-26 01:57:08 +02:00
2022-11-10 11:43:16 +01:00
##### allowSymlinks
2020-08-26 01:57:08 +02:00
2022-11-10 11:43:16 +01:00
Same as above.
## Related
2020-08-26 01:57:08 +02:00
2022-11-10 11:43:16 +01:00
- [path-exists ](https://github.com/sindresorhus/path-exists ) - Check if a path exists
2020-08-26 01:57:08 +02:00
2022-11-10 11:43:16 +01:00
---
< 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 >