Skip to content

Commit

Permalink
Clean up @babel/eslint-plugin (#10756)
Browse files Browse the repository at this point in the history
* Clean up @babel/eslint-plugin

* Add directory field to package.json

* Update eslint/babel-eslint-plugin/README.md

Co-Authored-By: Hu谩ng J霉nli脿ng <jlhwung@gmail.com>

* Incorporate feedback :)
  • Loading branch information
kaicataldo authored and JLHwung committed Nov 25, 2019
1 parent e81bbd6 commit 7f732ad
Show file tree
Hide file tree
Showing 26 changed files with 139 additions and 150 deletions.
32 changes: 15 additions & 17 deletions eslint/babel-eslint-plugin/README.md
@@ -1,24 +1,22 @@
# eslint-plugin-babel
# @babel/eslint-plugin

An `eslint` plugin companion to `babel-eslint`. `babel-eslint` does a great job at adapting `eslint`
Companion rules for `@babel/eslint-parser`. `@babel/eslint-parser` does a great job at adapting `eslint`
for use with Babel, but it can't change the built in rules to support experimental features.
`eslint-plugin-babel` re-implements problematic rules so they do not give false positives or negatives.
`@babel/eslint-plugin` re-implements problematic rules so they do not give false positives or negatives.

> Requires Node 4 or greater
> Requires Node 10.9 or greater
### Install

```sh
npm install eslint-plugin-babel --save-dev
npm install @babel/eslint-plugin --save-dev
```

Load the plugin in your `.eslintrc` file:
Load the plugin in your `.eslintrc.json` file:

```json
{
"plugins": [
"babel"
]
"plugins": ["@babel/eslint-plugin"]
}
```

