From 963537d5f540cbd2f448eb50b5cd3fe4a3f0bc74 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Fri, 30 Oct 2020 04:07:10 +0900 Subject: [PATCH] [ts] Make ImportDeclaration always have `importKind` (#12170) --- .../src/plugins/typescript/index.js | 6 ++-- .../import/import-side-effects/input.ts | 1 + .../import/import-side-effects/output.json | 28 +++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 packages/babel-parser/test/fixtures/typescript/import/import-side-effects/input.ts create mode 100644 packages/babel-parser/test/fixtures/typescript/import/import-side-effects/output.json diff --git a/packages/babel-parser/src/plugins/typescript/index.js b/packages/babel-parser/src/plugins/typescript/index.js index 51da2d81c30c..6c0de5314747 100644 --- a/packages/babel-parser/src/plugins/typescript/index.js +++ b/packages/babel-parser/src/plugins/typescript/index.js @@ -2007,11 +2007,13 @@ export default (superClass: Class): Class => ) { node.importKind = "type"; this.next(); - } else { - node.importKind = "value"; } } + if (!node.importKind) { + node.importKind = "value"; + } + const importNode = super.parseImport(node); /*:: invariant(importNode.type !== "TSImportEqualsDeclaration") */ diff --git a/packages/babel-parser/test/fixtures/typescript/import/import-side-effects/input.ts b/packages/babel-parser/test/fixtures/typescript/import/import-side-effects/input.ts new file mode 100644 index 000000000000..c0748305d535 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/import/import-side-effects/input.ts @@ -0,0 +1 @@ +import "foo"; diff --git a/packages/babel-parser/test/fixtures/typescript/import/import-side-effects/output.json b/packages/babel-parser/test/fixtures/typescript/import/import-side-effects/output.json new file mode 100644 index 000000000000..d1abccf48263 --- /dev/null +++ b/packages/babel-parser/test/fixtures/typescript/import/import-side-effects/output.json @@ -0,0 +1,28 @@ +{ + "type": "File", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "program": { + "type": "Program", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ImportDeclaration", + "start":0,"end":13,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}, + "importKind": "value", + "specifiers": [], + "source": { + "type": "StringLiteral", + "start":7,"end":12,"loc":{"start":{"line":1,"column":7},"end":{"line":1,"column":12}}, + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" + } + } + ], + "directives": [] + } +} \ No newline at end of file