From 83b601c23df28aba4d805190cdf27e6849cf5925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Wed, 2 Aug 2023 12:02:13 +0200 Subject: [PATCH] Add generator support --- packages/babel-generator/src/generators/modules.ts | 8 ++++++++ .../test/fixtures/import-phases/options.json | 4 ++++ .../fixtures/import-phases/source-declaration/input.js | 1 + .../fixtures/import-phases/source-declaration/output.js | 1 + .../fixtures/import-phases/source-expression/input.js | 1 + .../fixtures/import-phases/source-expression/output.js | 1 + 6 files changed, 16 insertions(+) create mode 100644 packages/babel-generator/test/fixtures/import-phases/options.json create mode 100644 packages/babel-generator/test/fixtures/import-phases/source-declaration/input.js create mode 100644 packages/babel-generator/test/fixtures/import-phases/source-declaration/output.js create mode 100644 packages/babel-generator/test/fixtures/import-phases/source-expression/input.js create mode 100644 packages/babel-generator/test/fixtures/import-phases/source-expression/output.js diff --git a/packages/babel-generator/src/generators/modules.ts b/packages/babel-generator/src/generators/modules.ts index 8029c04ae9b9..870319ec5477 100644 --- a/packages/babel-generator/src/generators/modules.ts +++ b/packages/babel-generator/src/generators/modules.ts @@ -248,6 +248,10 @@ export function ImportDeclaration(this: Printer, node: t.ImportDeclaration) { this.noIndentInnerCommentsHere(); this.word("module"); this.space(); + } else if (node.phase) { + this.noIndentInnerCommentsHere(); + this.word(node.phase); + this.space(); } const specifiers = node.specifiers.slice(0); @@ -315,6 +319,10 @@ export function ImportNamespaceSpecifier( export function ImportExpression(this: Printer, node: t.ImportExpression) { this.word("import"); + if (node.phase) { + this.token("."); + this.word(node.phase); + } this.token("("); this.print(node.source, node); if (node.options != null) { diff --git a/packages/babel-generator/test/fixtures/import-phases/options.json b/packages/babel-generator/test/fixtures/import-phases/options.json new file mode 100644 index 000000000000..7059e4bddaa8 --- /dev/null +++ b/packages/babel-generator/test/fixtures/import-phases/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["sourcePhaseImports"], + "parserOpts": { "createImportExpression": true } +} diff --git a/packages/babel-generator/test/fixtures/import-phases/source-declaration/input.js b/packages/babel-generator/test/fixtures/import-phases/source-declaration/input.js new file mode 100644 index 000000000000..0907982f2885 --- /dev/null +++ b/packages/babel-generator/test/fixtures/import-phases/source-declaration/input.js @@ -0,0 +1 @@ +import source x from "y"; diff --git a/packages/babel-generator/test/fixtures/import-phases/source-declaration/output.js b/packages/babel-generator/test/fixtures/import-phases/source-declaration/output.js new file mode 100644 index 000000000000..b7a8dea61a36 --- /dev/null +++ b/packages/babel-generator/test/fixtures/import-phases/source-declaration/output.js @@ -0,0 +1 @@ +import source x from "y"; \ No newline at end of file diff --git a/packages/babel-generator/test/fixtures/import-phases/source-expression/input.js b/packages/babel-generator/test/fixtures/import-phases/source-expression/input.js new file mode 100644 index 000000000000..1994954871e6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/import-phases/source-expression/input.js @@ -0,0 +1 @@ +import.source("x"); diff --git a/packages/babel-generator/test/fixtures/import-phases/source-expression/output.js b/packages/babel-generator/test/fixtures/import-phases/source-expression/output.js new file mode 100644 index 000000000000..283642fdf663 --- /dev/null +++ b/packages/babel-generator/test/fixtures/import-phases/source-expression/output.js @@ -0,0 +1 @@ +import.source("x"); \ No newline at end of file