npm.io
5.0.2 • Published 4 months ago

find-in-directory

Licence
MIT
Version
5.0.2
Deps
1
Size
15 kB
Vulns
0
Weekly
0

find-in-directory

Npm Version MIT License Coverage

Find file or directory by names in a directory.

Install

yarn add find-in-directory

Usage

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.

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>

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()