String import/export specifier (#12091)

* feat: parse moduleExportName
* feat: add validators
* Support string specifier name in commonjs transform
* Support string specifier name in export-ns-from
* test: add loose testcases
* test: add testcases for amd and umd
* feat: support systemjs
* test: update fixtures fixed in #12110
* add plugin name typings
* test: rename test layout
* feat: implement under moduleStringNames flag
* chore: add plugin syntax module string names
* feat: support ModuleExportName as ModuleExportName
* test: update test fixtures
* fix flow errors
* docs: update AST spec
* feat: support { "some imports" as "some exports" }
* feat: support { "some imports" as "some exports" } in systemjs
* test: add test on `import { "foo" }`
* Address review comments
* add moduleStringNames to missing plugin helpers
* Apply suggestions from code review
* update test fixtures
* Update packages/babel-parser/src/parser/error-message.js
* update test fixtures

Co-Authored-By: Kai Cataldo <kai@kaicataldo.com>
Co-authored-by: Brian Ng <bng412@gmail.com>
This commit is contained in:
Huáng Jùnliàng
2020-09-21 16:50:51 -04:00
committed by Nicolò Ribaudo
parent 1b90d90fcc
commit 21d7ee2610
152 changed files with 1872 additions and 96 deletions

View File

@@ -0,0 +1,3 @@
*.log
src
test

View File

@@ -0,0 +1,19 @@
# @babel/plugin-syntax-module-string-names
> Allow parsing `import { 'any unicode' as bar }` and `export { foo as 'any unicode' }`"
See our website [@babel/plugin-syntax-module-string-names](https://babeljs.io/docs/en/next/babel-plugin-syntax-module-string-names.html) for more information.
## Install
Using npm:
```sh
npm install --save-dev @babel/plugin-syntax-module-string-names
```
or using yarn:
```sh
yarn add @babel/plugin-syntax-module-string-names --dev
```

View File

@@ -0,0 +1,28 @@
{
"name": "@babel/plugin-syntax-module-string-names",
"version": "0.0.0",
"description": "Allow parsing `import { 'any unicode' as bar }` and `export { foo as 'any unicode' }`",
"repository": {
"type": "git",
"url": "https://github.com/babel/babel.git",
"directory": "packages/babel-plugin-syntax-module-string-names"
},
"license": "MIT",
"publishConfig": {
"access": "public"
},
"main": "./lib/index.js",
"exports": "./lib/index.js",
"keywords": [
"babel-plugin"
],
"dependencies": {
"@babel/helper-plugin-utils": "workspace:^7.10.4"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
},
"devDependencies": {
"@babel/core": "workspace:^7.10.4"
}
}

View File

@@ -0,0 +1,13 @@
import { declare } from "@babel/helper-plugin-utils";
export default declare(api => {
api.assertVersion(7);
return {
name: "syntax-module-string-names",
manipulateOptions(opts, parserOpts) {
parserOpts.plugins.push("moduleStringNames");
},
};
});