You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Embeddable in-process start (no spawn) so jspod can wrap JSS on mobile/single-process runtimes #58
jspod is the friendly wrapper on JSS — defaults, banner, seedPodFiles() (welcome/signin/account/docs pages), and bundle install. But start() boots JSS by spawning the jss binary:
Single-process runtimes can't fork a CLI binary — most importantly nodejs-mobile (the embedded Node in the Android app, js-pod/android). So that app had to bypass jspod entirely and call javascript-solid-server's createServer() directly. The cost: it loses all of jspod's onboarding/bundling and drifts off jspod's JSS version (the app is pinned to JSS 0.0.196 while jspod is on 0.0.201).
Ask
Add an in-process mode so jspod can run JSS without spawning, letting mobile/Electron/tests use the same wrapper:
In-process start — when spawn isn't viable (opt-in flag, or auto-detect), map the existing jssArgs to createServer(options).listen({ port, host }) from javascript-solid-server instead of spawn('jss'). The option set is already computed; this is "call the library instead of the binary."
Callable install — extract the bundle-install logic out of the CLI path (spawn(process.execPath, [CLI_SCRIPT, 'install', …])) into an exported function jspod can invoke in-process.
seedPodFiles() is already a function and the package ships the html + apps/, so onboarding + an offline-first default bundle seed without network.
Payoff
The Android app (and any embedder) drops its raw-createServer path + hand-rolled bundle fetch and just calls jspod → inherits onboarding, bundling, and jspod's JSS pin (fixes the version drift).
jspod stays the single wrapper for every surface: desktop, Termux, mobile, Electron, tests.
Activity
chore: bump JSS pin 0.0.196 -> 0.0.201 (match jspod, get latest)
feat: seed jspod onboarding pages on first run (interim)