UNPKG

@roots/bud-build

Version:

bud.js core module

36 lines (35 loc) 1.29 kB
import * as items from '@roots/bud-build/items'; import * as loaders from '@roots/bud-build/loaders'; import * as rules from '@roots/bud-build/rules'; import kebabCase from '@roots/bud-support/kebabCase'; /** * Register built-in {@link loaders}, {@link items} and {@link rules} */ async function register(bud) { await Promise.all([ ...Object.entries(loaders).map(makeRegister(bud, bud.build.setLoader)), ...Object.entries(items).map(makeRegister(bud, bud.build.setItem)), ]); // this is a bit of a hack // that sets the base stylesheet loader // to minicss in production and style-loader in development bud.build.items.precss = bud.isProduction ? bud.build.items.minicss : bud.build.items.style; await Promise.all(Object.entries(rules).map(makeRegister(bud, bud.build.setRule))).catch(e => { throw e; }); } /** * Registry factory */ const makeRegister = ({ build, hooks, isProduction, module: { resolve }, path }, setRule) => async ([key, factory]) => setRule(kebabCase(key), await factory({ filter: hooks.filter, isProduction, makeItem: build.makeItem, makeLoader: build.makeLoader, makeRule: build.makeRule, path, resolve, })); export { items, loaders, makeRegister, register, rules };