npm

Need private packages and team management tools?Check out npm Orgs. »

get-bin-path

3.0.0 • Public • Published

Codecov Travis Node Gitter Twitter Medium

Get the current package's binary path (using the package.json bin field).

This is useful when testing a package's binary. Using get-bin-path (as opposed to hard-coding the path to the binary):

  • validates that the package.json bin field is correctly setup.
  • decouples the binary path from the tests, which allows moving the file without rewriting the tests.

Examples

const { getBinPathSync } = require('get-bin-path')
 
// `binPath` is the absolute path to the current package's binary
const binPath = getBinPathSync()
const { getBinPath } = require('get-bin-path')
// Test runner
const test = require('ava')
// Library to execute child processes / commands
const execa = require('execa')
 
test('Binary file should return "true"', async t => {
  const binPath = await getBinPath()
  const { stdout } = await execa(binPath)
  t.is(stdout, 'true')
})

Install

npm install get-bin-path

Usage

This returns the current package's binary absolute path:

const { getBinPathSync } = require('get-bin-path')
 
const binPath = getBinPathSync()

This can be either synchronous or asynchronous:

const { getBinPath } = require('get-bin-path')
 
const asyncFunc = async () => {
  const binPath = await getBinPath()
}

If there are several binaries, you can choose between them:

const { getBinPathSync } = require('get-bin-path')
 
const binPath = getBinPathSync('binary-name')

The current directory can be overridden:

const { getBinPathSync } = require('get-bin-path')
 
const binPath = getBinPathSync('binary-name', { cwd: '/currentDirectory' })

When no package.json or binary can be found, undefined is returned instead.

getBinPathSync(binaryName?, options?)

binaryName: string
options: object
Returns: string | undefined

getBinPath(binaryName?, options?)

binaryName: string
options: object
Returns: Promise<string | undefined>

options

Type: object

options.cwd

Type: string
Default: Current directory

Override the current directory, which is used when retrieving the package.json.

See also

  • execa: process execution for humans

Support

If you found a bug or would like a new feature, don't hesitate to submit an issue on GitHub.

For other questions, feel free to chat with us on Gitter.

Everyone is welcome regardless of personal background. We enforce a Code of conduct in order to promote a positive and inclusive environment.

Contributing

This project was made with ❤️. The simplest way to give back is by starring and sharing it online.

If the documentation is unclear or has a typo, please click on the page's Edit button (pencil icon) and suggest a correction.

If you would like to help us fix a bug or add a new feature, please check our guidelines. Pull requests are welcome!

ehmicky
ehmicky

💻 🎨 🤔 📖

install

npm i get-bin-path

Downloadsweekly downloads

89

version

3.0.0

license

Apache-2.0

homepage

git.io

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability