From b3f0102a872c8cae81b207a64fdce4cab6563531 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 25 Feb 2020 00:19:03 +0800 Subject: [PATCH] Remove `babylon` parser (#7533) * Remove `babylon` * Add changelog * Fix website files --- changelog_unreleased/api/pr-7533.md | 3 ++ scripts/build/config.js | 2 +- src/common/internal-plugins.js | 21 ++++------ .../{parser-babylon.js => parser-babel.js} | 5 --- src/main/core-options.js | 6 --- tests_config/require_standalone.js | 2 +- .../__tests__/deprecated-parser.js | 11 ----- tests_integration/__tests__/parser-api.js | 1 - website/playground/codeSamples.js | 1 - website/playground/markdown.js | 1 - website/static/service-worker.js | 2 +- website/static/worker.js | 41 ++++++++----------- 12 files changed, 33 insertions(+), 63 deletions(-) create mode 100644 changelog_unreleased/api/pr-7533.md rename src/language-js/{parser-babylon.js => parser-babel.js} (95%) diff --git a/changelog_unreleased/api/pr-7533.md b/changelog_unreleased/api/pr-7533.md new file mode 100644 index 000000000..5639c6ff1 --- /dev/null +++ b/changelog_unreleased/api/pr-7533.md @@ -0,0 +1,3 @@ +#### Remove deprecated parser `babylon` ([#7533](https://github.com/prettier/prettier/pull/7533) by [@fisker](https://github.com/fisker)) + +Parser `babylon` has been renamed to `babel` since _v1.16.0_, but aliased to keep backwards compatibility, now it's removed. diff --git a/scripts/build/config.js b/scripts/build/config.js index c889f89e2..80d358b33 100644 --- a/scripts/build/config.js +++ b/scripts/build/config.js @@ -25,7 +25,7 @@ const PROJECT_ROOT = path.resolve(__dirname, "../.."); /** @type {Bundle[]} */ const parsers = [ { - input: "src/language-js/parser-babylon.js" + input: "src/language-js/parser-babel.js" }, { input: "src/language-js/parser-flow.js", diff --git a/src/common/internal-plugins.js b/src/common/internal-plugins.js index 3f4920656..323f094ff 100644 --- a/src/common/internal-plugins.js +++ b/src/common/internal-plugins.js @@ -12,42 +12,39 @@ module.exports = [ parsers: { // JS - Babel get babel() { - return eval("require")("../language-js/parser-babylon").parsers.babel; + return eval("require")("../language-js/parser-babel").parsers.babel; }, get "babel-flow"() { - return eval("require")("../language-js/parser-babylon").parsers[ + return eval("require")("../language-js/parser-babel").parsers[ "babel-flow" ]; }, get "babel-ts"() { - return eval("require")("../language-js/parser-babylon").parsers[ + return eval("require")("../language-js/parser-babel").parsers[ "babel-ts" ]; }, - get babylon() { - return eval("require")("../language-js/parser-babylon").parsers.babel; - }, get json() { - return eval("require")("../language-js/parser-babylon").parsers.json; + return eval("require")("../language-js/parser-babel").parsers.json; }, get json5() { - return eval("require")("../language-js/parser-babylon").parsers.json5; + return eval("require")("../language-js/parser-babel").parsers.json5; }, get "json-stringify"() { - return eval("require")("../language-js/parser-babylon").parsers[ + return eval("require")("../language-js/parser-babel").parsers[ "json-stringify" ]; }, get __js_expression() { - return eval("require")("../language-js/parser-babylon").parsers + return eval("require")("../language-js/parser-babel").parsers .__js_expression; }, get __vue_expression() { - return eval("require")("../language-js/parser-babylon").parsers + return eval("require")("../language-js/parser-babel").parsers .__vue_expression; }, get __vue_event_binding() { - return eval("require")("../language-js/parser-babylon").parsers + return eval("require")("../language-js/parser-babel").parsers .__vue_event_binding; }, // JS - Flow diff --git a/src/language-js/parser-babylon.js b/src/language-js/parser-babel.js similarity index 95% rename from src/language-js/parser-babylon.js rename to src/language-js/parser-babel.js index e52801fb3..41014ab1b 100644 --- a/src/language-js/parser-babylon.js +++ b/src/language-js/parser-babel.js @@ -1,8 +1,5 @@ "use strict"; -// This file is currently named parser-babylon.js to maintain backwards compatibility. -// However, it should be named parser-babel.js in the next major release. - const createError = require("../common/parser-create-error"); const { hasPragma } = require("./pragma"); const locFns = require("./loc"); @@ -179,8 +176,6 @@ module.exports = { babel, "babel-flow": babelFlow, "babel-ts": babelTypeScript, - // aliased to keep backwards compatibility - babylon: babel, json: { ...babelExpression, hasPragma() { diff --git a/src/main/core-options.js b/src/main/core-options.js index 885a5e925..986d7a722 100644 --- a/src/main/core-options.js +++ b/src/main/core-options.js @@ -125,12 +125,6 @@ const options = { typeof value === "string" || typeof value === "function", choices: [ { value: "flow", description: "Flow" }, - { - value: "babylon", - description: "JavaScript", - deprecated: "1.16.0", - redirect: "babel" - }, { value: "babel", since: "1.16.0", description: "JavaScript" }, { value: "babel-flow", since: "1.16.0", description: "Flow" }, { value: "babel-ts", since: "2.0.0", description: "TypeScript" }, diff --git a/tests_config/require_standalone.js b/tests_config/require_standalone.js index 6ca66fa4c..03bc07024 100644 --- a/tests_config/require_standalone.js +++ b/tests_config/require_standalone.js @@ -7,7 +7,7 @@ const vm = require("vm"); const sources = [ "standalone.js", "parser-angular.js", - "parser-babylon.js", + "parser-babel.js", "parser-flow.js", "parser-glimmer.js", "parser-graphql.js", diff --git a/tests_integration/__tests__/deprecated-parser.js b/tests_integration/__tests__/deprecated-parser.js index 71c961eb2..281190723 100644 --- a/tests_integration/__tests__/deprecated-parser.js +++ b/tests_integration/__tests__/deprecated-parser.js @@ -24,14 +24,3 @@ test("API format with deprecated parser (postcss) should work", () => { ).not.toThrowError(); expect(warnings).toMatchSnapshot(); }); - -test("API format with deprecated parser (babylon) should work and do not report the same deprecation warning more than once", () => { - expect(() => { - prettier.format("hello_world( )", { parser: "babylon" }); - prettier.format("hello_world( )", { parser: "babylon" }); - }).not.toThrowError(); - expect(warnings).toMatchInlineSnapshot(` -"{ parser: \\"babylon\\" } is deprecated; we now treat it as { parser: \\"babel\\" }. -" -`); -}); diff --git a/tests_integration/__tests__/parser-api.js b/tests_integration/__tests__/parser-api.js index 4739b340f..f79e51601 100644 --- a/tests_integration/__tests__/parser-api.js +++ b/tests_integration/__tests__/parser-api.js @@ -21,7 +21,6 @@ test("allows usage of prettier's supported parsers", () => { const output = prettier.format("foo ( )", { parser(text, parsers) { expect(typeof parsers.babel).toEqual("function"); - expect(typeof parsers.babylon).toEqual("function"); const ast = parsers.babel(text); ast.program.body[0].expression.callee.name = "bar"; return ast; diff --git a/website/playground/codeSamples.js b/website/playground/codeSamples.js index dc1cd9521..f2fa576f8 100644 --- a/website/playground/codeSamples.js +++ b/website/playground/codeSamples.js @@ -1,7 +1,6 @@ export default function(parser) { switch (parser) { case "babel": - case "babylon": // backward compatibility return [ 'function HelloWorld({greeting = "hello", greeted = \'"World"\', silent = false, onMouseOver,}) {', "", diff --git a/website/playground/markdown.js b/website/playground/markdown.js index ab367d71f..e02e6985f 100644 --- a/website/playground/markdown.js +++ b/website/playground/markdown.js @@ -36,7 +36,6 @@ function formatMarkdown( function getMarkdownSyntax(options) { switch (options.parser) { case "babel": - case "babylon": // backward compatibility case "babel-flow": case "flow": return "jsx"; diff --git a/website/static/service-worker.js b/website/static/service-worker.js index 7e91368f0..232104499 100644 --- a/website/static/service-worker.js +++ b/website/static/service-worker.js @@ -9,7 +9,7 @@ toolbox.precache([ // Scripts "lib/standalone.js", "lib/parser-angular.js", - "lib/parser-babylon.js", + "lib/parser-babel.js", "lib/parser-flow.js", "lib/parser-glimmer.js", "lib/parser-graphql.js", diff --git a/website/static/worker.js b/website/static/worker.js index e5a416d5a..227816550 100644 --- a/website/static/worker.js +++ b/website/static/worker.js @@ -14,45 +14,40 @@ function importScriptOnce(url) { var parsers = { // JS - Babel get babel() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers.babel; + importScriptOnce("lib/parser-babel.js"); + return prettierPlugins.babel.parsers.babel; }, get "babel-flow"() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers["babel-flow"]; + importScriptOnce("lib/parser-babel.js"); + return prettierPlugins.babel.parsers["babel-flow"]; }, get "babel-ts"() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers["babel-ts"]; - }, - // backward compatibility - get babylon() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers.babylon; + importScriptOnce("lib/parser-babel.js"); + return prettierPlugins.babel.parsers["babel-ts"]; }, get json() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers.json; + importScriptOnce("lib/parser-babel.js"); + return prettierPlugins.babel.parsers.json; }, get json5() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers.json5; + importScriptOnce("lib/parser-babel.js"); + return prettierPlugins.babel.parsers.json5; }, get "json-stringify"() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers["json-stringify"]; + importScriptOnce("lib/parser-babel.js"); + return prettierPlugins.babel.parsers["json-stringify"]; }, get __js_expression() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers.__js_expression; + importScriptOnce("lib/parser-babel.js"); + return prettierPlugins.babel.parsers.__js_expression; }, get __vue_expression() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers.__vue_expression; + importScriptOnce("lib/parser-babel.js"); + return prettierPlugins.babel.parsers.__vue_expression; }, get __vue_event_binding() { - importScriptOnce("lib/parser-babylon.js"); - return prettierPlugins.babylon.parsers.__vue_event_binding; + importScriptOnce("lib/parser-babel.js"); + return prettierPlugins.babel.parsers.__vue_event_binding; }, // JS - Flow get flow() {