@roots/bud-server
Version:
Development server for @roots/bud
21 lines (20 loc) • 668 B
JavaScript
/**
* Inject webpack entrypoints with client scripts
*/
export const inject = async (app, injection) => {
app.hooks.on(`build.entry`, (entrypoints = {}) => {
if (!injection)
return entrypoints;
return Object.entries(entrypoints ?? {}).reduce((entrypoints, [name, entry]) => {
name = name ?? `main`;
const importArray = [
...(entry?.import ?? `index`),
...injection.map(fn => fn(app)),
].filter(Boolean);
return {
...entrypoints,
[name]: { ...(entry ?? {}), import: importArray },
};
}, {});
});
};