Skip to content

Releases: c-kick/DOMule

v3.0.0 - Module Architecture Restructure

09 Oct 13:09

Choose a tag to compare

🎉 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.

v2.0.0

27 Sep 14:17
d0249c6

Choose a tag to compare

Major code overhaul, and a new name: DOMule

v1.0.0

27 Dec 14:30

Choose a tag to compare

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.