Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/junosuarez/find-root
recursively find the closest package.json
https://github.com/junosuarez/find-root
Last synced: 8 days ago
JSON representation
recursively find the closest package.json
- Host: GitHub
- URL: https://github.com/junosuarez/find-root
- Owner: junosuarez
- License: mit
- Created: 2013-12-05T21:36:12.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2023-01-11T11:56:13.000Z (almost 2 years ago)
- Last Synced: 2024-04-26T09:02:56.178Z (7 months ago)
- Language: JavaScript
- Size: 46.9 KB
- Stars: 48
- Watchers: 5
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# find-root
recursively find the closest package.json[![Build Status](https://travis-ci.org/js-n/find-root.svg?branch=master)](https://travis-ci.org/js-n/find-root)
## usage
Say you want to check if the directory name of a project matches its
module name in package.json:```js
const path = require('path')
const findRoot = require('find-root')// from a starting directory, recursively search for the nearest
// directory containing package.json
const root = findRoot('/Users/jsdnxx/Code/find-root/tests')
// => '/Users/jsdnxx/Code/find-root'const dirname = path.basename(root)
console.log('is it the same?')
console.log(dirname === require(path.join(root, 'package.json')).name)
```You can also pass in a custom check function (by default, it checks for the
existence of `package.json` in a directory). In this example, we traverse up
to find the root of a git repo:
```js
const fs = require('fs')const gitRoot = findRoot('/Users/jsdnxx/Code/find-root/tests', function (dir) {
return fs.existsSync(path.resolve(dir, '.git'))
})
```## api
### `findRoot: (startingPath : string, check?: (dir: string) => boolean) => string`
Returns the path for the nearest directory to `startingPath` containing
a `package.json` file, eg `/foo/module`.If `check` is provided, returns the path for the closest parent directory
where `check` returns true.Throws an error if no `package.json` is found at any level in the
`startingPath`.## installation
```sh
> npm install find-root
```## running the tests
From package root:
```sh
> npm install
> npm test
```## contributors
- jsdnxx
## license
MIT. (c) 2017 jsdnxx