diff --git a/packages/babel-preset-env-standalone/package.json b/packages/babel-preset-env-standalone/package.json index b7830b73c9..d06d42d706 100644 --- a/packages/babel-preset-env-standalone/package.json +++ b/packages/babel-preset-env-standalone/package.json @@ -14,10 +14,13 @@ "devDependencies": { "@babel/plugin-proposal-dynamic-import": "^7.7.0", "@babel/plugin-proposal-json-strings": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-top-level-await": "^7.7.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.0", "@babel/plugin-transform-new-target": "^7.4.4", "@babel/preset-env": "^7.7.1", - "@babel/standalone": "^7.7.3" + "@babel/standalone": "^7.7.3", + "lodash": "^4.17.13" }, "keywords": [ "babel", diff --git a/packages/babel-preset-env-standalone/src/available-plugins.js b/packages/babel-preset-env-standalone/src/available-plugins.js index 9d9e686402..7259b2ea37 100644 --- a/packages/babel-preset-env-standalone/src/available-plugins.js +++ b/packages/babel-preset-env-standalone/src/available-plugins.js @@ -5,6 +5,8 @@ const notIncludedPlugins = { "transform-new-target": require("@babel/plugin-transform-new-target"), "proposal-json-strings": require("@babel/plugin-proposal-json-strings"), "proposal-dynamic-import": require("@babel/plugin-proposal-dynamic-import"), + "syntax-json-strings": require("@babel/plugin-syntax-json-strings"), + "syntax-top-level-await": require("@babel/plugin-syntax-top-level-await"), }; Object.keys(notIncludedPlugins).forEach(pluginName => { diff --git a/packages/babel-preset-env-standalone/test/available-plugins.js b/packages/babel-preset-env-standalone/test/available-plugins.js new file mode 100644 index 0000000000..bfaa76beac --- /dev/null +++ b/packages/babel-preset-env-standalone/test/available-plugins.js @@ -0,0 +1,19 @@ +import expectedAvailablePlugins from "@babel/preset-env/lib/available-plugins"; +import difference from "lodash/difference"; + +// build-babel-preset-env-standalone in CI coverage tests is skipped, so we skip this test as well +(process.env.TEST_TYPE === "cov" ? describe.skip : describe)( + "available-plugins", + () => { + const actualAvailablePlugins = require("../lib/available-plugins").default; + it("should be a superset of available-plugins in @babel/preset-env", () => { + const expectedPluginList = Object.keys(expectedAvailablePlugins); + expectedPluginList.sort(); + + const actualPluginList = Object.keys(actualAvailablePlugins); + actualPluginList.sort(); + // If this test is failed, add the missing plugins to ./src/available-plugins + expect(difference(expectedPluginList, actualPluginList)).toEqual([]); + }); + }, +); diff --git a/packages/babel-preset-env-standalone/test/babel-preset-env.js b/packages/babel-preset-env-standalone/test/babel-preset-env.js index 6ecd097b14..d1d2600ca3 100644 --- a/packages/babel-preset-env-standalone/test/babel-preset-env.js +++ b/packages/babel-preset-env-standalone/test/babel-preset-env.js @@ -1,3 +1,4 @@ +// build-babel-standalone in CI coverage tests is skipped, so we skip this test as well (process.env.TEST_TYPE === "cov" ? describe.skip : describe)( "babel-preset-env-standalone", () => {