1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = configure;
|
7 |
|
8 | var _babelCore = require('babel-core');
|
9 |
|
10 | var _thenify = require('thenify');
|
11 |
|
12 | var _thenify2 = _interopRequireDefault(_thenify);
|
13 |
|
14 | var _babelPluginAddModuleExports = require('babel-plugin-add-module-exports');
|
15 |
|
16 | var _babelPluginAddModuleExports2 = _interopRequireDefault(_babelPluginAddModuleExports);
|
17 |
|
18 | var _babelPresetLatest = require('babel-preset-latest');
|
19 |
|
20 | var _babelPresetLatest2 = _interopRequireDefault(_babelPresetLatest);
|
21 |
|
22 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
23 |
|
24 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
25 |
|
26 | function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { return step("next", value); }, function (err) { return step("throw", err); }); } } return step("next"); }); }; }
|
27 |
|
28 | var babelrc = process.env.NODE_ENV !== 'test';
|
29 |
|
30 | function configure(pkg, opts) {
|
31 | return function () {
|
32 | var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(name, file) {
|
33 | var _opts$flags, es2017, modules, addModuleExports, presets, plugins, result, output;
|
34 |
|
35 | return regeneratorRuntime.wrap(function _callee$(_context) {
|
36 | while (1) {
|
37 | switch (_context.prev = _context.next) {
|
38 | case 0:
|
39 | _opts$flags = opts.flags;
|
40 | es2017 = _opts$flags.es2017;
|
41 | modules = _opts$flags.modules;
|
42 | addModuleExports = _opts$flags['add-module-exports'];
|
43 |
|
44 |
|
45 | if (modules === 'ecmascript') {
|
46 | modules = false;
|
47 | addModuleExports = false;
|
48 | }
|
49 |
|
50 | presets = [(0, _babelPresetLatest2.default)(null, { es2015: { modules: modules },
|
51 | es2016: true,
|
52 | es2017: es2017 === true
|
53 | })], plugins = [];
|
54 |
|
55 |
|
56 | if (addModuleExports === true) {
|
57 | plugins = [_babelPluginAddModuleExports2.default];
|
58 | }
|
59 |
|
60 | _context.next = 9;
|
61 | return (0, _thenify2.default)(_babelCore.transformFile)(file, { moduleIds: true,
|
62 | moduleRoot: opts.lib ? pkg.name + '/' + opts.lib : pkg.name,
|
63 | sourceRoot: opts.src,
|
64 | presets: presets,
|
65 | plugins: plugins,
|
66 | babelrc: babelrc,
|
67 | sourceMaps: !!opts.debug,
|
68 | sourceFileName: file,
|
69 | sourceMapTarget: file
|
70 | });
|
71 |
|
72 | case 9:
|
73 | result = _context.sent;
|
74 | output = { files: _defineProperty({}, name + '.js', result.code) };
|
75 |
|
76 |
|
77 | if (opts.debug) {
|
78 | output.files[name + '.js'] += '\n//# sourceMappingURL=' + name + '.js.map';
|
79 | output.files[name + '.js.map'] = JSON.stringify(result.map);
|
80 | }
|
81 |
|
82 | return _context.abrupt('return', output);
|
83 |
|
84 | case 13:
|
85 | case 'end':
|
86 | return _context.stop();
|
87 | }
|
88 | }
|
89 | }, _callee, this);
|
90 | }));
|
91 |
|
92 | function process(_x, _x2) {
|
93 | return _ref.apply(this, arguments);
|
94 | }
|
95 |
|
96 | return process;
|
97 | }();
|
98 | }
|
99 |
|
\ | No newline at end of file |