Skip to content

v3.0.0 - Module Architecture Restructure

Latest

Choose a tag to compare

@c-kick c-kick released this 09 Oct 13:09

🎉 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.mjscore.scanner.mjs
  • hnl.dynamicimports.mjscore.loader.mjs
  • hnl.eventhandler.mjscore.events.mjs
  • hnl.logger.mjscore.log.mjs
  • hnl.helpers.mjsutil.observe.mjs, util.dom.mjs, etc.
  • hnl.debounce.mjsutil.debounce.mjs
  • hnl.colortool.mjsutil.color.mjs

Named exports changed:

  • import {hnlLogger}import {logger}
  • import eventHandlerimport 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.