UNPKG

parcel-bundler

Version:

<p align="center"> <a href="https://parceljs.org/" target="_blank"> <img alt="Parcel" src="https://user-images.githubusercontent.com/19409/31321658-f6aed0f2-ac3d-11e7-8100-1587e676e0ec.png" width="749"> </a> </p>

38 lines (31 loc) 917 B
const localRequire = require('./localRequire'); module.exports = async function loadPlugins(plugins, relative) { if (Array.isArray(plugins)) { return await Promise.all( plugins.map(async p => await loadPlugin(p, relative)).filter(Boolean) ); } else if (typeof plugins === 'object') { let mapPlugins = await Promise.all( Object.keys(plugins).map( async p => await loadPlugin(p, relative, plugins[p]) ) ); return mapPlugins.filter(Boolean); } else { return []; } }; async function loadPlugin(plugin, relative, options) { if (typeof plugin === 'string') { plugin = await localRequire(plugin, relative); plugin = plugin.default || plugin; if (typeof options !== 'object') { options = {}; } if (Object.keys(options).length > 0) { plugin = plugin(options); } plugin = plugin.default || plugin; } return plugin; }