sbjs
sbjs on Hacker News
It's a highly optimized and extremely simple yet robust implementation of it, sure. Is that reason to dismiss it?
Consider Vite's node-side HMR implementation. It creates its own module system on top of Node's native module system, using `node:vm`. So its modules are really second class citizens that have to be glued to the native module system.
This library used to do that, but moved to using Node's native module hooks, so that there's nothing magical going on, and you can still use the `import` expression to import your HMR modules, they just auto-update when saving.
That's orthogonal, and in fact you probably would use TypeScript to translate JSX to JS when using this library. What this does is (a) provide a Node.js module hook to call your transpile function when it encounters TSX/JSX files, and (b) provide a Node.js module that lets you remap imports, including "react/jsx-runtime" if you want a different JSX implementation.
It's English, it just looks like regex. In English, the ? belongs inside the parens in this case.
Just updated the text to be hopefully much clearer.
Oh no, I must have mis-explained it.
The file `site/myfile.js` does exist. All FileTree does is recursively load all files in a dir into memory.
The `useTree` module hook does two things:
* Pulls the file from memory when loading it instead of from disk
* Adds a cache busting query string when resolving it for invalidation
Combined with tree.watch(), this essentially allows you to add a very lightweight but extremely accurate hot module replacement system into Node.js
1. const tree = new FileTree('src', import.meta.url)
2. tree.watch().on('filesUpdated', () => import(tree.root + '/myfile.js'))
3. registerHooks(useTree(tree))
4. Save src/myfile.js and see it re-executed
Just added some code samples, thanks for the suggestion.
Posted by
sbjs on Tuesday May 06, 2025 @01:09PM
from the show-hn dept.
https://immaculata.dev/
Hi HN. I can't stop trying new ways to write my websites, and the web world is ever evolving. For both reasons, I stopped trying to write a build tool for developing front-ends, and wrote some helpers for Node.js that ideally would be part of any front-end build tool. They're high-enough level that you could use them directly, and low-enough level that you could build a framework on top of them...
Posted by
sbjs on Monday May 05, 2025 @05:16PM
from the immaculata.dev dept.
Posted by
sbjs on Monday May 05, 2025 @12:13PM
from the immaculata.dev dept.
Can't remember, was like 10 years ago. But basically after I finished mastering the last feature I needed to, probably macros.
To clarify, I don't mean that Rich didn't also have extremely good reasons to make Clojure, given he was using Java (and maybe C++) in 2007. They're not the best languages now, but they were so broken back then that they practically caused the language revolution that caused Clojure and Go and Node etc to flourish.
I thought it was self explanatory. It had new idioms I had not yet learned and internalized, so I fully absorbed it. When that was finished, I needed something else to do the same thing with. It's like listening to a song on repeat 10-100 times (depending on the song) when you first hear it. You get everything you can out of it and move on when it's empty.
I guess that confirms my theory.
Posted by
sbjs on Saturday May 03, 2025 @10:29AM
from the thesoftwarephilosopher.com dept.
Posted by
sbjs on Wednesday April 30, 2025 @11:06AM
from the thesoftwarephilosopher.com dept.
Posted by
sbjs on Tuesday April 29, 2025 @09:09PM
from the thesoftwarephilosopher.com dept.
Posted by
sbjs on Tuesday April 29, 2025 @02:58PM
from the immaculata.dev dept.
Thanks, yeah it sounds like we have similar goals. Where's your project so I can take a look?
Posted by
sbjs on Monday April 28, 2025 @04:50PM
from the immaculata.dev dept.
Posted by
sbjs on Monday April 21, 2025 @08:33AM
from the show-hn dept.
Posted by
sbjs on Wednesday April 02, 2025 @12:31PM
from the show-hn dept.
Posted by
sbjs on Monday March 17, 2025 @02:37PM
from the show-hn dept.
Your patience with Michael Saboff is incredible.
Posted by
sbjs on Monday February 10, 2025 @01:39PM
from the thesoftwarephilosopher.com dept.
Infeasible not because it's difficult but because you have more awareness of your limited time that you have to prioritize, and maintaining software falls lower and lower on the list of things you should do.
Posted by
sbjs on Saturday February 08, 2025 @01:40PM
from the thesoftwarephilosopher.com dept.
Posted by
sbjs on Wednesday November 08, 2023 @08:45AM
from the show-hn dept.
https://github.com/sdegutis/immaculatalibrary.com
Hi everyone. This is a project I've been evolving slowly for almost 4 years now. I'm finally happy with the technical solutions. It hasn't been extracted into a lib yet bc there was no demand for it. There's no readme because it's been changing so drastically, so here's a few notable points:1. The core is a node app under src/ that's 290 lines of typescript, which uses chokidar for...
I posted an example in the thread.
Hi everyone. I know that's a bold statement you'd expect from a new coder and not an experienced guy unless it's the real deal. And I've got so many decades of experience that I'm really looking forward to hearing feedback :)