UNPKG

module-composer

Version:

Bring order to chaos. Level up your JS application architecture with Module Composer, a tiny but powerful module composition utility based on functional dependency injection.

25 lines (17 loc) 721 B
const configKeys = ['compositionName', 'appName', 'displayName', 'packageName']; const globalRegister = session => { const { globalThis } = session.composerOptions; const { compositions = [] } = globalThis; const readPackageName = () => { try { return require(`${globalThis.process.cwd()}/package.json`).name; } catch { } // eslint-disable-line no-empty }; const compositionName = [ configKeys.flatMap(key => session.config[key] ?? []), readPackageName() ?? [], 'Unnamed Composition' ].flat()[0]; compositions.push({ [compositionName]: session.external }); Object.assign(globalThis, { compositions }); }; module.exports = { globalRegister };