noop(); pop(); map();

    get-bin-path
    TypeScript icon, indicating that this package has built-in type declarations

    7.0.0 • Public • Published

    Codecov Build Node 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

    import { getBinPathSync } from 'get-bin-path'
    
    // `binPath` is the absolute path to the current package's binary
    const binPath = getBinPathSync()
    // Test runner
    import test from 'ava'
    // Library to execute child processes / commands
    import execa from 'execa'
    import { getBinPath } from 'get-bin-path'
    
    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
    

    This package is an ES module and must be loaded using an import or import() statement, not require().

    Usage

    This returns the current package's binary absolute path:

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

    This can be either synchronous or asynchronous:

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

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

    import { getBinPathSync } from 'get-bin-path'
    
    const binPath = getBinPathSync({ name: 'binary-name' })

    The current directory can be overridden (for example with monorepos):

    import { getBinPathSync } from 'get-bin-path'
    
    const binPath = getBinPathSync({ cwd: '/currentDirectory' })

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

    getBinPathSync(options?)

    options: object
    Returns: string | undefined

    getBinPath(options?)

    options: object
    Returns: Promise<string | undefined>

    options

    Type: object

    options.name

    Type: string
    Default: package.json name property

    Name of the binary. Only needs to be specified when the package exports several binaries.

    options.cwd

    Type: string
    Default: Current directory

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

    This is useful when using monorepos.

    See also

    • execa: process execution for humans

    Support

    For any question, don't hesitate to submit an issue on GitHub.

    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!

    Thanks go to our wonderful contributors:


    ehmicky

    💻 🎨 🤔 📖

    Daniel Stockman

    💻

    Kabir Baidhya

    💻

    Install

    npm i get-bin-path

    Homepage

    git.io/fjKse

    DownloadsWeekly Downloads

    1,339

    Version

    7.0.0

    License

    Apache-2.0

    Unpacked Size

    25.1 kB

    Total Files

    6

    Last publish

    Collaborators

    • ehmicky