Split exportExtensions into exportDefault and exportNamespace plugins… (#6920)

* Split exportExtensions into two plugins in babylon
* rename proposal-export-default to proposal-export-default-from
* rename proposal-export-namespace to proposal-export-namespace-from
This commit is contained in:
Brian Ng 2017-11-30 16:46:36 -06:00 committed by Henry Zhu
parent 9d9710c765
commit d8bbaaae0a
86 changed files with 226 additions and 348 deletions

View File

@ -1 +1 @@
{ "plugins": ["exportExtensions"] } { "plugins": ["exportNamespaceFrom"] }

View File

@ -1 +1 @@
{ "plugins": ["exportExtensions"] } { "plugins": ["exportNamespaceFrom"] }

View File

@ -1 +1 @@
{ "plugins": ["exportExtensions"] } { "plugins": ["exportDefaultFrom"] }

View File

@ -1 +1 @@
{ "plugins": ["exportExtensions"] } { "plugins": ["exportNamespaceFrom"] }

View File

@ -1 +1 @@
{ "plugins": ["exportExtensions"] } { "plugins": ["exportDefaultFrom"] }

View File

@ -1,3 +1,3 @@
{ {
"plugins": ["exportExtensions", "typescript"] "plugins": ["exportDefaultFrom", "typescript"]
} }

View File

@ -1,4 +1,4 @@
# @babel/plugin-proposal-export-default # @babel/plugin-proposal-export-default-from
> Compile export-default-from statements to ES2015 > Compile export-default-from statements to ES2015
@ -11,7 +11,7 @@ export v from 'mod';
## Installation ## Installation
```sh ```sh
npm install --save-dev @babel/plugin-proposal-export-default npm install --save-dev @babel/plugin-proposal-export-default-from
``` ```
## Usage ## Usage
@ -22,21 +22,21 @@ npm install --save-dev @babel/plugin-proposal-export-default
```json ```json
{ {
"plugins": ["@babel/plugin-proposal-export-default"] "plugins": ["@babel/plugin-proposal-export-default-from"]
} }
``` ```
### Via CLI ### Via CLI
```sh ```sh
babel --plugins @babel/plugin-proposal-export-default script.js babel --plugins @babel/plugin-proposal-export-default-from script.js
``` ```
### Via Node API ### Via Node API
```javascript ```javascript
require("@babel/core").transform("code", { require("@babel/core").transform("code", {
plugins: ["@babel/plugin-proposal-export-default"] plugins: ["@babel/plugin-proposal-export-default-from"]
}); });
``` ```
## References ## References

View File

@ -1,15 +1,15 @@
{ {
"name": "@babel/plugin-proposal-export-default", "name": "@babel/plugin-proposal-export-default-from",
"version": "7.0.0-beta.32", "version": "7.0.0-beta.32",
"description": "Compile export default to ES2015", "description": "Compile export default to ES2015",
"repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-export-default", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-export-default-from",
"license": "MIT", "license": "MIT",
"main": "lib/index.js", "main": "lib/index.js",
"keywords": [ "keywords": [
"babel-plugin" "babel-plugin"
], ],
"dependencies": { "dependencies": {
"@babel/plugin-syntax-export-extensions": "7.0.0-beta.32" "@babel/plugin-syntax-export-default-from": "7.0.0-beta.32"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "7.0.0-beta.32" "@babel/core": "7.0.0-beta.32"

View File

@ -1,9 +1,9 @@
import syntaxExportExtensions from "@babel/plugin-syntax-export-extensions"; import syntaxExportDefaultFrom from "@babel/plugin-syntax-export-default-from";
import { types as t } from "@babel/core"; import { types as t } from "@babel/core";
export default function() { export default function() {
return { return {
inherits: syntaxExportExtensions, inherits: syntaxExportDefaultFrom,
visitor: { visitor: {
ExportNamedDeclaration(path) { ExportNamedDeclaration(path) {

View File

@ -0,0 +1,3 @@
{
"plugins": ["external-helpers", "proposal-export-default-from"]
}

View File

@ -1,3 +0,0 @@
import _v from "mod";
export { _v as v };
export * as all from "mod";

View File

@ -1,3 +0,0 @@
{
"plugins": ["external-helpers", "proposal-export-default"]
}

View File

@ -1,4 +1,4 @@
# @babel/plugin-proposal-export-namespace # @babel/plugin-proposal-export-namespace-from
> Compile export-ns-from statements to ES2015 > Compile export-ns-from statements to ES2015
@ -11,7 +11,7 @@ export * as ns from 'mod';
## Installation ## Installation
```sh ```sh
npm install --save-dev @babel/plugin-proposal-export-namespace npm install --save-dev @babel/plugin-proposal-export-namespace-from
``` ```
## Usage ## Usage
@ -22,21 +22,21 @@ npm install --save-dev @babel/plugin-proposal-export-namespace
```json ```json
{ {
"plugins": ["@babel/plugin-proposal-export-namespace"] "plugins": ["@babel/plugin-proposal-export-namespace-from"]
} }
``` ```
### Via CLI ### Via CLI
```sh ```sh
babel --plugins @babel/plugin-proposal-export-namespace script.js babel --plugins @babel/plugin-proposal-export-namespace-from script.js
``` ```
### Via Node API ### Via Node API
```javascript ```javascript
require("@babel/core").transform("code", { require("@babel/core").transform("code", {
plugins: ["@babel/plugin-proposal-export-namespace"] plugins: ["@babel/plugin-proposal-export-namespace-from"]
}); });
``` ```
## References ## References

View File

@ -1,15 +1,15 @@
{ {
"name": "@babel/plugin-proposal-export-namespace", "name": "@babel/plugin-proposal-export-namespace-from",
"version": "7.0.0-beta.32", "version": "7.0.0-beta.32",
"description": "Compile export namespace to ES2015", "description": "Compile export namespace to ES2015",
"repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-export-namespace", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-export-namespace-from",
"license": "MIT", "license": "MIT",
"main": "lib/index.js", "main": "lib/index.js",
"keywords": [ "keywords": [
"babel-plugin" "babel-plugin"
], ],
"dependencies": { "dependencies": {
"@babel/plugin-syntax-export-extensions": "7.0.0-beta.32" "@babel/plugin-syntax-export-namespace-from": "7.0.0-beta.32"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "7.0.0-beta.32" "@babel/core": "7.0.0-beta.32"

View File

@ -1,9 +1,9 @@
import syntaxExportExtensions from "@babel/plugin-syntax-export-extensions"; import syntaxExportNamespaceFrom from "@babel/plugin-syntax-export-namespace-from";
import { types as t } from "@babel/core"; import { types as t } from "@babel/core";
export default function() { export default function() {
return { return {
inherits: syntaxExportExtensions, inherits: syntaxExportNamespaceFrom,
visitor: { visitor: {
ExportNamedDeclaration(path) { ExportNamedDeclaration(path) {

View File

@ -0,0 +1 @@
export * as foo, { bar } from "bar";

View File

@ -0,0 +1,3 @@
import * as _foo from "bar";
export { _foo as foo };
export { bar } from "bar";

View File

@ -0,0 +1,3 @@
{
"plugins": ["external-helpers", "proposal-export-namespace-from"]
}

View File

@ -1,3 +0,0 @@
export v from "mod";
import * as _ns from "mod";
export { _ns as ns };

View File

@ -1,3 +0,0 @@
{
"plugins": ["external-helpers", "proposal-export-namespace"]
}

View File

@ -0,0 +1,35 @@
# @babel/plugin-syntax-export-default-from
> Allow parsing of `export default from`.
## Installation
```sh
npm install --save-dev @babel/plugin-syntax-export-default-from
```
## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"plugins": ["@babel/plugin-syntax-export-default-from"]
}
```
### Via CLI
```sh
babel --plugins @babel/plugin-syntax-export-default-from script.js
```
### Via Node API
```javascript
require("@babel/core").transform("code", {
plugins: ["@babel/plugin-syntax-export-default-from"]
});
```

View File

@ -1,8 +1,8 @@
{ {
"name": "@babel/plugin-syntax-export-extensions", "name": "@babel/plugin-syntax-export-default-from",
"version": "7.0.0-beta.32", "version": "7.0.0-beta.32",
"description": "Allow parsing of export extensions", "description": "Allow parsing of export default from",
"repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-export-extensions", "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-export-default-from",
"license": "MIT", "license": "MIT",
"main": "lib/index.js", "main": "lib/index.js",
"keywords": [ "keywords": [

View File

@ -1,7 +1,7 @@
export default function() { export default function() {
return { return {
manipulateOptions(opts, parserOpts) { manipulateOptions(opts, parserOpts) {
parserOpts.plugins.push("exportExtensions"); parserOpts.plugins.push("exportDefaultFrom");
}, },
}; };
} }

View File

@ -1,35 +0,0 @@
# @babel/plugin-syntax-export-extensions
> Allow parsing of export extensions.
## Installation
```sh
npm install --save-dev @babel/plugin-syntax-export-extensions
```
## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"plugins": ["@babel/plugin-syntax-export-extensions"]
}
```
### Via CLI
```sh
babel --plugins @babel/plugin-syntax-export-extensions script.js
```
### Via Node API
```javascript
require("@babel/core").transform("code", {
plugins: ["@babel/plugin-syntax-export-extensions"]
});
```

View File

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

View File

@ -0,0 +1,35 @@
# @babel/plugin-syntax-export-namespace-from
> Allow parsing of `export * as namespace from`.
## Installation
```sh
npm install --save-dev @babel/plugin-syntax-export-namespace-from
```
## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"plugins": ["@babel/plugin-syntax-export-namespace-from"]
}
```
### Via CLI
```sh
babel --plugins @babel/plugin-syntax-export-namespace-from script.js
```
### Via Node API
```javascript
require("@babel/core").transform("code", {
plugins: ["@babel/plugin-syntax-export-namespace-from"]
});
```

View File

@ -0,0 +1,17 @@
{
"name": "@babel/plugin-syntax-export-namespace-from",
"version": "7.0.0-beta.32",
"description": "Allow parsing of export namespace from",
"repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-export-namespace-from",
"license": "MIT",
"main": "lib/index.js",
"keywords": [
"babel-plugin"
],
"peerDependencies": {
"@babel/core": "7.0.0-beta.32"
},
"devDependencies": {
"@babel/core": "7.0.0-beta.32"
}
}

View File

@ -0,0 +1,7 @@
export default function() {
return {
manipulateOptions(opts, parserOpts) {
parserOpts.plugins.push("exportNamespaceFrom");
},
};
}

View File

@ -16,6 +16,8 @@
"@babel/plugin-proposal-class-properties": "7.0.0-beta.32", "@babel/plugin-proposal-class-properties": "7.0.0-beta.32",
"@babel/plugin-proposal-decorators": "7.0.0-beta.32", "@babel/plugin-proposal-decorators": "7.0.0-beta.32",
"@babel/plugin-proposal-do-expressions": "7.0.0-beta.32", "@babel/plugin-proposal-do-expressions": "7.0.0-beta.32",
"@babel/plugin-proposal-export-default-from": "7.0.0-beta.32",
"@babel/plugin-proposal-export-namespace-from": "7.0.0-beta.32",
"@babel/plugin-proposal-function-bind": "7.0.0-beta.32", "@babel/plugin-proposal-function-bind": "7.0.0-beta.32",
"@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.32", "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.32",
"@babel/plugin-proposal-optional-catch-binding": "7.0.0-beta.32", "@babel/plugin-proposal-optional-catch-binding": "7.0.0-beta.32",
@ -25,7 +27,8 @@
"@babel/plugin-syntax-decorators": "7.0.0-beta.32", "@babel/plugin-syntax-decorators": "7.0.0-beta.32",
"@babel/plugin-syntax-do-expressions": "7.0.0-beta.32", "@babel/plugin-syntax-do-expressions": "7.0.0-beta.32",
"@babel/plugin-syntax-dynamic-import": "7.0.0-beta.32", "@babel/plugin-syntax-dynamic-import": "7.0.0-beta.32",
"@babel/plugin-syntax-export-extensions": "7.0.0-beta.32", "@babel/plugin-syntax-export-default-from": "7.0.0-beta.32",
"@babel/plugin-syntax-export-namespace-from": "7.0.0-beta.32",
"@babel/plugin-syntax-flow": "7.0.0-beta.32", "@babel/plugin-syntax-flow": "7.0.0-beta.32",
"@babel/plugin-syntax-function-bind": "7.0.0-beta.32", "@babel/plugin-syntax-function-bind": "7.0.0-beta.32",
"@babel/plugin-syntax-function-sent": "7.0.0-beta.32", "@babel/plugin-syntax-function-sent": "7.0.0-beta.32",

View File

@ -147,7 +147,8 @@ registerPlugins({
"syntax-decorators": require("@babel/plugin-syntax-decorators"), "syntax-decorators": require("@babel/plugin-syntax-decorators"),
"syntax-do-expressions": require("@babel/plugin-syntax-do-expressions"), "syntax-do-expressions": require("@babel/plugin-syntax-do-expressions"),
"syntax-dynamic-import": require("@babel/plugin-syntax-dynamic-import"), "syntax-dynamic-import": require("@babel/plugin-syntax-dynamic-import"),
"syntax-export-extensions": require("@babel/plugin-syntax-export-extensions"), "syntax-export-default-from": require("@babel/plugin-syntax-export-default-from"),
"syntax-export-namespace-from": require("@babel/plugin-syntax-export-namespace-from"),
"syntax-flow": require("@babel/plugin-syntax-flow"), "syntax-flow": require("@babel/plugin-syntax-flow"),
"syntax-function-bind": require("@babel/plugin-syntax-function-bind"), "syntax-function-bind": require("@babel/plugin-syntax-function-bind"),
"syntax-function-sent": require("@babel/plugin-syntax-function-sent"), "syntax-function-sent": require("@babel/plugin-syntax-function-sent"),
@ -158,6 +159,8 @@ registerPlugins({
"proposal-class-properties": require("@babel/plugin-proposal-class-properties"), "proposal-class-properties": require("@babel/plugin-proposal-class-properties"),
"proposal-decorators": require("@babel/plugin-proposal-decorators"), "proposal-decorators": require("@babel/plugin-proposal-decorators"),
"proposal-do-expressions": require("@babel/plugin-proposal-do-expressions"), "proposal-do-expressions": require("@babel/plugin-proposal-do-expressions"),
"proposal-export-default-from": require("@babel/plugin-proposal-export-default-from"),
"proposal-export-namespace-from": require("@babel/plugin-proposal-export-namespace-from"),
"transform-arrow-functions": require("@babel/plugin-transform-arrow-functions"), "transform-arrow-functions": require("@babel/plugin-transform-arrow-functions"),
"transform-block-scoped-functions": require("@babel/plugin-transform-block-scoped-functions"), "transform-block-scoped-functions": require("@babel/plugin-transform-block-scoped-functions"),
"transform-block-scoping": require("@babel/plugin-transform-block-scoping"), "transform-block-scoping": require("@babel/plugin-transform-block-scoping"),

View File

@ -1310,12 +1310,10 @@ export default class StatementParser extends ExpressionParser {
parseExport(node: N.Node): N.Node { parseExport(node: N.Node): N.Node {
// export * from '...' // export * from '...'
if (this.shouldParseExportStar()) { if (this.shouldParseExportStar()) {
this.parseExportStar(node, this.hasPlugin("exportExtensions")); this.parseExportStar(node);
if (node.type === "ExportAllDeclaration") return node; if (node.type === "ExportAllDeclaration") return node;
} else if ( } else if (this.isExportDefaultSpecifier()) {
this.hasPlugin("exportExtensions") && this.expectPlugin("exportDefaultFrom");
this.isExportDefaultSpecifier()
) {
const specifier = this.startNode(); const specifier = this.startNode();
specifier.exported = this.parseIdentifier(true); specifier.exported = this.parseIdentifier(true);
const specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; const specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")];
@ -1426,27 +1424,35 @@ export default class StatementParser extends ExpressionParser {
return this.match(tt.star); return this.match(tt.star);
} }
parseExportStar(node: N.ExportNamedDeclaration, allowNamed: boolean): void { parseExportStar(node: N.ExportNamedDeclaration): void {
this.expect(tt.star); this.expect(tt.star);
if (allowNamed && this.isContextual("as")) { if (this.isContextual("as")) {
const specifier = this.startNodeAt( this.parseExportNamespace(node);
this.state.lastTokStart,
this.state.lastTokStartLoc,
);
this.next();
specifier.exported = this.parseIdentifier(true);
node.specifiers = [
this.finishNode(specifier, "ExportNamespaceSpecifier"),
];
this.parseExportSpecifiersMaybe(node);
this.parseExportFrom(node, true);
} else { } else {
this.parseExportFrom(node, true); this.parseExportFrom(node, true);
this.finishNode(node, "ExportAllDeclaration"); this.finishNode(node, "ExportAllDeclaration");
} }
} }
parseExportNamespace(node: N.ExportNamedDeclaration): void {
this.expectPlugin("exportNamespaceFrom");
const specifier = this.startNodeAt(
this.state.lastTokStart,
this.state.lastTokStartLoc,
);
this.next();
specifier.exported = this.parseIdentifier(true);
node.specifiers = [this.finishNode(specifier, "ExportNamespaceSpecifier")];
this.parseExportSpecifiersMaybe(node);
this.parseExportFrom(node, true);
}
shouldParseExportDeclaration(): boolean { shouldParseExportDeclaration(): boolean {
return ( return (
this.state.type.keyword === "var" || this.state.type.keyword === "var" ||

View File

@ -1585,13 +1585,20 @@ export default (superClass: Class<Parser>): Class<Parser> =>
); );
} }
parseExportStar(node: N.ExportNamedDeclaration, allowNamed: boolean): void { parseExportStar(node: N.ExportNamedDeclaration): void {
if (this.eatContextual("type")) { if (this.eatContextual("type")) {
node.exportKind = "type"; node.exportKind = "type";
allowNamed = false;
} }
return super.parseExportStar(node, allowNamed); return super.parseExportStar(node);
}
parseExportNamespace(node: N.ExportNamedDeclaration) {
if (node.exportKind === "type") {
this.unexpected();
}
return super.parseExportNamespace(node);
} }
parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) { parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) {

View File

@ -1,3 +1,3 @@
{ {
"throws": "Unexpected token, expected \";\" (1:20)" "throws": "This experimental syntax requires enabling the parser plugin: 'exportDefaultFrom' (1:7)"
} }

View File

@ -1,4 +1,4 @@
{ {
"throws": "This experimental syntax requires enabling the parser plugin: 'exportExtensions' (1:1)", "throws": "This experimental syntax requires enabling the parser plugin: 'exportDefaultFrom' (1:7)",
"plugins": [] "plugins": []
} }

View File

@ -0,0 +1 @@
export * as A from 'test';

View File

@ -0,0 +1,4 @@
{
"throws": "This experimental syntax requires enabling the parser plugin: 'exportNamespaceFrom' (1:9)",
"plugins": []
}

View File

@ -0,0 +1,4 @@
{
"sourceType": "module",
"plugins": ["exportDefaultFrom"]
}

View File

@ -0,0 +1,4 @@
{
"plugins": ["exportDefaultFrom", "exportNamespaceFrom"],
"sourceType": "module"
}

View File

@ -0,0 +1,4 @@
{
"sourceType": "module",
"plugins": ["exportDefaultFrom"]
}

View File

@ -1,5 +1,5 @@
{ {
"plugins": ["exportExtensions", "flow"], "plugins": ["exportDefaultFrom", "flow"],
"sourceType": "module", "sourceType": "module",
"throws": "Unexpected token, expected \"=\" (1:17)" "throws": "Unexpected token, expected \"=\" (1:17)"
} }

View File

@ -0,0 +1,4 @@
{
"plugins": ["exportDefaultFrom"],
"sourceType": "module"
}

View File

@ -0,0 +1,4 @@
{
"plugins": ["exportDefaultFrom"],
"sourceType": "module"
}

View File

@ -1,4 +1,4 @@
{ {
"plugins": ["exportExtensions", "typescript"], "plugins": ["exportDefaultFrom", "typescript"],
"sourceType": "module" "sourceType": "module"
} }

View File

@ -0,0 +1,4 @@
{
"sourceType": "module",
"plugins": ["exportNamespaceFrom"]
}

View File

@ -0,0 +1,4 @@
{
"plugins": ["exportNamespaceFrom"],
"sourceType": "module"
}

View File

@ -0,0 +1,4 @@
{
"plugins": ["exportNamespaceFrom"],
"sourceType": "module"
}

View File

@ -1,4 +0,0 @@
{
"plugins": ["exportExtensions"],
"sourceType": "module"
}

View File

@ -1,4 +0,0 @@
{
"sourceType": "module",
"plugins": ["exportExtensions"]
}

View File

@ -1,4 +0,0 @@
{
"sourceType": "module",
"plugins": ["exportExtensions"]
}

View File

@ -1 +0,0 @@
export foo from "bar";

View File

@ -1,103 +0,0 @@
{
"type": "File",
"start": 0,
"end": 22,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 22
}
},
"program": {
"type": "Program",
"start": 0,
"end": 22,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 22
}
},
"sourceType": "module",
"body": [
{
"type": "ExportNamedDeclaration",
"start": 0,
"end": 22,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 22
}
},
"specifiers": [
{
"type": "ExportDefaultSpecifier",
"start": 7,
"end": 10,
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 10
}
},
"exported": {
"type": "Identifier",
"start": 7,
"end": 10,
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 10
},
"identifierName": "foo"
},
"name": "foo"
}
}
],
"source": {
"type": "StringLiteral",
"start": 16,
"end": 21,
"loc": {
"start": {
"line": 1,
"column": 16
},
"end": {
"line": 1,
"column": 21
}
},
"extra": {
"rawValue": "bar",
"raw": "\"bar\""
},
"value": "bar"
}
}
],
"directives": []
}
}

View File

@ -1,4 +0,0 @@
{
"sourceType": "module",
"plugins": ["exportExtensions"]
}

View File

@ -1,4 +0,0 @@
{
"sourceType": "module",
"plugins": ["exportExtensions"]
}

View File

@ -1 +0,0 @@
export * as foo from "bar";

View File

@ -1,103 +0,0 @@
{
"type": "File",
"start": 0,
"end": 27,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 27
}
},
"program": {
"type": "Program",
"start": 0,
"end": 27,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 27
}
},
"sourceType": "module",
"body": [
{
"type": "ExportNamedDeclaration",
"start": 0,
"end": 27,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 27
}
},
"specifiers": [
{
"type": "ExportNamespaceSpecifier",
"start": 7,
"end": 15,
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 15
}
},
"exported": {
"type": "Identifier",
"start": 12,
"end": 15,
"loc": {
"start": {
"line": 1,
"column": 12
},
"end": {
"line": 1,
"column": 15
},
"identifierName": "foo"
},
"name": "foo"
}
}
],
"source": {
"type": "StringLiteral",
"start": 21,
"end": 26,
"loc": {
"start": {
"line": 1,
"column": 21
},
"end": {
"line": 1,
"column": 26
}
},
"extra": {
"rawValue": "bar",
"raw": "\"bar\""
},
"value": "bar"
}
}
],
"directives": []
}
}

View File

@ -1,4 +0,0 @@
{
"sourceType": "module",
"plugins": ["exportExtensions"]
}

View File

@ -1,3 +1,3 @@
{ {
"plugins": ["jsx", "flow", "exportExtensions"] "plugins": ["jsx", "flow", "exportNamespaceFrom"]
} }

View File

@ -1,5 +1,5 @@
{ {
"sourceType": "module", "sourceType": "module",
"plugins": ["flow","exportExtensions"], "plugins": ["flow", "exportNamespaceFrom"],
"throws": "Unexpected token (1:14)" "throws": "Unexpected token (1:14)"
} }

View File

@ -1,3 +1,3 @@
{ {
"plugins": ["exportExtensions", "typescript"] "plugins": ["exportDefaultFrom", "typescript"]
} }

View File

@ -107,7 +107,7 @@ const options = {
const flowOptionsMapping = { const flowOptionsMapping = {
esproposal_class_instance_fields: "classProperties", esproposal_class_instance_fields: "classProperties",
esproposal_class_static_fields: "classProperties", esproposal_class_static_fields: "classProperties",
esproposal_export_star_as: "exportExtensions", esproposal_export_star_as: "exportNamespaceFrom",
esproposal_decorators: "decorators", esproposal_decorators: "decorators",
}; };