UNPKG

parcel-bundler

Version:

Blazing fast, zero configuration web application bundler

55 lines (44 loc) 1.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); const localRequire = require('../../utils/localRequire'); const _require = require('./astConverter'), babel6toBabel7 = _require.babel6toBabel7; function babel6(_x, _x2) { return _babel.apply(this, arguments); } function _babel() { _babel = (0, _asyncToGenerator2.default)(function* (asset, options) { let babel = yield localRequire('babel-core', asset.name); let config = options.config; config.code = false; config.ast = true; config.filename = asset.name; config.babelrc = false; config.parserOpts = Object.assign({}, config.parserOpts, { allowReturnOutsideFunction: true, allowHashBang: true, ecmaVersion: Infinity, strictMode: false, sourceType: 'module', locations: true }); // Passing a list of plugins as part of parserOpts seems to override any custom // syntax plugins a user might have added (e.g. decorators). We add dynamicImport // using a plugin instead. config.plugins = (config.plugins || []).concat(dynamicImport); let res = babel.transform(asset.contents, config); if (res.ast) { asset.ast = babel6toBabel7(res.ast); asset.isAstDirty = true; } }); return _babel.apply(this, arguments); } function dynamicImport() { return { manipulateOptions(opts, parserOpts) { parserOpts.plugins.push('dynamicImport'); } }; } module.exports = babel6;