Releases: c-kick/DOMule
v3.0.0 - Module Architecture Restructure
🎉 DOMule v3.0.0
Major architectural restructuring introducing a three-tier module system (core, util, module) with improved coordination capabilities.
⚠️ Breaking Changes
Module paths renamed:
hnl.domscanner.mjs→core.scanner.mjshnl.dynamicimports.mjs→core.loader.mjshnl.eventhandler.mjs→core.events.mjshnl.logger.mjs→core.log.mjshnl.helpers.mjs→util.observe.mjs,util.dom.mjs, etc.hnl.debounce.mjs→util.debounce.mjshnl.colortool.mjs→util.color.mjs
Named exports changed:
import {hnlLogger}→import {logger}import eventHandler→import events
Backward compatibility: Old imports work with deprecation warnings until v4.0.0.
✨ New Features
- Module Registry - Inter-module coordination without tight coupling
- Module API Convention - Standardized
api()function for module interaction - Telemetry Dashboard - Performance monitoring with
?debug=true(disable with&telemetry=false) - Module Self-Destruction - Cleanup API via
ModuleRegistry.unregister() - Enhanced Lazy Loading - IntersectionObserver with automatic fallback
- Minified-first - Policy for attempting to load/import minified modules first, if they exist (and if not in debug mode)
🚀 Improvements
- Automatic minification with unminified fallback
- Promise.allSettled polyfill for older browsers (Safari 10.1-12, Firefox 60-70)
- Element state tracking for multi-module dependencies
- CSP/nonce support via global
SITE_NONCE - Comprehensive JSDoc with @Version tags
- Almost all code reworked/rewritten/revised
- Better caching (parameter appending)
📚 Documentation
- Complete performance comparison tables
- Inter-module communication guide
- Migration guide with examples
- Browser support clarifications (Safari 12.1+ for IntersectionObserver)
🗓️ Deprecation Timeline
- v3.0.0 - Old imports work, console warnings
- v3.3.0 - Final warnings, loud mode
- v4.0.0 - Breaking removal
📦 Installation
Download the source and see "Quick Start" section in README.md.
🔗 Resources
Full README
Migration Guide
Module Template
💬 Feedback
Questions or issues? Open an issue or discussion on GitHub.
v2.0.0
v1.0.0
Initial release.
This is a base collection of JavaScript modules I wrote and regularly use in my various projects. These are all specifically aimed at integration inside the module ecosystem I wrote, which is designed and built around the hnl.dynamicimports.mjs and hnl.eventhandler.mjs base modules.
Although the modules can be used outside that ecosystem, I did not intend for this use. All modules use an init function, which takes a bunch of elements (NodeList) to work on. Modules may change/disappear without prior notice.
See README.md for basic usage.