polyfills.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.createBasePolyfillsPlugin = createBasePolyfillsPlugin;
  6. var _babelPluginPolyfillCorejs = require("babel-plugin-polyfill-corejs2");
  7. var _babelPluginPolyfillCorejs2 = require("babel-plugin-polyfill-corejs3");
  8. var _babelPluginPolyfillRegenerator = require("babel-plugin-polyfill-regenerator");
  9. const pluginCorejs2 = _babelPluginPolyfillCorejs.default || _babelPluginPolyfillCorejs;
  10. const pluginCorejs3 = _babelPluginPolyfillCorejs2.default || _babelPluginPolyfillCorejs2;
  11. const pluginRegenerator = _babelPluginPolyfillRegenerator.default || _babelPluginPolyfillRegenerator;
  12. const pluginsCompat = "#__secret_key__@babel/runtime__compatibility";
  13. function createCorejsPlugin(plugin, options, regeneratorPlugin) {
  14. return (api, _, filename) => {
  15. return Object.assign({}, plugin(api, options, filename), {
  16. inherits: regeneratorPlugin
  17. });
  18. };
  19. }
  20. function createRegeneratorPlugin(options, useRuntimeRegenerator) {
  21. if (!useRuntimeRegenerator) return undefined;
  22. return (api, _, filename) => {
  23. return pluginRegenerator(api, options, filename);
  24. };
  25. }
  26. function createBasePolyfillsPlugin({
  27. corejs,
  28. regenerator: useRuntimeRegenerator = true
  29. }, runtimeVersion, absoluteImports) {
  30. let proposals = false;
  31. let rawVersion;
  32. if (typeof corejs === "object" && corejs !== null) {
  33. rawVersion = corejs.version;
  34. proposals = Boolean(corejs.proposals);
  35. } else {
  36. rawVersion = corejs;
  37. }
  38. const corejsVersion = rawVersion ? Number(rawVersion) : false;
  39. if (![false, 2, 3].includes(corejsVersion)) {
  40. throw new Error(`The \`core-js\` version must be false, 2 or 3, but got ${JSON.stringify(rawVersion)}.`);
  41. }
  42. if (proposals && (!corejsVersion || corejsVersion < 3)) {
  43. throw new Error("The 'proposals' option is only supported when using 'corejs: 3'");
  44. }
  45. if (typeof useRuntimeRegenerator !== "boolean") {
  46. throw new Error("The 'regenerator' option must be undefined, or a boolean.");
  47. }
  48. const polyfillOpts = {
  49. method: "usage-pure",
  50. absoluteImports,
  51. [pluginsCompat]: {
  52. useBabelRuntime: true,
  53. runtimeVersion,
  54. ext: ""
  55. }
  56. };
  57. return corejsVersion === 2 ? createCorejsPlugin(pluginCorejs2, polyfillOpts, createRegeneratorPlugin(polyfillOpts, useRuntimeRegenerator)) : corejsVersion === 3 ? createCorejsPlugin(pluginCorejs3, Object.assign({
  58. version: 3,
  59. proposals
  60. }, polyfillOpts), createRegeneratorPlugin(polyfillOpts, useRuntimeRegenerator)) : createRegeneratorPlugin(polyfillOpts, useRuntimeRegenerator);
  61. }
  62. //# sourceMappingURL=polyfills.js.map