1 | 'use strict';
|
2 |
|
3 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
4 |
|
5 | var fs = _interopDefault(require('fs'));
|
6 | var path = _interopDefault(require('path'));
|
7 | var alias = _interopDefault(require('@rxts/rollup-plugin-alias'));
|
8 | var builtinModules = _interopDefault(require('builtin-modules'));
|
9 | var debug = _interopDefault(require('debug'));
|
10 | var lodash = require('lodash');
|
11 | var babel = _interopDefault(require('rollup-plugin-babel'));
|
12 | var commonjs = _interopDefault(require('rollup-plugin-commonjs'));
|
13 | var json = _interopDefault(require('rollup-plugin-json'));
|
14 | var postcss = _interopDefault(require('rollup-plugin-postcss'));
|
15 | var nodeBuiltins = _interopDefault(require('rollup-plugin-node-builtins'));
|
16 | var nodeGlobals = _interopDefault(require('rollup-plugin-node-globals'));
|
17 | var replace = _interopDefault(require('rollup-plugin-replace'));
|
18 | var nodeResolve = _interopDefault(require('rollup-plugin-node-resolve'));
|
19 | var rollupPluginTerser = require('rollup-plugin-terser');
|
20 | var typescript = _interopDefault(require('rollup-plugin-typescript'));
|
21 | var url = _interopDefault(require('rollup-plugin-url'));
|
22 | var umdGlobals = require('@pkgr/umd-globals');
|
23 | var namedExports = require('@pkgr/named-exports');
|
24 |
|
25 | function _slicedToArray(arr, i) {
|
26 | return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
|
27 | }
|
28 |
|
29 | function _arrayWithHoles(arr) {
|
30 | if (Array.isArray(arr)) return arr;
|
31 | }
|
32 |
|
33 | function _iterableToArrayLimit(arr, i) {
|
34 | if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
35 | return;
|
36 | }
|
37 |
|
38 | var _arr = [];
|
39 | var _n = true;
|
40 | var _d = false;
|
41 | var _e = undefined;
|
42 |
|
43 | try {
|
44 | for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
45 | _arr.push(_s.value);
|
46 |
|
47 | if (i && _arr.length === i) break;
|
48 | }
|
49 | } catch (err) {
|
50 | _d = true;
|
51 | _e = err;
|
52 | } finally {
|
53 | try {
|
54 | if (!_n && _i["return"] != null) _i["return"]();
|
55 | } finally {
|
56 | if (_d) throw _e;
|
57 | }
|
58 | }
|
59 |
|
60 | return _arr;
|
61 | }
|
62 |
|
63 | function _nonIterableRest() {
|
64 | throw new TypeError("Invalid attempt to destructure non-iterable instance");
|
65 | }
|
66 |
|
67 | var info = debug('r:info');
|
68 | var PRODUCTION = 'production';
|
69 | var STYLE_EXTENSIONS = ['.css', '.less', 'sass', '.scss', '.styl', '.stylus'];
|
70 | var IMAGE_EXTENSIONS = ['.gif', '.jpeg', '.jpg', '.png', '.svg', '.webp'];
|
71 | var ASSETS_EXTENSIONS = STYLE_EXTENSIONS.concat(IMAGE_EXTENSIONS);
|
72 |
|
73 | var resolve = function resolve() {
|
74 | var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
75 | deps = _ref.deps,
|
76 | node = _ref.node;
|
77 |
|
78 | return nodeResolve({
|
79 | dedupe: node ? undefined : deps,
|
80 | mainFields: [!node && 'browser', 'esnext', 'es2015', 'esm2015', 'fesm2015', 'esm5', 'fesm5', 'module', 'jsnext:main', 'main'].filter(Boolean)
|
81 | });
|
82 | };
|
83 |
|
84 | var cjs = function cjs(sourceMap) {
|
85 | return commonjs({
|
86 |
|
87 |
|
88 |
|
89 | ignore: ['react-draggable'],
|
90 | namedExports: namedExports.namedExports,
|
91 | sourceMap: sourceMap
|
92 | });
|
93 | };
|
94 |
|
95 | var BASIC_PLUGINS = [json(), url({
|
96 | include: IMAGE_EXTENSIONS.map(function (ext) {
|
97 | return "**/*".concat(ext);
|
98 | })
|
99 | })];
|
100 | var DEFAULT_FORMATS = ['cjs', 'es2015', 'esm'];
|
101 | var isTsAvailable = false;
|
102 |
|
103 | try {
|
104 | isTsAvailable = !!require.resolve('typescript');
|
105 | } catch (e) {}
|
106 |
|
107 |
|
108 | var EXTENSIONS = Object.keys(require.extensions);
|
109 |
|
110 | if (isTsAvailable) {
|
111 | EXTENSIONS.unshift('.ts', '.tsx');
|
112 | }
|
113 |
|
114 | var tryExtensions = function tryExtensions(filepath) {
|
115 | var ext = EXTENSIONS.find(function (ext) {
|
116 | return fs.existsSync(filepath + ext);
|
117 | });
|
118 | return ext ? filepath + ext : filepath;
|
119 | };
|
120 |
|
121 | var tryRegExp = function tryRegExp(exp) {
|
122 | if (typeof exp !== 'string' || !(exp = exp.trim())) {
|
123 | return exp;
|
124 | }
|
125 |
|
126 | var matched = /^\/(.*)\/([gimsuy]*)$/.exec(exp);
|
127 |
|
128 | if (matched) {
|
129 | try {
|
130 | return new RegExp(matched[1], matched[2]);
|
131 | } catch (_unused) {}
|
132 | }
|
133 |
|
134 | return exp;
|
135 | };
|
136 |
|
137 | var onwarn = function onwarn(warning, warn) {
|
138 | if (warning.code === 'THIS_IS_UNDEFINED') {
|
139 | return;
|
140 | }
|
141 |
|
142 | warn(warning);
|
143 | };
|
144 |
|
145 | var config = function config() {
|
146 | var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
147 | formats = _ref2.formats,
|
148 | monorepo = _ref2.monorepo,
|
149 | input = _ref2.input,
|
150 | _ref2$outputDir = _ref2.outputDir,
|
151 | outputDir = _ref2$outputDir === void 0 ? 'lib' : _ref2$outputDir,
|
152 | exports = _ref2.exports,
|
153 | _ref2$externals = _ref2.externals,
|
154 | externals = _ref2$externals === void 0 ? [] : _ref2$externals,
|
155 | umdGlobals$1 = _ref2.globals,
|
156 | _ref2$aliases = _ref2.aliases,
|
157 | aliases = _ref2$aliases === void 0 ? [] : _ref2$aliases,
|
158 | _ref2$sourceMap = _ref2.sourceMap,
|
159 | sourceMap = _ref2$sourceMap === void 0 ? false : _ref2$sourceMap,
|
160 | postcssOpts = _ref2.postcss,
|
161 | _ref2$prod = _ref2.prod,
|
162 | prod = _ref2$prod === void 0 ? process.env.NODE_ENV === PRODUCTION : _ref2$prod;
|
163 |
|
164 | var pkgsPath = path.resolve(typeof monorepo === 'string' ? monorepo : 'packages');
|
165 |
|
166 | if (monorepo !== false) {
|
167 | monorepo = fs.existsSync(pkgsPath);
|
168 | }
|
169 |
|
170 | var pkgs = monorepo ? fs.readdirSync(pkgsPath) : [''];
|
171 | var globals = umdGlobals.getGlobals({
|
172 | globals: umdGlobals$1
|
173 | });
|
174 | var configs = lodash.flatMap(pkgs, function (pkg) {
|
175 | var pkgPath = path.resolve(monorepo ? pkgsPath : '', pkg);
|
176 | var srcPath = path.resolve(pkgPath, 'src');
|
177 | var pkgInput = input;
|
178 | var pkgOutputDir = outputDir;
|
179 |
|
180 | if (!fs.existsSync(srcPath) && pkgInput == null) {
|
181 | pkgInput = 'index';
|
182 | }
|
183 |
|
184 | pkgInput = tryExtensions(path.resolve(pkgPath, pkgInput || 'src/index'));
|
185 | var isAbsolute = path.isAbsolute(pkgInput);
|
186 |
|
187 | if (pkgOutputDir && !pkgOutputDir.endsWith('/')) {
|
188 | pkgOutputDir = pkgOutputDir + '/';
|
189 | }
|
190 |
|
191 | if (!fs.existsSync(pkgInput) || isAbsolute && !pkgInput.startsWith(pkgPath)) {
|
192 | return [];
|
193 | }
|
194 |
|
195 | var _require = require(path.resolve(pkgPath, 'package.json')),
|
196 | name = _require.name,
|
197 | _require$engines = _require.engines;
|
198 |
|
199 | _require$engines = _require$engines === void 0 ? {} : _require$engines;
|
200 | var node = _require$engines.node,
|
201 | _require$dependencies = _require.dependencies,
|
202 | dependencies = _require$dependencies === void 0 ? {} : _require$dependencies,
|
203 | _require$peerDependen = _require.peerDependencies,
|
204 | peerDependencies = _require$peerDependen === void 0 ? {} : _require$peerDependen;
|
205 | var deps = Object.keys(dependencies);
|
206 |
|
207 | var _external = externals.concat(Object.keys(peerDependencies), node ? deps.concat(builtinModules) : []);
|
208 |
|
209 | var isTsInput = /\.tsx?/.test(pkgInput);
|
210 | var pkgFormats = formats && formats.length ? formats : DEFAULT_FORMATS.concat(node ? [] : 'umd');
|
211 |
|
212 | var pkgGlobals = _external.reduce(function (pkgGlobals, pkg) {
|
213 | if (pkgGlobals[pkg] == null) {
|
214 | pkgGlobals[pkg] = umdGlobals.upperCamelCase(umdGlobals.normalizePkg(pkg));
|
215 | }
|
216 |
|
217 | return pkgGlobals;
|
218 | }, globals);
|
219 |
|
220 | return pkgFormats.map(function (format) {
|
221 | var isEsVersion = /^es(\d+|next)$/.test(format) && format !== 'es5';
|
222 | return {
|
223 | input: pkgInput,
|
224 | output: {
|
225 | file: path.resolve(pkgPath, "".concat(pkgOutputDir).concat(format).concat(prod ? '.min' : '', ".js")),
|
226 | format: isEsVersion ? 'esm' : format,
|
227 | name: pkgGlobals[name] || umdGlobals.upperCamelCase(umdGlobals.normalizePkg(name)),
|
228 | globals: globals,
|
229 | exports: exports
|
230 | },
|
231 | external: function external(id) {
|
232 | return _external.some(function (pkg) {
|
233 | return id === pkg || id.startsWith(pkg + '/');
|
234 | });
|
235 | },
|
236 | onwarn: onwarn,
|
237 | plugins: [alias({
|
238 | resolve: EXTENSIONS.concat(ASSETS_EXTENSIONS),
|
239 | entries: Array.isArray(aliases) ? aliases.map(function (_ref3) {
|
240 | var find = _ref3.find,
|
241 | replacement = _ref3.replacement;
|
242 | return {
|
243 | find: tryRegExp(find),
|
244 | replacement: replacement
|
245 | };
|
246 | }) : Object.entries(aliases).map(function (_ref4) {
|
247 | var _ref5 = _slicedToArray(_ref4, 2),
|
248 | find = _ref5[0],
|
249 | replacement = _ref5[1];
|
250 |
|
251 | return {
|
252 | find: tryRegExp(find),
|
253 | replacement: replacement
|
254 | };
|
255 | })
|
256 | }), isTsAvailable && isTsInput ? typescript({
|
257 | target: isEsVersion ? format : 'es5'
|
258 | }) : babel({
|
259 | exclude: ['*.min.js', '*.production.js'],
|
260 | presets: [['@babel/preset-env', isEsVersion ? {
|
261 | targets: {
|
262 | esmodules: true
|
263 | }
|
264 | } : undefined]]
|
265 | })].concat(!node && [nodeGlobals(), nodeBuiltins({
|
266 | crypto: true
|
267 | })], resolve({
|
268 | deps: deps,
|
269 | node: !!node
|
270 | }), cjs(sourceMap), BASIC_PLUGINS, postcss(postcssOpts), prod && [replace({
|
271 | 'process.env.NODE_ENV': JSON.stringify(PRODUCTION)
|
272 | }), rollupPluginTerser.terser()]).filter(Boolean)
|
273 | };
|
274 | });
|
275 | });
|
276 | console.assert(configs.length, "No configuration resolved, mark sure you've setup correctly");
|
277 | return configs;
|
278 | };
|
279 |
|
280 | var config$1 = (function () {
|
281 | var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
282 | var configs = config(options).concat(options.prod ? config(Object.assign({}, options, {
|
283 | prod: false
|
284 | })) : []);
|
285 | info('configs: %O', configs);
|
286 | return configs;
|
287 | });
|
288 |
|
289 | module.exports = config$1;
|