sfxbundler
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

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

License

MIT

Dependents (0)

Package Sidebar

Install

npm i sfxbundler

Weekly Downloads

10

Version

1.0.4

License

MIT

Last publish

Collaborators

  • mluce