Skip to content

Commit

Permalink
[build-dist] Use polyfill providers directly to define core-js version
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolo-ribaudo committed May 24, 2023
1 parent 25b50a1 commit b210dcf
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 27 deletions.
43 changes: 34 additions & 9 deletions packages/babel-plugin-transform-runtime/scripts/build-dist.js
Expand Up @@ -12,6 +12,8 @@ import corejs2Definitions from "./runtime-corejs2-definitions.js";
import corejs3Definitions from "./runtime-corejs3-definitions.js";

import presetEnv from "@babel/preset-env";
import polyfillCorejs2 from "babel-plugin-polyfill-corejs2";
import polyfillCorejs3 from "babel-plugin-polyfill-corejs3";

const require = createRequire(import.meta.url);
const runtimeVersion = require("@babel/runtime/package.json").version;
Expand All @@ -21,10 +23,29 @@ function outputFile(filePath, data) {
fs.writeFileSync(filePath, data);
}

function corejsVersion(pkgName, depName) {
return require(`../../${pkgName}/package.json`).dependencies[depName];
}

writeHelpers("@babel/runtime");
writeHelpers("@babel/runtime-corejs2", { corejs: 2 });
writeHelpers("@babel/runtime-corejs2", {
polyfillProvider: [
polyfillCorejs2,
{
method: "usage-pure",
version: corejsVersion("babel-runtime-corejs2", "core-js"),
},
],
});
writeHelpers("@babel/runtime-corejs3", {
corejs: { version: 3, proposals: true },
polyfillProvider: [
polyfillCorejs3,
{
method: "usage-pure",
version: corejsVersion("babel-runtime-corejs3", "core-js-pure"),
proposals: true,
},
],
});

