Add more tests
This commit is contained in:
42
modules/actions/utils/getScripts.js
Normal file
42
modules/actions/utils/getScripts.js
Normal file
@ -0,0 +1,42 @@
|
||||
// Virtual module id; see rollup.config.js
|
||||
// eslint-disable-next-line import/no-unresolved
|
||||
import entryManifest from 'entry-manifest';
|
||||
|
||||
import { createElement, createScript } from './markupHelpers.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)
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user