// Virtual module id; see rollup.config.js // eslint-disable-next-line import/no-unresolved import entryManifest from 'entry-manifest'; import { createElement, createScript } from './markup.js'; function getEntryPoint(name, format) { let entryPoints; entryManifest.forEach(manifest => { if (name in manifest) { entryPoints = manifest[name]; } }); if (entryPoints) { return entryPoints.find(e => e.format === format); } return null; } function getGlobalScripts(entryPoint, globalURLs) { return entryPoint.globalImports.map(id => { if (process.env.NODE_ENV !== 'production') { if (!globalURLs[id]) { throw new Error('Missing global URL for id "%s"', id); } } return createElement('script', { src: globalURLs[id] }); }); } export default function getScripts(entryName, format, globalURLs) { const entryPoint = getEntryPoint(entryName, format); if (!entryPoint) return []; return getGlobalScripts(entryPoint, globalURLs).concat( createScript(entryPoint.code) ); }