« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/homepage-layout.js
AgeCommit message (Collapse)Author
18 hoursdata, infra: auto-inherit yaml document specs(quasar) nebula
18 hoursdata, infra: better CacheableObject prototype inheritence(quasar) nebula
Basically, properties (as written in source code) are only registered once EVER, instead of "also" on subclasses, which was previously the case - we were literally copying over the descriptors and then re-evaluating as though they were new. That's the goal, but to make it happen, we had to redo how default property values are initialized. Things no longer self- prepare by making a "storage" for all their cached values with null, or defaults, filled in - instead they create a new object which inherits those defaults from their prototype. This object respectively has the prototype of the superclass' prototype's defaults, and so on. A nice effect is that validating defaults against update.validate specs now happens during prototype finalization, instead of every time any instance is instantiated. We also had to do the same kind of inheritence shenanigans with the full propertyDescriptors specs themselves. The real-world performance boost for this is probably more or less zero RIGHT NOW, because Thing subclassing is used crazy sparingly (and there's still work to make it really nice). But if [[Prototype]] chains don't really take memory, then possibly this cleans up a lot of extremely similar objects where every new Thing property multiplies memory usage across all instances of that thing, regardless how few actually set a value. Maybe! Who knows what V8 really optimizes, but maybe!
2025-07-10data: isAlbum, isTrack, isArtist, isCommentaryEntry, etc(quasar) nebula
2025-05-27eslint: trivial fixes(quasar) nebula
2025-03-22data: HomepageLayout: always expose array for navbarLinks(quasar) nebula
2025-02-12data: HomepageLayout: notice missing section before rows(quasar) nebula
2025-02-12content, data: generateWikiHomepageAlbum{Carousel,Grid}Row(quasar) nebula
2025-02-12content, data: generateWikiHomepageActionsRow(quasar) nebula
2025-02-12data: HomepageLayout: make 'type' expose-only(quasar) nebula
2025-02-12data: HomepageLayoutRow: nice util.inspect(quasar) nebula
2025-02-12data: homepage layout sections(quasar) nebula
2025-02-12data: HomepageLayout: move yaml loading spec to top class(quasar) nebula
2025-01-11data: misc eslint unused var fixes(quasar) nebula
2025-01-11data: use soupyFind everywhere(quasar) nebula
also notes where remaining directly-provided wikiData() props are used
2024-01-30data, yaml: store data step info on Thing constructors(quasar) nebula
2024-01-30data, yaml: mark ignored fields on `fields`(quasar) nebula
2024-01-30data: tidy things folder & imports, nicer fields yaml spec(quasar) nebula
2024-01-30yaml, data: store document specs statically on Thing subclasses(quasar) nebula
2024-01-06data: various simpleString -> contentString(quasar) nebula
2024-01-03validators: oneOf -> anyOf(quasar) nebula
2023-11-04data: wikiData: port to templateCompositeFrom syntax(quasar) nebula
2023-10-18data: add [Thing.friendlyName] property to some Thing subclasses(quasar) nebula
2023-10-01data, test: refactor utilities into own file(quasar) nebula
Primarily for more precies test coverage mapping, but also to make navigation a bit easier and consolidate complex functions with lots of imports out of the same space as other, more simple or otherwise specialized files.
2023-09-28data: misc minor fixes(quasar) nebula
2023-09-20data: fix many validation errors(quasar) nebula
2023-09-19data: declare {update} in higher-context locations(quasar) nebula
2023-09-16data: more WIP syntax updates(quasar) nebula
2023-09-15data: miscellaneous composite template updates(quasar) nebula
2023-09-07data: roll paired "byRef" and "dynamic" properties into one(quasar) nebula
2023-09-07data: import Thing.common utilities directly(quasar) nebula
Also rename 'color' (from #cli) to 'colors'.
2023-09-07data, infra: import validators directly(quasar) nebula
2023-09-06data: dynamicThingFromSingleReference -> resolvedReference(quasar) nebula
2023-09-06data: dynamicThingsFromReferenceList -> resolvedReferenceList(quasar) nebula
2023-08-19clean up imports & miscellaneous metastructures across codebase(quasar) nebula
2023-04-08html: drastically simplify template/slot system(quasar) nebula
2023-01-01specify homepage navbar links & order in data(quasar) nebula
...rather than just making a guess off the order files are listed by directory access, and using out-of-place 'Show in Navigation Bar'
2022-12-28montage -> carousel(quasar) nebula
2022-12-22many homepage carousel shenanigans(quasar) nebula
2022-11-28divide things.js into modular files (hilariously)(quasar) nebula