Skip to content

nx.js v1.0.0-beta.2

Choose a tag to compare

@github-actions github-actions released this 07 Jun 06:02
· 32 commits to main since this release

Highlights

  • Adds native ES module loading for static import and filesystem-backed dynamic import(), with URL-based resolution for romfs:, sdmc:, nxjs:, relative paths, module caching, cycles, import.meta.url, and import.meta.main.
  • Adds nxjs.ini, read before V8 startup, for configuring JIT mode, V8 flags, heap limits, renderer mode, socket settings, and console theme/options.
  • Adds the Canvas-backed on-screen console using headless xterm.js, including ANSI colors, scrollback, console.canvas, isolated new Console() instances, and declarative theming.
  • Adds explicit argv[1] entrypoint support so a shared runtime can launch loose .js files or mount another app NRO's RomFS.
  • Introduces slim app packaging: nxjs-nro and nxjs-nsp now default to tiny launchers/forwarders that chainload a shared runtime from sdmc:/nx.js/; --fat preserves self-contained packages.

Fixes And Packaging

  • Switch.Application.self now resolves to the launched app instead of the shared runtime in slim NRO/NSP modes.
  • The GPU screen renderer now uses SkBlendMode::kSrc, fixing transparent-pixel blending artifacts.
  • V8 heap sizing is now memory-regime-aware, preventing application-mode FatalOOM while keeping applet mode bounded.
  • The slim bootstrap launcher uses the nx.js default icon when an app does not provide one.
  • Device C++ builds were cleaned up to be warning-free.

Full Changes