https://github.com/touchifyapp/node-sfxbundler
Node module wrapper around the touchifyapp/sfx binaries.
https://github.com/touchifyapp/node-sfxbundler
Last synced: about 1 year ago
JSON representation
Node module wrapper around the touchifyapp/sfx binaries.
- Host: GitHub
- URL: https://github.com/touchifyapp/node-sfxbundler
- Owner: touchifyapp
- License: mit
- Created: 2017-05-10T01:39:56.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-25T17:52:14.000Z (about 9 years ago)
- Last Synced: 2025-03-13T10:39:19.614Z (over 1 year ago)
- Language: TypeScript
- Size: 13.7 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-sfxbundler
`node-sfxbundler` is a Node module wrapper around the [touchifyapp/sfx](https://github.com/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:
```shell
$ npm install sfxbundler --save
```
### Usage
First import `node-sfxbundler` in your project:
```javascript
var sfxbundler = require("sfxbundler");
```
Then use sfxbundler's commands:
```javascript
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:
```javascript
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](https://github.com/touchifyapp/sfx).
```shell
# 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.
```typescript
/** 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.
```typescript
/** 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
```shell
$ npm install
```
### Build project
```shell
$ npm run build
```
## License
[MIT](https://github.com/touchifyapp/node-sfxbundler/blob/master/LICENSE)