From 33dc04dd00181b54802a1f3165355051f6921003 Mon Sep 17 00:00:00 2001 From: Mavdol Date: Thu, 29 Jan 2026 20:03:47 +0100 Subject: [PATCH 1/3] Update roadmap --- ROADMAP.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/ROADMAP.md b/ROADMAP.md index 52b5f70..a703e62 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -87,4 +87,24 @@ On failure: --- - +## v0.5.0: Node.js Ecosystem Compatibility + +**Status:** 🗓️ Planned + +**Goal:** Enable natural Node.js development patterns and improve npm package compatibility in WASM. + +**Polyfills needed:** + +- [ ] **path:** Use `path-browserify` and alias `import path from 'path'`. +- [ ] **os:** Custom minimal polyfill for `import os from 'os'`. +- [ ] **process:** Custom polyfill for `process.env` mapping to Capsule's env API. +- [ ] **url:** Alias Node's `import { URL } from 'url'` to native Web `URL` class. +- [ ] **buffer:** Use `buffer` package to polyfill Node.js `Buffer` class → `Uint8Array`. +- [ ] **events:** Use `events` package to polyfill `EventEmitter`. +- [ ] **stream:** Use `readable-stream` for Node.js stream compatibility. +- [ ] **fs:** Map `import fs from 'fs'` to WASI file operations: + - `fs.readFile()` → Capsule's `readText()`/`readBytes()` + - `fs.writeFile()` → Capsule's `writeText()`/`writeBytes()` + - `fs.readdir()` → Capsule's `list()` + - Document supported subset vs. full Node.js `fs` API +--- From 143330bb218c0d40c56bf158ff257d1d2b7cae53 Mon Sep 17 00:00:00 2001 From: Mavdol Date: Fri, 30 Jan 2026 01:13:54 +0100 Subject: [PATCH 2/3] Update roadmap with more details for process polyfill --- ROADMAP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ROADMAP.md b/ROADMAP.md index a703e62..a712515 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -97,7 +97,7 @@ On failure: - [ ] **path:** Use `path-browserify` and alias `import path from 'path'`. - [ ] **os:** Custom minimal polyfill for `import os from 'os'`. -- [ ] **process:** Custom polyfill for `process.env` mapping to Capsule's env API. +- [ ] **Global process:** Comprehensive `process` polyfill (env, argv, cwd, exit, nextTick) injected as a global via esbuild. - [ ] **url:** Alias Node's `import { URL } from 'url'` to native Web `URL` class. - [ ] **buffer:** Use `buffer` package to polyfill Node.js `Buffer` class → `Uint8Array`. - [ ] **events:** Use `events` package to polyfill `EventEmitter`. From b10ed3b7d82cbed72d217299c0ce006463320e5f Mon Sep 17 00:00:00 2001 From: Mavdol Date: Fri, 30 Jan 2026 12:23:19 +0100 Subject: [PATCH 3/3] Update roadmap wording --- ROADMAP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ROADMAP.md b/ROADMAP.md index a712515..aa1f65d 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -87,7 +87,7 @@ On failure: --- -## v0.5.0: Node.js Ecosystem Compatibility +## v0.5.0: Node.js Ecosystem Compatibility Extended **Status:** 🗓️ Planned