# find-in-directory

> Find file or directory by names in a directory.

Latest version **5.0.2** (published 2026-06-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install find-in-directory
pnpm add find-in-directory
yarn add find-in-directory
bun add find-in-directory
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 5.0.2 |
| Published | 2026-06-15 |
| First published | 2023-11-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Dependencies | 1 |
| Unpacked size | 14.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 0 |
| Author | fisker Cheung |
| Maintainers | fisker |

## Links

- npm: https://www.npmjs.com/package/find-in-directory
- Repository: https://github.com/fisker/find-in-directory
- Homepage: https://github.com/fisker/find-in-directory#readme
- Issues: https://github.com/fisker/find-in-directory/issues
- Funding: https://github.com/fisker/find-in-directory?sponsor=1
- npm.io page: https://npm.io/package/find-in-directory

## Dependencies (1)

- [url-or-path](https://npm.io/package/url-or-path.md) ^2.7.1

## Recent versions

- 5.0.2 (latest) — 2026-06-15
- 5.0.1 — 2026-05-28
- 5.0.0 — 2026-05-28
- 4.1.0 — 2026-05-28
- 4.0.1 — 2026-05-28
- 4.0.0 — 2026-05-28
- 3.2.0 — 2026-05-28
- 3.1.3 — 2026-05-27
- 3.1.1 — 2026-05-27
- 3.0.0 — 2025-05-08
- 2.0.1 — 2025-04-28
- 2.0.0 — 2025-04-27
- 1.0.1 — 2023-11-19
- 1.0.0 — 2023-11-19

## README

# find-in-directory

[![Npm Version][package_version_badge]][package_link]
[![MIT License][license_badge]][license_link]
[![Coverage][coverage_badge]][coverage_link]

[coverage_badge]: https://img.shields.io/codecov/c/github/fisker/find-in-directory.svg?style=flat-square
[coverage_link]: https://app.codecov.io/gh/fisker/find-in-directory
[license_badge]: https://img.shields.io/npm/l/find-in-directory.svg?style=flat-square
[license_link]: https://github.com/fisker/find-in-directory/blob/main/license
[package_version_badge]: https://img.shields.io/npm/v/find-in-directory.svg?style=flat-square
[package_link]: https://www.npmjs.com/package/find-in-directory

> Find file or directory by names in a directory.

## Install

```bash
yarn add find-in-directory
```

## Usage

```js
import {
  findFileInDirectory,
  findDirectoryInDirectory,
  findInDirectory,
} from 'find-in-directory'

console.log(await findFileInDirectory(['foo.config.js', 'foo.config.json']))
// "/path/to/foo.config.json"

console.log(await findDirectoryInDirectory(['node_modules', '.yarn']))
// "/path/to/node_modules"

console.log(
  await findInDirectory([
    {name: 'yarn.lock', type: 'file'},
    {name: '.yarn', type: 'directory'},
  ]),
)
// "/path/to/yarn.lock"
```

## API

### Call signatures

- `find{File,Directory,}InDirectory(targetOrTargets: TargetOrTargets)`
- `find{File,Directory,}InDirectory(targetOrTargets: TargetOrTargets, options: Options)`
- `find{File,Directory,}InDirectory(targetOrTargets: TargetOrTargets, filter: Options["filter"])`
- `find{File,Directory,}InDirectory(targetOrTargets: TargetOrTargets, filter: Options["filter"], options: Omit<Options, "filter">)`

### types

#### `TargetOrTargets`

The files or directories to find.

Type: `Target | Target[]`

#### `Target`

The files or directories to find.

Type: `string | {name: string, type?: 'file' | 'directory', filter?: Options["filter"]}`

#### `Target["type"]`

The file or directory type looking for.

```js
import fs from 'node:fs/promises'
import {findInDirectory} from 'find-in-directory'

const result = await findInDirectory([
  {name: 'yarn.lock', type: 'file'},
  {name: '.yarn', type: 'directory'},
])
// "/path/to/bar.js"
```

_`Target.type` is ignored in `findFileInDirectory()` and `fileDirectoryInDirectory()`, only works in `findInDirectory()`_

#### `Target["name"]`

#### `Options["cwd"]`

The directory to find.

Type: `URL | string`\
Default: `process.cwd()`

#### `options["filter"]`

Type: `(fileOrDirectory: {name: string, path: string, stats: fs.Stats}) => Promise<boolean>`

```js
import fs from 'node:fs/promises'
import {findFile} from 'find-in-directory'

const file = await findFile(['foo.js', 'bar.js'], {
  async filter({path: file}) {
    const content = await fs.readFile(file, 'utf8')
    return content.startsWith('#!/usr/bin/env node')
  },
})
// "/path/to/bar.js"
```

#### `options["allowSymlinks"]`

Should allow symlinks or not.

Type: `boolean`

#### `options["type"]`

The file or directory type looking for.

Type: `'file' | 'directory'`

_`options.type` is ignored in `findFileInDirectory()` and `fileDirectoryInDirectory()`, only works in `findInDirectory()`_

## Related

- [`search-closest`](https://github.com/fisker/search-closest) - Find closest file or directory.

---
_Source: https://npm.io/package/find-in-directory · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
