UNPKG

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