Expand All @@ -28,14 +26,14 @@ original ones as well!).
```json
{
"rules": {
"babel/new-cap": 1,
"babel/camelcase": 1,
"babel/no-invalid-this": 1,
"babel/object-curly-spacing": 1,
"babel/quotes": 1,
"babel/semi": 1,
"babel/no-unused-expressions": 1,
"babel/valid-typeof": 1
"babel/new-cap": "error",
"babel/camelcase": "error",
"babel/no-invalid-this": "error",
"babel/object-curly-spacing": "error",
"babel/quotes": "error",
"babel/semi": "error",
"babel/no-unused-expressions": "error",
"babel/valid-typeof": "error"
}
}
```
Expand Down
15 changes: 8 additions & 7 deletions eslint/babel-eslint-plugin/package.json
@@ -1,11 +1,12 @@
{
"name": "eslint-plugin-babel",
"version": "5.3.0",
"description": "an eslint rule plugin companion to babel-eslint",
"name": "@babel/eslint-plugin",
"version": "0.0.0",
"description": "Companion rules for @babel/eslint-parser",
"main": "lib/index.js",
"repository": {
"type": "git",
"url": "git+https://github.com/babel/eslint-plugin-babel.git"
"url": "git+https://github.com/babel/babel.git",
"directory": "eslint/babel-eslint-plugin"
},
"keywords": [
"babel",
Expand All @@ -18,12 +19,12 @@
"license": "MIT",
"private": true,
"engines": {
"node": ">=4"
"node": ">=10.9"
},
"bugs": {
"url": "https://github.com/babel/eslint-plugin-babel/issues"
"url": "https://github.com/babel/babel/issues"
},
"homepage": "https://github.com/babel/eslint-plugin-babel#readme",
"homepage": "https://github.com/babel/babel/tree/master/eslint/babel-eslint-plugin",
"peerDependencies": {
"eslint": ">=4.0.0"
},
Expand Down
76 changes: 45 additions & 31 deletions eslint/babel-eslint-plugin/src/index.js
@@ -1,38 +1,52 @@
"use strict";
import arrayBracketSpacing from "./rules/array-bracket-spacing";
import arrowParens from "./rules/arrow-parens";
import flowObjectType from "./rules/flow-object-type";
import funcParamsCommaDangle from "./rules/func-params-comma-dangle";
import generatorStarSpacing from "./rules/generator-star-spacing";
import newCap from "./rules/new-cap";
import camelcase from "./rules/camelcase";
import noAwaitInLoop from "./rules/no-await-in-loop";
import noInvalidThis from "./rules/no-invalid-this";
import noUnusedExpressions from "./rules/no-unused-expressions";
import objectCurlySpacing from "./rules/object-curly-spacing";
import objectShorthand from "./rules/object-shorthand";
import quotes from "./rules/quotes";
import semi from "./rules/semi";
import validTypeof from "./rules/valid-typeof";

module.exports = {
rules: {
"array-bracket-spacing": require("./rules/array-bracket-spacing"),
"arrow-parens": require("./rules/arrow-parens"),
"flow-object-type": require("./rules/flow-object-type"),
"func-params-comma-dangle": require("./rules/func-params-comma-dangle"),
"generator-star-spacing": require("./rules/generator-star-spacing"),
"new-cap": require("./rules/new-cap"),
camelcase: require("./rules/camelcase"),
"no-await-in-loop": require("./rules/no-await-in-loop"),
"no-invalid-this": require("./rules/no-invalid-this"),
"no-unused-expressions": require("./rules/no-unused-expressions"),
"object-curly-spacing": require("./rules/object-curly-spacing"),
"object-shorthand": require("./rules/object-shorthand"),
quotes: require("./rules/quotes"),
semi: require("./rules/semi"),
"valid-typeof": require("./rules/valid-typeof"),
"array-bracket-spacing": arrayBracketSpacing,
"arrow-parens": arrowParens,
"flow-object-type": flowObjectType,
"func-params-comma-dangle": funcParamsCommaDangle,
"generator-star-spacing": generatorStarSpacing,
"new-cap": newCap,
camelcase,
"no-await-in-loop": noAwaitInLoop,
"no-invalid-this": noInvalidThis,
"no-unused-expressions": noUnusedExpressions,
"object-curly-spacing": objectCurlySpacing,
"object-shorthand": objectShorthand,
quotes,
semi,
"valid-typeof": validTypeof,
},
rulesConfig: {
"array-bracket-spacing": 0,
"arrow-parens": 0,
camelcase: 0,
"flow-object-type": 0,
"func-params-comma-dangle": 0,
"generator-star-spacing": 0,
"new-cap": 0,
"no-await-in-loop": 0,
"no-invalid-this": 0,
"no-unused-expressions": 0,
"object-curly-spacing": 0,
"object-shorthand": 0,
quotes: 0,
semi: 0,
"valid-typeof": 0,
"array-bracket-spacing": "off",
"arrow-parens": "off",
camelcase: "off",
"flow-object-type": "off",
"func-params-comma-dangle": "off",
"generator-star-spacing": "off",
"new-cap": "off",
"no-await-in-loop": "off",
"no-invalid-this": "off",
"no-unused-expressions": "off",
"object-curly-spacing": "off",
"object-shorthand": "off",
quotes: "off",
semi: "off",
"valid-typeof": "off",
},
};
9 changes: 4 additions & 5 deletions eslint/babel-eslint-plugin/src/rules/array-bracket-spacing.js
@@ -1,7 +1,6 @@
"use strict";

let isWarnedForDeprecation = false;
module.exports = {

export default {
meta: {
deprecated: true,
schema: [
Expand All @@ -25,9 +24,9 @@ module.exports = {
},
],
},
create: function() {
create() {
return {
Program: function() {
Program() {
if (
isWarnedForDeprecation ||
/=-(f|-format)=/.test(process.argv.join("="))
Expand Down
9 changes: 4 additions & 5 deletions eslint/babel-eslint-plugin/src/rules/arrow-parens.js
@@ -1,7 +1,6 @@
"use strict";

let isWarnedForDeprecation = false;
module.exports = {

export default {
meta: {
deprecated: true,
schema: [
Expand All @@ -10,9 +9,9 @@ module.exports = {
},
],
},
create: function() {
create() {
return {
Program: function() {
Program() {
if (
isWarnedForDeprecation ||
/=-(f|-format)=/.test(process.argv.join("="))
Expand Down
2 changes: 1 addition & 1 deletion eslint/babel-eslint-plugin/src/rules/camelcase.js
Expand Up @@ -9,7 +9,7 @@
// Rule Definition
//------------------------------------------------------------------------------

module.exports = {
export default {
meta: {
docs: {
description: "enforce camelcase naming convention",
Expand Down
11 changes: 5 additions & 6 deletions eslint/babel-eslint-plugin/src/rules/flow-object-type.js
@@ -1,7 +1,6 @@
"use strict";

let isWarnedForDeprecation = false;
module.exports = {

export default {
meta: {
deprecated: true,
schema: [
Expand All @@ -10,9 +9,9 @@ module.exports = {
},
],
},
create: function() {
create() {
return {
Program: function() {
Program() {
if (
isWarnedForDeprecation ||
/=-(f|-format)=/.test(process.argv.join("="))
Expand All @@ -24,7 +23,7 @@ module.exports = {
"The babel/flow-object-type rule is deprecated. Please " +
"use the flowtype/object-type-delimiter rule instead.\n" +
// eslint-disable-next-line
"Check out https://github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-object-type-delimiter"
"Check out https://github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-object-type-delimiter",
);

isWarnedForDeprecation = true;
Expand Down
@@ -1,7 +1,6 @@
"use strict";

let isWarnedForDeprecation = false;
module.exports = {

export default {
meta: {
deprecated: true,
schema: [
Expand All @@ -10,9 +9,9 @@ module.exports = {
},
],
},
create: function() {
create() {
return {
Program: function() {
Program() {
if (
isWarnedForDeprecation ||
/=-(f|-format)=/.test(process.argv.join("="))
Expand Down
@@ -1,7 +1,6 @@
"use strict";

let isWarnedForDeprecation = false;
module.exports = {

export default {
meta: {
deprecated: true,
schema: [
Expand All @@ -22,9 +21,9 @@ module.exports = {
},
],
},
create: function() {
create() {
return {
Program: function() {
Program() {
if (
isWarnedForDeprecation ||
/=-(f|-format)=/.test(process.argv.join("="))
Expand Down
7 changes: 3 additions & 4 deletions eslint/babel-eslint-plugin/src/rules/new-cap.js
@@ -1,7 +1,6 @@
"use strict";
import ruleComposer from "eslint-rule-composer";
import eslint from "eslint";

const ruleComposer = require("eslint-rule-composer");
const eslint = require("eslint");
const newCapRule = new eslint.Linter().getRules().get("new-cap");

/**
Expand All @@ -13,7 +12,7 @@ function isDecorator(node) {
return node.parent.type === "Decorator";
}

module.exports = ruleComposer.filterReports(
export default ruleComposer.filterReports(
newCapRule,
problem => !isDecorator(problem.node),
);
9 changes: 4 additions & 5 deletions eslint/babel-eslint-plugin/src/rules/no-await-in-loop.js
@@ -1,14 +1,13 @@
"use strict";

let isWarnedForDeprecation = false;
module.exports = {

export default {
meta: {
deprecated: true,
schema: [],
},
create: function() {
create() {
return {
Program: function() {
Program() {
if (
isWarnedForDeprecation ||
/=-(f|-format)=/.test(process.argv.join("="))
Expand Down
7 changes: 3 additions & 4 deletions eslint/babel-eslint-plugin/src/rules/no-invalid-this.js
@@ -1,10 +1,9 @@
"use strict";
import ruleComposer from "eslint-rule-composer";
import eslint from "eslint";

const ruleComposer = require("eslint-rule-composer");
const eslint = require("eslint");
const noInvalidThisRule = new eslint.Linter().getRules().get("no-invalid-this");

module.exports = ruleComposer.filterReports(noInvalidThisRule, problem => {
export default ruleComposer.filterReports(noInvalidThisRule, problem => {
let inClassProperty = false;
let node = problem.node;

Expand Down
7 changes: 3 additions & 4 deletions eslint/babel-eslint-plugin/src/rules/no-unused-expressions.js
@@ -1,7 +1,6 @@
"use strict";
import ruleComposer from "eslint-rule-composer";
import eslint from "eslint";

const ruleComposer = require("eslint-rule-composer");
const eslint = require("eslint");
const rule = new eslint.Linter().getRules().get("no-unused-expressions");

/**
Expand Down Expand Up @@ -57,7 +56,7 @@ function isOptionalCallExpression(node) {
);
}

module.exports = ruleComposer.filterReports(
export default ruleComposer.filterReports(
rule,
problem =>
!isInDoStatement(problem.node) && !isOptionalCallExpression(problem.node),
Expand Down
7 changes: 3 additions & 4 deletions eslint/babel-eslint-plugin/src/rules/object-curly-spacing.js
@@ -1,12 +1,11 @@
"use strict";
import ruleComposer from "eslint-rule-composer";
import eslint from "eslint";

const ruleComposer = require("eslint-rule-composer");
const eslint = require("eslint");
const objectCurlySpacingRule = new eslint.Linter()
.getRules()
.get("object-curly-spacing");

module.exports = ruleComposer.filterReports(
export default ruleComposer.filterReports(
objectCurlySpacingRule,
(problem, metadata) => {
const node = problem.node;
Expand Down

0 comments on commit 7f732ad

Please sign in to comment.