UNPKG

778 BJavaScriptView Raw
1let { Plugins } = require('./load-plugins')
2let calc = require('./calc')
3
4/**
5 * Run Size Limit and return the result
6 *
7 * @param {functions[]} plugins The list of plugins like `@size-limit/time`
8 * @param {string[]|object} files Path to files or internal config
9 * @return {Promise<object>} Project size
10 */
11module.exports = async function (plugins, files) {
12 let pluginList = new Plugins(plugins.reduce((all, i) => all.concat(i), []))
13 if (Array.isArray(files)) {
14 files = {
15 checks: [{ files }]
16 }
17 }
18
19 await calc(pluginList, files, false)
20
21 return files.checks.map(i => {
22 let value = {}
23 for (let prop of ['size', 'time', 'runTime', 'loadTime']) {
24 if (typeof i[prop] !== 'undefined') value[prop] = i[prop]
25 }
26 return value
27 })
28}