UNPKG

858 BJavaScriptView Raw
1///@ts-check
2'use strict';
3
4var path = require('path');
5
6/**
7 * @param {object} config
8 * @param {string[]|string} exts
9 * @param {boolean} [includeAssets]
10 */
11module.exports = function (config, exts, includeAssets) {
12 var glob = [];
13 if (typeof exts === 'string') {
14 glob = [exts];
15 } else if (exts.length === 1) {
16 glob = [config.src + '/**/*.' + exts[0]];
17 } else {
18 glob = [config.src + '/**/*.{' + exts.join(',') + '}'];
19 }
20
21 if (config.exclude) {
22 if (config.exclude instanceof Array) {
23 glob = glob.concat(config.exclude);
24 } else {
25 glob.push(config.exclude);
26 }
27 }
28
29 if (config.assets) {
30 var a = path.join(config.src, config.assets).replace(/\\/g, '/') + '/**/*';
31 glob.push(includeAssets ? a : '!' + a);
32 }
33 return glob.filter(v => v);
34}