1.0.1 • Published 6 months ago

@mnrendra/find-up v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

@mnrendra/find-up

version types size downloads license

A lightweight utility to find a file or directory by searching upward from a specific directory.

Install

npm i @mnrendra/find-up

API Reference

findUp

Finds a file or directory by searching upward from a specific directory. If no initial directory is provided, it will start from the current working directory (process.cwd()).

Type

(target: string, initDir?: string) => string | null

Parameters

NameTypeDescription
targetstringThe name of the file or directory to find.
initDirstringOptional directory to start searching from. Defaults to process.cwd().

Return

string | null

The absolute path of the file or directory if found, or null if not found.

Usage

CommonJS

Let's say your package directory is /foo/package-directory, where the package.json file is located. Then, you want to find the package.json from /foo/package-directory/src/index.cjs:

const { findUp } = require('@mnrendra/find-up')

const pkgPath1 = findUp('package.json') // Searches from `process.cwd()`: '/foo/package-directory'.
const pkgPath2 = findUp('package.json', __dirname) // Searches from `__dirname`: '/foo/package-directory/src'.

console.log(pkgPath1 === pkgPath2) // Output: true
console.log(pkgPath1) // Output: /foo/package-directory/package.json
console.log(pkgPath2) // Output: /foo/package-directory/package.json

ES Modules

Let's say your package directory is /foo/package-directory, where the package.json file is located. Then, you want to find the package.json from /foo/package-directory/src/index.mjs:

import { dirname } from 'node:path'
import { fileURLToPath } from 'node:url'

import { findUp } from '@mnrendra/find-up'

const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)

const pkgPath1 = findUp('package.json') // Searches from `process.cwd()`: '/foo/package-directory'.
const pkgPath2 = findUp('package.json', __dirname) // Searches from `__dirname`: '/foo/package-directory/src'.

console.log(pkgPath1 === pkgPath2) // Output: true
console.log(pkgPath1) // Output: /foo/package-directory/package.json
console.log(pkgPath2) // Output: /foo/package-directory/package.json

License

MIT

Author

@mnrendra