@bnidev/js-utils
    Preparing search index...

    Function loadModules

    • Loads modules specified in HTML elements with a given data attribute.

      This function scans the DOM for elements with a specific data attribute, imports the specified modules from given directories, and initializes them by calling the exported default function with the element as an argument.

      Parameters

      • userOptions: LoadModulesOptions

        Configuration options for loading modules. Optional.

        Options for the loadModules function.

        • Optionalattribute?: string

          The data attribute to scan for. Defaults to "data-loadmodule"

        • OptionalloadedAttrSuffix?: string

          Suffix to mark an element as having been loaded. Defaults to "HasLoaded" → becomes data-loadmodule-has-loaded

        • moduleDirs: string[]

          One or more directories to search for modules. E.g., ["../modules", "../shared"]

        • OptionalrootElement?: HTMLElement | Document

          Root DOM element to search inside. Defaults to document.

      Returns Promise<void>

      // ES Module
      import { loadModules } from '@bnidev/js-utils'

      // CommonJS
      const { loadModules } = require('@bnidev/js-utils')
      // Load without additional options (uses default settings)
      loadModules({moduleDirs: ['../modules', '../shared']})

      // Load with options
      loadModules({
      attribute: 'data-custom-module',
      moduleDirs: ['../modules', '../shared'],
      rootElement: document.getElementById('app'),
      loadedAttrSuffix: 'HasLoaded'
      // This will look for elements like <div data-custom-module="myModule"></div>
      })