npm.io
0.0.1-a • Published 2 years ago

setil

Licence
Version
0.0.1-a
Deps
4
Size
23 kB
Vulns
0
Weekly
0

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
Resources