UNPKG

2.45 kBJavaScriptView Raw
1import glob from 'glob';
2
3var babelHelpers = {};
4
5babelHelpers.slicedToArray = (function () {
6 function sliceIterator(arr, i) {
7 var _arr = [];
8 var _n = true;
9 var _d = false;
10 var _e = undefined;
11
12 try {
13 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
14 _arr.push(_s.value);
15
16 if (i && _arr.length === i) break;
17 }
18 } catch (err) {
19 _d = true;
20 _e = err;
21 } finally {
22 try {
23 if (!_n && _i["return"]) _i["return"]();
24 } finally {
25 if (_d) throw _e;
26 }
27 }
28
29 return _arr;
30 }
31
32 return function (arr, i) {
33 if (Array.isArray(arr)) {
34 return arr;
35 } else if (Symbol.iterator in Object(arr)) {
36 return sliceIterator(arr, i);
37 } else {
38 throw new TypeError("Invalid attempt to destructure non-iterable instance");
39 }
40 };
41})();
42
43babelHelpers;
44var entry = 'rollup-plugin-multi-entry:entry-point';
45
46function multiEntry(config) {
47 var include = [];
48 var exclude = [];
49
50 if (typeof config === 'string') {
51 include = [config];
52 } else if (Array.isArray(config)) {
53 include = config;
54 } else {
55 include = config.include;
56 exclude = config.exclude;
57 }
58
59 return {
60 resolveId: function resolveId(id) {
61 if (id === entry) {
62 return entry;
63 }
64 },
65 load: function load(id) {
66 if (id === entry) {
67 return Promise.all([matchPaths(include), matchPaths(exclude)]).then(function (_ref) {
68 var _ref2 = babelHelpers.slicedToArray(_ref, 2);
69
70 var includePaths = _ref2[0];
71 var excludePaths = _ref2[1];
72
73 return includePaths.filter(function (path) {
74 return excludePaths.indexOf(path) < 0;
75 });
76 }).then(function (paths) {
77 return paths.map(function (path) {
78 return 'export * from ' + JSON.stringify(path) + ';';
79 }).join('\n');
80 });
81 }
82 }
83 };
84}
85
86function matchPaths(patterns) {
87 return Promise.all(patterns.map(function (pattern) {
88 return new Promise(function (resolve, reject) {
89 return glob(pattern, { realpath: true }, function (err, files) {
90 if (err) {
91 reject(err);
92 } else {
93 resolve(files);
94 }
95 });
96 });
97 })).then(function (lists) {
98 return lists.reduce(function (result, list) {
99 return result.concat(list);
100 }, []);
101 });
102}
103
104export { entry };export default multiEntry;
\No newline at end of file