babel-preset-mp
Version:
52 lines (42 loc) • 1.86 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _coreJsCompat = _interopRequireDefault(require("core-js-compat"));
var _presetEnv = _interopRequireDefault(require("@babel/preset-env"));
var _semver = _interopRequireDefault(require("semver"));
var _helperPluginUtils = require("@babel/helper-plugin-utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// import mpCompatData from "miniprogram-compat";
let mpCompatData = require("miniprogram-compat");
if (!mpCompatData.getBrowsersList) mpCompatData = mpCompatData.default;
const babelPresetMiniprogram = (0, _helperPluginUtils.declare)((api, opts, dirname) => {
api.assertVersion(7);
let {
wechatLibVersion,
...restOpts
} = opts;
wechatLibVersion = wechatLibVersion || "1.0.0";
const browserslist = mpCompatData.getBrowsersList(wechatLibVersion);
const {
coreJsVersion: polyfillCoreJsVersion,
exclude: polyfillExcludeModules
} = mpCompatData.getPolyfillInfo(wechatLibVersion);
const polyfillsToIgnore = [];
if (_semver.default.major(polyfillCoreJsVersion) < 3) {
// core js 2
polyfillsToIgnore.push(...require("../data/core-js-2-modules.json").modules);
} else {
// core js 3
const polyfillExcludeRegexps = (polyfillExcludeModules || []).map(module => new RegExp(`^${module}$`));
polyfillsToIgnore.push(..._coreJsCompat.default.getModulesListForTargetVersion(polyfillCoreJsVersion).filter(module => !polyfillExcludeRegexps.some(exclude => exclude.test(module))));
}
const result = (0, _presetEnv.default)(api, { ...restOpts,
ignoreBrowserslistConfig: true,
exclude: (restOpts.exclude || []).concat(polyfillsToIgnore),
targets: browserslist,
corejs: 3
}, dirname);
return result;
});
var _default = babelPresetMiniprogram;
exports.default = _default;