Rename all proposal plugins to -proposal- from -transform- (#6570)

This commit is contained in:
Henry Zhu
2017-10-27 15:26:38 -04:00
committed by GitHub
parent a94aa54230
commit c41abd79a1
599 changed files with 372 additions and 372 deletions

View File

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

View File

@@ -0,0 +1,45 @@
# @babel/plugin-proposal-export-namespace
> Compile export-ns-from statements to ES2015
## Example
```js
export * as ns from 'mod';
```
## Installation
```sh
npm install --save-dev @babel/plugin-proposal-export-namespace
```
## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"plugins": ["@babel/proposal-export-namespace"]
}
```
### Via CLI
```sh
babel --plugins @babel/proposal-export-namespace script.js
```
### Via Node API
```javascript
require("@babel/core").transform("code", {
plugins: ["@babel/proposal-export-namespace"]
});
```
## References
* ~~[Proposal: Additional export-from statements in ES7](https://github.com/leebyron/ecmascript-more-export-from)~~ (Withdrawn)
* [ECMAScript Proposal: export ns from](https://github.com/leebyron/ecmascript-export-ns-from)

View File

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

View File

@@ -0,0 +1,40 @@
import syntaxExportExtensions from "@babel/plugin-syntax-export-extensions";
export default function({ types: t }) {
return {
inherits: syntaxExportExtensions,
visitor: {
ExportNamedDeclaration(path) {
const { node, scope } = path;
const { specifiers } = node;
const index = t.isExportDefaultSpecifier(specifiers[0]) ? 1 : 0;
if (!t.isExportNamespaceSpecifier(specifiers[index])) return;
const nodes = [];
if (index === 1) {
nodes.push(
t.exportNamedDeclaration(null, [specifiers.shift()], node.source),
);
}
const specifier = specifiers.shift();
const { exported } = specifier;
const uid = scope.generateUidIdentifier(exported.name);
nodes.push(
t.importDeclaration([t.importNamespaceSpecifier(uid)], node.source),
t.exportNamedDeclaration(null, [t.exportSpecifier(uid, exported)]),
);
if (node.specifiers.length >= 1) {
nodes.push(node);
}
path.replaceWithMultiple(nodes);
},
},
};
}

View File

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

View File

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

View File

@@ -0,0 +1 @@
export v, * as ns from "mod";

View File

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

View File

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

View File

@@ -0,0 +1,2 @@
import * as _default from "foo";
export { _default as default };

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,3 @@
import runner from "@babel/helper-plugin-test-runner";
runner(__dirname);