From eb22c749036e4fb6e1f788152214fc9754b5a0a0 Mon Sep 17 00:00:00 2001 From: overlookmotel Date: Sat, 1 Jan 2022 18:45:02 +0000 Subject: [PATCH] generator convert directives single quotes to double when minified --- packages/babel-generator/src/generators/base.ts | 2 +- packages/babel-generator/test/index.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/babel-generator/src/generators/base.ts b/packages/babel-generator/src/generators/base.ts index be20a4485eb6..30253db2e5f7 100644 --- a/packages/babel-generator/src/generators/base.ts +++ b/packages/babel-generator/src/generators/base.ts @@ -58,7 +58,7 @@ const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/; export function DirectiveLiteral(this: Printer, node: t.DirectiveLiteral) { const raw = this.getPossibleRaw(node); - if (raw != null) { + if (!this.format.minified && raw != null) { this.token(raw); return; } diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index c1bcdfeaae0d..c7cdd19235ba 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -548,6 +548,20 @@ describe("programmatic generation", function () { generate(directive); }).toThrow(); }); + + it("preserves single quotes if not minified", function () { + const directive = parse("'use strict';").program.directives[0]; + const output = generate(directive).code; + + expect(output).toBe("'use strict';"); + }); + + it("converts single quotes to double quotes if minified", function () { + const directive = parse("'use strict';").program.directives[0]; + const output = generate(directive, { minified: true }).code; + + expect(output).toBe('"use strict";'); + }); }); describe("typescript generate parentheses if necessary", function () {