Rename all proposal plugins to -proposal- from -transform- (#6570)
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
src
|
||||
test
|
||||
*.log
|
||||
45
packages/babel-plugin-proposal-export-namespace/README.md
Normal file
45
packages/babel-plugin-proposal-export-namespace/README.md
Normal 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)
|
||||
20
packages/babel-plugin-proposal-export-namespace/package.json
Normal file
20
packages/babel-plugin-proposal-export-namespace/package.json
Normal 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"
|
||||
}
|
||||
}
|
||||
40
packages/babel-plugin-proposal-export-namespace/src/index.js
Normal file
40
packages/babel-plugin-proposal-export-namespace/src/index.js
Normal 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);
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export foo from "bar";
|
||||
@@ -0,0 +1 @@
|
||||
export foo from "bar";
|
||||
@@ -0,0 +1 @@
|
||||
export v, * as ns from "mod";
|
||||
@@ -0,0 +1,3 @@
|
||||
export v from "mod";
|
||||
import * as _ns from "mod";
|
||||
export { _ns as ns };
|
||||
@@ -0,0 +1 @@
|
||||
export * as default from "foo";
|
||||
@@ -0,0 +1,2 @@
|
||||
import * as _default from "foo";
|
||||
export { _default as default };
|
||||
@@ -0,0 +1 @@
|
||||
export * as foo from "bar";
|
||||
@@ -0,0 +1,2 @@
|
||||
import * as _foo from "bar";
|
||||
export { _foo as foo };
|
||||
3
packages/babel-plugin-proposal-export-namespace/test/fixtures/export-namespace/options.json
vendored
Normal file
3
packages/babel-plugin-proposal-export-namespace/test/fixtures/export-namespace/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"plugins": ["external-helpers", "proposal-export-namespace"]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
import runner from "@babel/helper-plugin-test-runner";
|
||||
|
||||
runner(__dirname);
|
||||
Reference in New Issue
Block a user