UNPKG

3.62 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = configure;
7
8var _babelCore = require('babel-core');
9
10var _thenify = require('thenify');
11
12var _thenify2 = _interopRequireDefault(_thenify);
13
14var _babelPluginAddModuleExports = require('babel-plugin-add-module-exports');
15
16var _babelPluginAddModuleExports2 = _interopRequireDefault(_babelPluginAddModuleExports);
17
18var _babelPresetLatest = require('babel-preset-latest');
19
20var _babelPresetLatest2 = _interopRequireDefault(_babelPresetLatest);
21
22function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
24function _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
26function _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
28var babelrc = process.env.NODE_ENV !== 'test';
29
30function 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//# sourceMappingURL=javascript.js.map
\No newline at end of file