writeCoreJS({
Expand Down Expand Up @@ -119,7 +140,7 @@ function writeHelperFile(
pkgDirname,
helperPath,
helperName,
{ esm, corejs }
{ esm, polyfillProvider }
) {
const fileName = `${helperName}.js`;
const filePath = esm
Expand All @@ -129,13 +150,16 @@ function writeHelperFile(

outputFile(
fullPath,
buildHelper(runtimeName, pkgDirname, fullPath, helperName, { esm, corejs })
buildHelper(runtimeName, pkgDirname, fullPath, helperName, {
esm,
polyfillProvider,
})
);

return esm ? `./helpers/esm/${fileName}` : `./helpers/${fileName}`;
}

function writeHelpers(runtimeName, { corejs } = {}) {
function writeHelpers(runtimeName, { polyfillProvider } = {}) {
const pkgDirname = getRuntimeRoot(runtimeName);
const helperSubExports = {};
for (const helperName of helpers.list) {
Expand All @@ -145,14 +169,14 @@ function writeHelpers(runtimeName, { corejs } = {}) {
pkgDirname,
helperPath,
helperName,
{ esm: false, corejs }
{ esm: false, polyfillProvider }
);
const esm = writeHelperFile(
runtimeName,
pkgDirname,
helperPath,
helperName,
{ esm: true, corejs }
{ esm: true, polyfillProvider }
);

// Node.js versions >=13.0.0, <13.7.0 support the `exports` field but
Expand Down Expand Up @@ -215,7 +239,7 @@ function buildHelper(
pkgDirname,
helperFilename,
helperName,
{ esm, corejs }
{ esm, polyfillProvider }
) {
const tree = t.program([], [], esm ? "module" : "script");
const dependencies = {};
Expand Down Expand Up @@ -245,7 +269,8 @@ function buildHelper(
filename: helperFilename,
presets: [[presetEnv, { modules: false }]],
plugins: [
[transformRuntime, { corejs, version: runtimeVersion }],
polyfillProvider,
[transformRuntime, { version: runtimeVersion }],
buildRuntimeRewritePlugin(runtimeName, helperName),
esm ? null : addDefaultCJSExport,
].filter(Boolean),
Expand Down
6 changes: 3 additions & 3 deletions packages/babel-runtime-corejs2/helpers/esm/iterableToArray.js
@@ -1,6 +1,6 @@
import _Symbol from "@babel/runtime-corejs2/core-js/symbol";
import _Symbol$iterator from "@babel/runtime-corejs2/core-js/symbol/iterator";
import _Array$from from "@babel/runtime-corejs2/core-js/array/from";
import _Symbol from "core-js/library/fn/symbol.js";
import _Symbol$iterator from "core-js/library/fn/symbol/iterator.js";
import _Array$from from "core-js/library/fn/array/from.js";
export default function _iterableToArray(iter) {
if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter);
}
6 changes: 3 additions & 3 deletions packages/babel-runtime-corejs2/helpers/iterableToArray.js
@@ -1,6 +1,6 @@
var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
var _Symbol = require("core-js/library/fn/symbol.js");
var _Symbol$iterator = require("core-js/library/fn/symbol/iterator.js");
var _Array$from = require("core-js/library/fn/array/from.js");
function _iterableToArray(iter) {
if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter);
}
Expand Down
4 changes: 2 additions & 2 deletions packages/babel-runtime-corejs2/helpers/typeof.js
@@ -1,5 +1,5 @@
var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
var _Symbol = require("core-js/library/fn/symbol.js");
var _Symbol$iterator = require("core-js/library/fn/symbol/iterator.js");
function _typeof(obj) {
"@babel/helpers - typeof";

Expand Down
13 changes: 7 additions & 6 deletions packages/babel-runtime-corejs3/helpers/dispose.js
@@ -1,17 +1,18 @@
var _Object$create = require("@babel/runtime-corejs3/core-js/object/create");
var _Promise = require("@babel/runtime-corejs3/core-js/promise");
var _SuppressedError = require("core-js-pure/features/suppressed-error.js");
var _Object$create = require("core-js-pure/features/object/create.js");
var _Promise = require("core-js-pure/features/promise/index.js");
function dispose_SuppressedError(suppressed, error) {
return dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) {
return "undefined" != typeof _SuppressedError ? dispose_SuppressedError = _SuppressedError : (dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) {
this.suppressed = suppressed, this.error = error, this.stack = new Error().stack;
}, dispose_SuppressedError.prototype = _Object$create(Error.prototype, {
constructor: {
value: dispose_SuppressedError,
writable: !0,
configurable: !0
}
}), new dispose_SuppressedError(suppressed, error);
})), new dispose_SuppressedError(suppressed, error);
}
function _dispose(stack, error, hasError, SuppressedError) {
function _dispose(stack, error, hasError) {
function next() {
if (0 !== stack.length) {
var r = stack.pop();
Expand All @@ -26,7 +27,7 @@ function _dispose(stack, error, hasError, SuppressedError) {
if (hasError) throw error;
}
function err(e) {
return error = hasError ? new (SuppressedError || dispose_SuppressedError)(e, error) : e, hasError = !0, next();
return error = hasError ? new dispose_SuppressedError(e, error) : e, hasError = !0, next();
}
return next();
}
Expand Down
8 changes: 4 additions & 4 deletions packages/babel-runtime/helpers/dispose.js
@@ -1,15 +1,15 @@
function dispose_SuppressedError(suppressed, error) {
return dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) {
return "undefined" != typeof SuppressedError ? dispose_SuppressedError = SuppressedError : (dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) {
this.suppressed = suppressed, this.error = error, this.stack = new Error().stack;
}, dispose_SuppressedError.prototype = Object.create(Error.prototype, {
constructor: {
value: dispose_SuppressedError,
writable: !0,
configurable: !0
}
}), new dispose_SuppressedError(suppressed, error);
})), new dispose_SuppressedError(suppressed, error);
}
function _dispose(stack, error, hasError, SuppressedError) {
function _dispose(stack, error, hasError) {
function next() {
if (0 !== stack.length) {
var r = stack.pop();
Expand All @@ -24,7 +24,7 @@ function _dispose(stack, error, hasError, SuppressedError) {
if (hasError) throw error;
}
function err(e) {
return error = hasError ? new (SuppressedError || dispose_SuppressedError)(e, error) : e, hasError = !0, next();
return error = hasError ? new dispose_SuppressedError(e, error) : e, hasError = !0, next();
}
return next();
}
Expand Down

0 comments on commit b210dcf

Please sign in to comment.