vis-language-typescript-bun — a managed TypeScript/Bun REPL exposed through
the generic language facade (repl_start / repl_eval / repl_stop) plus
run_tests -> bun test. Activates only when the workspace looks like a Bun
project. The REPL is a persistent bun subprocess running a line-framed
JSON eval server with REAL REPL semantics (persistent globals, top-level
await, cache-busted reload(path)), registered as a session resource so it
shows in ctx + the footer and is stoppable by id. The point is the Clojure
reloaded workflow for TS: the app STARTS from the repl, lives in the repl,
and its state is printable — no debugger needed.
vis-language-typescript-bun — a managed TypeScript/Bun REPL exposed through the generic language facade (repl_start / repl_eval / repl_stop) plus run_tests -> `bun test`. Activates only when the workspace looks like a Bun project. The REPL is a persistent `bun` subprocess running a line-framed JSON eval server with REAL REPL semantics (persistent globals, top-level await, cache-busted `reload(path)`), registered as a session resource so it shows in ctx + the footer and is stoppable by id. The point is the Clojure reloaded workflow for TS: the app STARTS from the repl, lives in the repl, and its state is printable — no debugger needed.
A MANAGED TypeScript (Bun) REPL: a persistent bun subprocess running a
line-framed JSON eval server — one request per stdin line ({"code": ...}
or {"op": "ping"}), one response per stdout line
({ok, out, err, value, data, type, exc}). The server (a .js resource shipped
with this pack, passed via bun -e) rewrites top-level const/let/var/
function/class declarations to globalThis assignments and imports to dynamic
await import, so REPL globals PERSIST across evals and top-level await just
works. stdout/stderr are captured permanently server-side, so a live
system's async logs ride back on the next response instead of corrupting the
protocol. One process per dir; the Process handle is cached so teardown is
clean.
A MANAGED TypeScript (Bun) REPL: a persistent `bun` subprocess running a
line-framed JSON eval server — one request per stdin line ({"code": ...}
or {"op": "ping"}), one response per stdout line
({ok, out, err, value, data, type, exc}). The server (a .js resource shipped
with this pack, passed via `bun -e`) rewrites top-level const/let/var/
function/class declarations to globalThis assignments and imports to dynamic
`await import`, so REPL globals PERSIST across evals and top-level await just
works. stdout/stderr are captured permanently server-side, so a live
system's async logs ride back on the next response instead of corrupting the
protocol. One process per dir; the `Process` handle is cached so teardown is
clean.Resolve WHICH bun binary launches the REPL / tests, mirroring how the Python
pack picks uv / poetry / venv. Bun has no per-project interpreter zoo: it is
bun on PATH, else the official installer location (~/.bun/bin/bun).
Resolve WHICH bun binary launches the REPL / tests, mirroring how the Python pack picks uv / poetry / venv. Bun has no per-project interpreter zoo: it is `bun` on PATH, else the official installer location (~/.bun/bin/bun).
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |