This commit is contained in:
chrosey
2017-09-13 07:52:34 +02:00
parent a1f16c37f4
commit 2340b0226b
24621 changed files with 2912161 additions and 149 deletions
+4
View File
@@ -0,0 +1,4 @@
node_modules
*.log
src
test
+123
View File
@@ -0,0 +1,123 @@
# babel-plugin-syntax-trailing-function-commas
Compile trailing function commas to ES5
```js
function clownPuppiesEverywhere(
param1,
param2,
) { /* ... */ }
clownPuppiesEverywhere(
'foo',
'bar',
);
```
[Try in REPL](http://babeljs.io/repl/#?evaluate=true&presets=es2015%2Cstage-0&code=function%20clownPuppiesEverywhere(%0A%20%20param1%2C%0A%20%20param2%2C%0A)%20%7B%20%2F*%20...%20*%2F%20%7D%0A%0AclownPuppiesEverywhere(%0A%20%20'foo'%2C%0A%20%20'bar'%2C%0A)%3B)
## Example
### Basic
This is an example from the [Proposal](https://github.com/jeffmo/es-trailing-function-commas).
Let's say you have this function:
```js
function clownPuppiesEverywhere(
param1,
param2
) { /* ... */ }
clownPuppiesEverywhere(
'foo',
'bar'
);
```
If you want to have a new parameter called `param3`, the diff output would be like that:
```diff
function clownPuppiesEverywhere(
param1,
- param2
+ param2, // Change this line to add a comma
+ param3 // Add param3
) { /* ... */ }
clownPuppiesEverywhere(
'foo',
- 'bar'
+ 'bar', // Change this line to add a comma
+ 'baz' // Add param3
);
```
In total, you have to change 2 lines for the function declaration and 2 lines for each usage.
If you had your function defined with trailing commas:
```js
function clownPuppiesEverywhere(
param1,
param2,
) { /* ... */ }
clownPuppiesEverywhere(
'foo',
'bar',
);
```
Adding a new parameter would only change one line in the function declaration and one line for each usage:
```diff
function clownPuppiesEverywhere(
param1,
param2,
+ param3, // Add param3
) { /* ... */ }
clownPuppiesEverywhere(
'foo',
'bar',
+ 'baz', // Add param3
);
```
In the end, your diff output will be cleaner and easier to read, it would be much quicker to add a new parameter to your functions, it also makes it easier to copy paste elements and move code around.
## Installation
```sh
npm install --save-dev babel-plugin-syntax-trailing-function-commas
```
## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"plugins": ["syntax-trailing-function-commas"]
}
```
### Via CLI
```sh
babel --plugins syntax-trailing-function-commas script.js
```
### Via Node API
```javascript
require("babel-core").transform("code", {
plugins: ["syntax-trailing-function-commas"]
});
```
## References
* [Proposal](https://github.com/jeffmo/es-trailing-function-commas)
* [Spec](http://jeffmo.github.io/es-trailing-function-commas/)
* [Why you should enforce Dangling Commas for Multiline Statements](https://medium.com/@nikgraf/why-you-should-enforce-dangling-commas-for-multiline-statements-d034c98e36f8)
+13
View File
@@ -0,0 +1,13 @@
"use strict";
exports.__esModule = true;
exports.default = function () {
return {
manipulateOptions: function manipulateOptions(opts, parserOpts) {
parserOpts.plugins.push("trailingFunctionCommas");
}
};
};
module.exports = exports["default"];
+98
View File
@@ -0,0 +1,98 @@
{
"_args": [
[
{
"raw": "babel-plugin-syntax-trailing-function-commas@^6.22.0",
"scope": null,
"escapedName": "babel-plugin-syntax-trailing-function-commas",
"name": "babel-plugin-syntax-trailing-function-commas",
"rawSpec": "^6.22.0",
"spec": ">=6.22.0 <7.0.0",
"type": "range"
},
"c:\\xampp\\htdocs\\laravel\\node_modules\\babel-preset-env"
]
],
"_from": "babel-plugin-syntax-trailing-function-commas@>=6.22.0 <7.0.0",
"_id": "babel-plugin-syntax-trailing-function-commas@6.22.0",
"_inCache": true,
"_location": "/babel-plugin-syntax-trailing-function-commas",
"_nodeVersion": "6.9.0",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz_1484872420863_0.6671405488159508"
},
"_npmUser": {
"name": "hzoo",
"email": "hi@henryzoo.com"
},
"_npmVersion": "3.10.10",
"_phantomChildren": {},
"_requested": {
"raw": "babel-plugin-syntax-trailing-function-commas@^6.22.0",
"scope": null,
"escapedName": "babel-plugin-syntax-trailing-function-commas",
"name": "babel-plugin-syntax-trailing-function-commas",
"rawSpec": "^6.22.0",
"spec": ">=6.22.0 <7.0.0",
"type": "range"
},
"_requiredBy": [
"/babel-preset-env"
],
"_resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
"_shasum": "ba0360937f8d06e40180a43fe0d5616fff532cf3",
"_shrinkwrap": null,
"_spec": "babel-plugin-syntax-trailing-function-commas@^6.22.0",
"_where": "c:\\xampp\\htdocs\\laravel\\node_modules\\babel-preset-env",
"dependencies": {},
"description": "Compile trailing function commas to ES5",
"devDependencies": {
"babel-helper-plugin-test-runner": "^6.22.0"
},
"directories": {},
"dist": {
"shasum": "ba0360937f8d06e40180a43fe0d5616fff532cf3",
"tarball": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz"
},
"keywords": [
"babel-plugin"
],
"license": "MIT",
"main": "lib/index.js",
"maintainers": [
{
"name": "amasad",
"email": "amjad.masad@gmail.com"
},
{
"name": "hzoo",
"email": "hi@henryzoo.com"
},
{
"name": "jmm",
"email": "npm-public@jessemccarthy.net"
},
{
"name": "loganfsmyth",
"email": "loganfsmyth@gmail.com"
},
{
"name": "sebmck",
"email": "sebmck@gmail.com"
},
{
"name": "thejameskyle",
"email": "me@thejameskyle.com"
}
],
"name": "babel-plugin-syntax-trailing-function-commas",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-trailing-function-commas"
},
"scripts": {},
"version": "6.22.0"
}