Thanks for your interest in contributing!
git clone https://github.com/ScelarOrg/Nodepod.git
cd Nodepod
npm installnpm run type-check # TypeScript validation (must pass with 0 errors)
npm run build:lib # Build ESM + CJS library bundles
npm run build:types # Generate type declarations
npm run build:publish # Full publish build (lib + types)
npm test # Run test suite
npm run test:watch # Run tests in watch modesrc/— All source code (TypeScript)polyfills/— Node.js built-in module implementationsshell/— Bash-like shell interpreterpackages/— npm package managementthreading/— Worker-based process modelsdk/— Public SDK layer (Nodepod, NodepodFS, NodepodTerminal, NodepodProcess)
docs/— Architecture documentationstatic/— Service Worker for HTTP interception
- Fork the repo and create a branch from
main - Make your changes
- Ensure
npm run type-checkpasses with 0 errors - Ensure
npm run build:libsucceeds - Open a PR with a clear description of the change
- All polyfill files in
src/polyfills/are named to match their Node.js module (e.g.,fs.ts,http.ts) - EventEmitter methods must use
this._reg()(lazy init pattern) — never accessthis._registrydirectly - ESM-to-CJS replacement strings must include trailing semicolons
- CORE_MODULES polyfills must never use
asyncfunctions - The shell (
src/shell/) usesRecord<string, string>for env (notMap)
By contributing, you agree that your contributions will be licensed under the MIT + Commons Clause License.