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