UNPKG

ultimate-jekyll-manager

Version:
75 lines (63 loc) 2.87 kB
// Static imports for core modules (bundled together for efficiency) // import initializeModule from '__main_assets__/js/core/initialize.js'; import authModule from '__main_assets__/js/core/auth.js'; import lazyLoadingModule from '__main_assets__/js/core/lazy-loading.js'; import queryStringsModule from '__main_assets__/js/core/query-strings.js'; import serviceWorkerModule from '__main_assets__/js/core/service-worker.js'; import appearanceModule from '__main_assets__/js/core/appearance.js'; import completeModule from '__main_assets__/js/core/complete.js'; // Ultimate Jekyll Manager Module export default async function (Manager, options) { // Shortcuts const { webManager } = Manager; // Add Manager to global scope for easy access in modules window.Manager = Manager; // Initialize the UJ library on webManager for programmatic access to UJ features // This allows other modules to call webManager.uj().showExitPopup(), etc. const ujLibrary = {}; webManager.uj = function() { return ujLibrary; }; // Also expose the internal object for modules to register their functions webManager._ujLibrary = ujLibrary; // Log console.log('Global module loaded successfully (assets/js/ultimate-jekyll-manager.js)'); // Initialize fixed modules synchronously (already loaded via static imports) // initializeModule(Manager, options); authModule(Manager, options); lazyLoadingModule(Manager, options); queryStringsModule(Manager, options); serviceWorkerModule(Manager, options); appearanceModule(Manager, options); // Conditionally loaded modules based on config (keep as dynamic imports) const conditionalModules = [ { path: 'chatsy.js', configKey: 'chatsy' }, { path: 'cookieconsent.js', configKey: 'cookieConsent' }, { path: 'exit-popup.js', configKey: 'exitPopup' }, { path: 'social-sharing.js', configKey: 'socialSharing' } ]; // Load conditional modules in parallel const modulePromises = []; // Add conditional modules if enabled for (const module of conditionalModules) { const moduleConfig = webManager.config[module.configKey]; if (moduleConfig?.enabled) { modulePromises.push( import(`__main_assets__/js/core/${module.path}`) .then(({ default: moduleFunc }) => moduleFunc(Manager, options)) .catch(error => console.error(`Failed to load ${module.path}:`, error)) ); } else { console.log(`Skipping ${module.path} (disabled in config)`); } } // Add theme loading (keep as dynamic import since themes can vary) modulePromises.push( import('__theme__/_theme.js') .catch(error => console.error('Failed to load theme:', error)) ); // Wait for all conditional modules to load await Promise.all(modulePromises); // Run the complete module to finalize page load state completeModule(Manager, options); }