sfxbundler
v1.0.4
Published
Node module wrapper around the touchifyapp/sfx binaries.
Downloads
72
Maintainers
Readme
node-sfxbundler
node-sfxbundler
is a Node module wrapper around the touchifyapp/sfx binary.
Getting Started
node-sfxbundler
works as a wrapper around the sfx
bundler.
It abstracts the commands' switches with JS object abstraction.
Installation
node-sfxbundler
can be installed using NPM:
$ npm install sfxbundler --save
Usage
First import node-sfxbundler
in your project:
var sfxbundler = require("sfxbundler");
Then use sfxbundler's commands:
sfxbundler.bundle("path/to/my.exe", "path/to/dir", { id: "my.app.id", version: "1.2.3", arch: "i386" });
node-sfxbundler
uses native Promise
to wrap asynchronous operations and resolves with the result of the command:
sfxbundler.bundle("path/to/my.exe", { certificate: "path/to/my/cert.pfx", password: "*******" });
.then(result => {
result.code // The sfx bundler exit code.
result.stdout // The sfx bundler stdout content.
result.stderr // The sfx bundler stderr content.
});
Command-line
node-sfxbundler
can work as a simple wrapper around touchifyapp/sfx.
# Install module globally
$ npm install sfxbundler -g
# Run module from command line
$ sfxbundler -exe path/to/sfx.exe -dir path/to/dir -id my.app.id
Documentation
sfxbundler.bundle(dest: string, dir: string, [options: BundleOptions]): Promise
Bundle a new sfx Executable using sfx bootstrapper.
/** Bundle Options */
export interface BundleOptions extends RunOptions {
/** A unique ID for the result SFX. (default: from dest name). */
id?: string;
/** The Bootstrapper architecture. */
arch?: "i386" | "x64";
/** The Bootstrapper Type (default: `sfx`). Set `sfxv` for verbose extraction. */
type?: "sfx" | "sfxv";
/** The program to run in the project directory (default: auto-detect). */
run?: string;
/** The absolute destination path to extract project in (default: `${os.tempdir()}/${id}`). */
dest?: string;
/** Arguments to pass to executable. */
args?: string[];
/** The program version to check for updates. */
version?: string;
/** The compression level. */
compress?: number;
/** Print verbose success and status messages. This may also provide slightly more information on error. */
verbose?: boolean;
}
sfxbundler.run(args: string[], [runOptions: RunOptions]): Promise
Run SFX bundler by using raw arguments.
/** Run Options */
export interface RunOptions {
/** The current working directory to execute sfx bundler binary on. */
cwd?: string;
/** The inner spawn stdio option. */
stdio?: string;
}
Contribute
Install Project dependencies
$ npm install
Build project
$ npm run build