Skip to content

A CommonJS module to find the closest `package.json`, read it, and report its content along with paths and goodies.

Notifications You must be signed in to change notification settings

mk-pmb/find-up-package-json-cjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

find-up-package-json-cjs

A CommonJS module to find the closest package.json, read it, and report its content along with paths and goodies.

There are many modules that find the closest package.json, but usually they only report one of the useful things you may want to know. This one tries to give you all of the low-hanging fruit.

API

This module exports one function, which carries a few methods:

findUpPackageJson(from)

Like its .sync method (see below), but works asynchronously and returns a promise for the report.

findUpPackageJson.sync(from)

If from is false-y, start searching at the current working directory. Otherwise, it should be a local directory path, as a string, where to start.

Throws an Error with .name === 'ERR_FOUND_NO_PACKAGE_JSON' if no package.json is found.

Returns a report object with these keys:

  • fullPath: The full path to package.json.
  • dirPath: The full path to the directory where package.json was found.
  • text(): A getter for the text of the package.json, assuming UTF-8 encoding.
  • parse(): A getter for the revived (JSON-parsed) data from text, or false in case of a parsing error. Choosing false over undefined is so you can always safely access top-level properties.
  • isEsModule: Boolean, whether the project seems to be an ES module.
  • resolve(relPath): A function that naively resolves relPath relative to dirPath, without any actual file system interaction, thus not checking for existence, symlinks, or anything the like.
  • mainPath: The full path to the package's entrypoint.

findUpPackageJson.report(fullPath, rawContent, from)

Given the fullPath to a package.json file, and its rawContent as a string or Buffer, construct a report object and return it. For better debugging, you may provide from, the initial search directory.

findUpPackageJson.syncSoftFail(from)

A little wrapper around .sync that in case of an ERR_FOUND_NO_PACKAGE_JSON error just returns false.

Usage

:TODO:

Known issues

  • Needs more/better tests and docs.

 

License

ISC

About

A CommonJS module to find the closest `package.json`, read it, and report its content along with paths and goodies.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published