Continuing from this other thread: Write nodes using Typescript + Vue 3 + JSON Schemas for runtime validations
You can now develop nodes using Typescript and build them with Vite. This will soon be released as a standalone package, but you can preview it here today.
I built a core library that unlocks a modern API for authoring nodes with class-based definitions and JSON Schema. Take a look
Today’s my birthday, but I’m the one giving something back. 
I hope this resonates with anyone building a product on top of Node-RED.
5 Likes
Great Stuff and a really nice API for creating nodes - well done!
I think there is a learning for all of us developing for NR: the current method of creating node packages doesn't fly with the users of NR.
Encapsulating functionality into smaller units is currently possible either using a) sub-flows or b) extended JS code in function nodes, c) using node packages or d) extending NR itself.
Of those, the only two available for users of NR are sub-flows and function nodes. But both are limited and not as broad as creating a node package or extending NR.
Clarification: "users" of NR are those that create "flows as code" and don't, themselves, create code using JS. Hence these "users" are not able to create their own node packages.
Your work is aimed at developers of NR packages who are capable of coding JS or using third-party editors to create code. Users of NR aren't necessarily able to do that. For these "users", their editor is the NR frontend, VScode or Emacs or Vi or NotePad are developer tools unknown to them.
So I would suggest that using this as a basis for a frontend components inside NR would be a good next step. Especially as you have removed the need to know how the HTML templates work - which is great.
I've tried doing this with the NodeDev package but it's definitely not perfect. One thing is does allow is importing of existing node packages that then can be modified inside NR and then can be reinstalled into NR - thus "users" can begin learning how to develop node packages for NR inside NR, no third-party editor required.
Happy birthday. Have a great day