| ▲ | colinmcd 5 hours ago | ||||||||||||||||
Colin here, creator of Nub. I’ve had the general shape of this in mind for years. Nub runs your code with stock `node`, augmented with a `--require` preload hook[0] that adds a transpiler (oxc-powered, packaged as a Node-API add-on), registers a module resolution hook[1], and injects polyfills as needed for APIs like `Worker`, `Temporal`, etc. All purely additive, your code ultimately runs using Node’s actual engine & stdlib implementations. [0] https://nodejs.org/api/cli.html#-require-module [1] https://nodejs.org/api/module.html#moduleregisterhooksoption... | |||||||||||||||||
| ▲ | eyelidlessness 3 hours ago | parent | next [-] | ||||||||||||||||
I’m surprised to see this using a `--require` hook (rather than `--import`). Maybe something’s changed significantly since I was looking into building some similar functionality… but it makes me wonder about nuances in nub’s ESM support. (When I was investigating this it was very early in Node’s `--import` story, but there were several edge cases with the more common ESM-to-CJS approaches that I wanted to address. Most were probably exceedingly niche concerns, but I’d expect top-level await to affect a meaningful subset of users.) | |||||||||||||||||
| |||||||||||||||||
| ▲ | awaseem 3 hours ago | parent | prev [-] | ||||||||||||||||
I saw this on twitter and loved it, such a good move on your part Colin. Hope the project picks up tons of steam! | |||||||||||||||||