Skip to content

Repository files navigation

Setil - single executable applications utility

⚠️ SUPER EXPERIMENTAL

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"node:path";constinput=readFileSync("src/index.js","utf-8");constoutput=`./app.exe`;awaitsetil.compile(input,output);// Enjoy!

Usage

compile(input: string, rawOutput: string, rawOptions?: Partial<Options>): Promise<Result>

  • input - Since SEA doesn't allow imports after compilation, you can use rollup to bundle your project into a single file. You can also check rollup-plugin-jsative if you are using native modules.
  • output (rawOutput) - The output path of your application, e.g. ./program.exe.
  • options (rawOptions) - Any additional customization, checkout Options

Options

PropertyTypeDefaultDescription
logLevelLogLevel"warn"Specifies the desired log level for the application.
disableSeaWarningbooleanfalseDisables (node:16104) ExperimentalWarning: Single executable application is an experimental feature and might change at any time
useSnapshotbooleanfalseStartup Snapshots
useCodeCachebooleanfalseV8 Code Cache
nodeExePathstring | undefinedprocess.execPathThe path where the blob should be injected into (Optional)
noSignbooleantrueControls whether to remove the original Node.JS signature.
preInject(path: string) => any | PromiseNoop (no operation)A hook executed just before the blob is injected into the application can be used to modify the nodeExePath file.

Types

Result

PropertyTypeDescription
inputstringThe input code used.
outputPathstringThe output path of the SEA.
nodeExePathstringThe nodeExePath used.
tempDirstringThe 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

About

node.js SEA utility

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages