I arrive the 24th, speak the 25th, and leave the 27th.
If you’re around and want to chat about Small Web, Kitten & Domain, let me know and maybe we can arrange a small get-together if there’s enough interest.
In case you’re wondering how little old Kitten performs in the tests of the Big Boys…
(And that’s from a development build of a Domain page, not a deployment build so no compression, live reload script in page, etc.)
Turns out it’s pretty easy to ace such tests when you’re not spending cycles and code doing horrible things to people in your web pages (like tracking their every move and attempting to exploit their behaviour for profit). 🤔
Breaking change²: data is now evaluated in virtual machine contexts.
If you were persisting custom objects³ and referencing classes from global scope (globalThis) to have your objects keep their types when read, you must now explicitly register your list of custom classes using the new classes property of the options object when calling JSDB.open().
This is quite a major change internally but since #JSDB has 100% code coverage, I’m pretty certain I didn’t break anything else.
Then again, JSDB had 100% code coverage before this too and the issue this update fixes was around for several years. (Likely because no one, including me, was really persisting custom objects… something I’m now starting to use while building #Domain¹.)
Just goes to stress that 100% code coverage in no way means “bug free.” ;)
Right, I just updated Kitten so it includes JSDB version 3.0.0 and it now has built-in support for database app modules.
A database app module is an app module¹ for your database where you can provide a schema for it using JavaScript class hierarchies and register those classes with the database so your custom objects maintain their types when they are written and read in.
Join me at 5PM Irish time (UTC+1) today for a look at what’s been happening with Kitten¹ and Domain² in the past month. I’ll be reviewing some of the cow paths I’ve been paving and the patterns that are emerging in Kitten as I build Domain using it.
New stuff includes:
• slots in components
• layout components
• app modules
• @small/kitten library
• type-safe databases in JSDB with JSDoc and custom classes