Binary wrapper that makes your programs seamlessly available as local dependencies
npm install @mole-inc/bin-wrapper> Binary wrapper that makes your programs seamlessly available as local dependencies



```
$ npm install @mole-inc/bin-wrapper
`js
import {BinWrapper} from '@mole-inc/bin-wrapper';
const base = 'https://github.com/imagemin/gifsicle-bin/raw/master/vendor';
const bin = new BinWrapper()
.src(${base}/macos/gifsicle, 'darwin')${base}/linux/x64/gifsicle
.src(, 'linux', 'x64')${base}/win/x64/gifsicle.exe
.src(, 'win32', 'x64')
.dest(path.join('vendor'))
.use(process.platform === 'win32' ? 'gifsicle.exe' : 'gifsicle')
.version('>=1.71');
(async () => {
await bin.run(['--version']);
console.log('gifsicle is working');
})();
`
Get the path to your binary with bin.path:
`js`
console.log(bin.path);
//=> 'path/to/vendor/gifsicle'
> if you have the requested binary installed globally, this one will be used instead (if everything works)
Creates a new BinWrapper instance.
#### options
Type: Object
##### skipCheck
Type: booleanfalse
Default:
Whether to skip the binary check or not.
##### filename
Type: stringundefined
Default:
Set the binary filename.
##### gotOptions
Type: objectundefined
Default:
Any of the https.request options.
https://github.com/sindresorhus/got/tree/v11#options
Adds a source to download.
#### url
Type: string
Accepts a URL pointing to a file to download.
#### os
Type: string
Tie the source to a specific OS.
#### arch
Type: string
Tie the source to a specific arch.
#### destination
Type: string
Accepts a path which the files will be downloaded to.
#### binary
Type: string
Define which file to use as the binary.
Returns the full path to your binary.
#### range
Type: string
Define a semver range to check
the binary against.
Runs the search for the binary. If no binary is found it will download the file
using the URL provided in .src().
#### arguments
Type: Array['--version']
Default:
Command to run the binary with. If it exits with code 0` it means that the
binary is working.
This is a fork of kevva/bin-wrapper.
see LICENSE file.