setil
v0.0.1-a
Published
node.js SEA utility
Downloads
3
Readme
Setil - single executable applications utility
The goal of this package is to help you build node.js SEA with ease.
CLI Example
CLI usage is not implemented yet.
Code Example
import { compile } from "setil";
import { readFileSync } from "node:fs";
import { resolve } from "nod:path";
const input = readFileSync("src/index.js", "utf-8");
const output = `./app.exe`;
await setil.compile(input, output);
// Enjoy!
Usage
compile(input: string, rawOutput: string, rawOptions?: Partial<Options>): Promise<Result>
- input - The input code, as SEA doesn't accept imports after compilation, you can use rollup to bundle your project into a single file. You can also check rollup-plugin-jsative if you use native modules.
- output (rawOutput) - The output path of your application, e.g.
./program.exe
. - options (rawOptions) - Any additional customization, checkout Options
Options
| Property | Type | Default | Description |
| ------------------- | ------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| logLevel
| LogLevel | "warn" | Specifies the desired log level for the application. |
| disableSeaWarning
| boolean | false | Disables (node:16104) ExperimentalWarning: Single executable application is an experimental feature and might change at any time
|
| useSnapshot
| boolean | false | Startup Snapshots |
| useCodeCache
| boolean | false | V8 Code Cache |
| nodeExePath
| string | undefined | process.execPath | The path where the blob should be injected into (Optional) |
| noSign
| boolean | true | Controls whether to remove the original Node.JS signature. |
| preInject
| (path: string) => any | Promise | Noop (no operation) | A hook executed just before the blob is injected into the application can be used to modify the nodeExePath file. |
Types
Result
| Property | Type | Description |
| ------------- | ------ | ----------------------------- |
| input
| string | The input code used. |
| outputPath
| string | The output path of the SEA. |
| nodeExePath
| string | The nodeExePath
used. |
| tempDir
| string | The temporary directory used. |
LogLevel
One of debug
, warn
or silent
- debug - Show debug logs
- warn - Show warnings only (default)
- silent - Don't print anything