UNPKG

@magic/core

Version:

@magic core. generate static pages and serverless lambdas. ~5kb client boilerplate.

62 lines (49 loc) 1.88 kB
import deep from '@magic/deep' import { findNodeModules } from './findNodeModules.mjs' import { findLocalModules } from './findLocalModules.mjs' import { findAssetFile } from './findAssetFile.mjs' import { findBuiltins } from './findBuiltins.mjs' import { findLibraries } from './findLibraries.mjs' import { findThemes } from './findThemes.mjs' import { registerModule } from './registerModule.mjs' export const prepareGlobals = async (app, config) => { global.app = app const { DIR, NODE_MODULES, ROOT, THEME } = config let modules = {} // load core builtin modules const builtinFiles = await findBuiltins(modules) if (builtinFiles) { modules = deep.merge(modules, builtinFiles) Object.entries(builtinFiles).map(registerModule) } // load modules from themes const themeModulefiles = await findThemes(modules, { DIR, NODE_MODULES, THEME }) if (themeModulefiles) { modules = deep.merge(modules, themeModulefiles) Object.entries(themeModulefiles).map(registerModule) } // load plugins from node_modules const nodeModuleFiles = await findNodeModules(modules) if (nodeModuleFiles) { modules = deep.merge(modules, nodeModuleFiles) Object.entries(nodeModuleFiles).map(registerModule) } // look for /assets/index.mjs const assetFile = await findAssetFile(DIR.ASSETS) if (assetFile) { modules = deep.merge(modules, assetFile) Object.entries(assetFile).map(registerModule) } // look for /assets/Uppercased.mjs and /assets/modules/Uppercased.mjs const localModuleFiles = await findLocalModules(DIR.ASSETS) if (localModuleFiles) { modules = deep.merge(modules, localModuleFiles) Object.entries(localModuleFiles).map(registerModule) } // Object.entries(modules).forEach(registerModule) const libs = await findLibraries(app, modules, { DIR, ROOT }) return { modules, libs, } }