1import assert from 'assert'; 2 3import { ConfigPlugin, StaticPlugin } from '../Plugin.types'; 4import { withStaticPlugin } from './withStaticPlugin'; 5 6/** 7 * Resolves a list of plugins. 8 * 9 * @param config exported config 10 * @param plugins list of config config plugins to apply to the exported config 11 */ 12export const withPlugins: ConfigPlugin<(StaticPlugin | ConfigPlugin | string)[]> = ( 13 config, 14 plugins 15) => { 16 assert( 17 Array.isArray(plugins), 18 'withPlugins expected a valid array of plugins or plugin module paths' 19 ); 20 return plugins.reduce((prev, plugin) => withStaticPlugin(prev, { plugin }), config); 21}; 22