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


Binary wrapper that makes your programs seamlessly available as local dependencies
``sh`
npm install @lesjoursfr/bin-wrapper
`js
import path from "path";
import BinWrapper from "@lesjoursfr/bin-wrapper";
const base = "https://github.com/imagemin/gifsicle-bin/raw/main/vendor";
const bin = new BinWrapper()
.addSrc(${base}/macos/gifsicle, "darwin")${base}/linux/x64/gifsicle
.addSrc(, "linux", "x64")${base}/win/x64/gifsicle.exe
.addSrc(, "win32", "x64")
.setDest(path.join("vendor"))
.setUse(process.platform === "win32" ? "gifsicle.exe" : "gifsicle")
.setVersion(">=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'
Creates a new BinWrapper instance.
#### options
Type: Object
##### skipCheck
- Type: booleanfalse
- Default:
Whether to skip the binary check or not.
##### strip
- Type: number1
- Default:
Strip a number of leading paths from file names on extraction.
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 .addSrc().
#### arguments
- Type: Array['--version']
- Default:
Command to run the binary with. If it exits with code 0` it means that the
binary is working.
MIT © Kevin Mårtensson