UNPKG

babel-preset-mp

Version:
52 lines (42 loc) 1.86 kB
"use strict"; 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;