eslint-config-standard-kit
Advanced tools
Comparing version 0.13.0 to 0.14.0
# eslint-config-standard-kit | ||
## 0.14.0 (2019-09-25) | ||
- Upgrade to Standard.js 14. | ||
- Base TypeScript support on `eslint-config-standard-with-typescript`. | ||
## 0.13.0 (2019-07-30) | ||
@@ -4,0 +9,0 @@ |
57
index.js
@@ -7,3 +7,3 @@ // Standard.js basic rules | ||
"parserOptions": { | ||
"ecmaVersion": 2018, | ||
"ecmaVersion": 2020, | ||
"ecmaFeatures": { | ||
@@ -24,5 +24,5 @@ "jsx": true | ||
"console": "readonly", | ||
"document": false, | ||
"navigator": false, | ||
"window": false | ||
"document": "readonly", | ||
"navigator": "readonly", | ||
"window": "readonly" | ||
}, | ||
@@ -93,2 +93,8 @@ "rules": { | ||
], | ||
"dot-notation": [ | ||
"error", | ||
{ | ||
"allowKeywords": true | ||
} | ||
], | ||
"eol-last": "error", | ||
@@ -140,3 +146,6 @@ "eqeqeq": [ | ||
"flatTernaryExpressions": false, | ||
"ignoreComments": false | ||
"ignoreComments": false, | ||
"ignoredNodes": [ | ||
"TemplateLiteral *" | ||
] | ||
} | ||
@@ -160,3 +169,6 @@ ], | ||
"error", | ||
"always" | ||
"always", | ||
{ | ||
"exceptAfterSingleLine": true | ||
} | ||
], | ||
@@ -167,3 +179,4 @@ "new-cap": [ | ||
"newIsCap": true, | ||
"capIsNew": false | ||
"capIsNew": false, | ||
"properties": true | ||
} | ||
@@ -175,2 +188,3 @@ ], | ||
"no-caller": "error", | ||
"no-case-declarations": "error", | ||
"no-class-assign": "error", | ||
@@ -216,3 +230,2 @@ "no-compare-neg-zero": "error", | ||
"no-iterator": "error", | ||
"no-label-var": "error", | ||
"no-labels": [ | ||
@@ -289,3 +302,8 @@ "error", | ||
"no-return-await": "error", | ||
"no-self-assign": "error", | ||
"no-self-assign": [ | ||
"error", | ||
{ | ||
"props": true | ||
} | ||
], | ||
"no-self-compare": "error", | ||
@@ -343,4 +361,12 @@ "no-sequences": "error", | ||
"no-useless-return": "error", | ||
"no-void": "error", | ||
"no-whitespace-before-property": "error", | ||
"no-with": "error", | ||
"object-curly-newline": [ | ||
"error", | ||
{ | ||
"multiline": true, | ||
"consistent": true | ||
} | ||
], | ||
"object-curly-spacing": [ | ||
@@ -368,3 +394,4 @@ "error", | ||
"?": "before", | ||
":": "before" | ||
":": "before", | ||
"|>": "before" | ||
} | ||
@@ -397,3 +424,3 @@ } | ||
"avoidEscape": true, | ||
"allowTemplateLiterals": true | ||
"allowTemplateLiterals": false | ||
} | ||
@@ -502,2 +529,10 @@ ], | ||
"import/first": "error", | ||
"import/no-absolute-path": [ | ||
"error", | ||
{ | ||
"esmodule": true, | ||
"commonjs": true, | ||
"amd": false | ||
} | ||
], | ||
"import/no-duplicates": "error", | ||
@@ -504,0 +539,0 @@ "import/no-named-default": "error", |
66
jsx.js
@@ -7,3 +7,3 @@ // Standard.js JSX rules | ||
"parserOptions": { | ||
"ecmaVersion": 2018, | ||
"ecmaVersion": 2020, | ||
"ecmaFeatures": { | ||
@@ -23,5 +23,32 @@ "jsx": true | ||
"react/jsx-boolean-value": "error", | ||
"react/jsx-closing-bracket-location": [ | ||
"error", | ||
"tag-aligned" | ||
], | ||
"react/jsx-closing-tag-location": "error", | ||
"react/jsx-curly-brace-presence": [ | ||
"error", | ||
{ | ||
"props": "never", | ||
"children": "never" | ||
} | ||
], | ||
"react/jsx-curly-newline": [ | ||
"error", | ||
{ | ||
"multiline": "consistent", | ||
"singleline": "consistent" | ||
} | ||
], | ||
"react/jsx-curly-spacing": [ | ||
"error", | ||
"never" | ||
{ | ||
"attributes": { | ||
"when": "never" | ||
}, | ||
"children": { | ||
"when": "never" | ||
}, | ||
"allowMultiline": true | ||
} | ||
], | ||
@@ -32,5 +59,18 @@ "react/jsx-equals-spacing": [ | ||
], | ||
"react/jsx-first-prop-new-line": [ | ||
"error", | ||
"multiline-multiprop" | ||
], | ||
"react/jsx-fragments": [ | ||
"error", | ||
"syntax" | ||
], | ||
"react/jsx-handler-names": "error", | ||
"react/jsx-indent": [ | ||
"error", | ||
2 | ||
2, | ||
{ | ||
"checkAttributes": true, | ||
"indentLogicalExpressions": true | ||
} | ||
], | ||
@@ -41,8 +81,26 @@ "react/jsx-indent-props": [ | ||
], | ||
"react/jsx-key": "error", | ||
"react/jsx-no-comment-textnodes": "error", | ||
"react/jsx-no-duplicate-props": "error", | ||
"react/jsx-no-target-blank": [ | ||
"error", | ||
{ | ||
"enforceDynamicLinks": "always" | ||
} | ||
], | ||
"react/jsx-no-undef": "error", | ||
"react/jsx-pascal-case": [ | ||
"error", | ||
{ | ||
"allowAllCaps": false | ||
} | ||
], | ||
"react/jsx-props-no-multi-spaces": "error", | ||
"react/jsx-tag-spacing": [ | ||
"error", | ||
{ | ||
"beforeSelfClosing": "always" | ||
"closingSlash": "never", | ||
"beforeSelfClosing": "always", | ||
"afterOpening": "never", | ||
"beforeClosing": "never" | ||
} | ||
@@ -49,0 +107,0 @@ ], |
@@ -7,3 +7,3 @@ // Standard.js basic rules without formatting | ||
"parserOptions": { | ||
"ecmaVersion": 2018, | ||
"ecmaVersion": 2020, | ||
"ecmaFeatures": { | ||
@@ -24,5 +24,5 @@ "jsx": true | ||
"console": "readonly", | ||
"document": false, | ||
"navigator": false, | ||
"window": false | ||
"document": "readonly", | ||
"navigator": "readonly", | ||
"window": "readonly" | ||
}, | ||
@@ -38,2 +38,8 @@ "rules": { | ||
"constructor-super": "error", | ||
"dot-notation": [ | ||
"error", | ||
{ | ||
"allowKeywords": true | ||
} | ||
], | ||
"eqeqeq": [ | ||
@@ -52,3 +58,6 @@ "error", | ||
"error", | ||
"always" | ||
"always", | ||
{ | ||
"exceptAfterSingleLine": true | ||
} | ||
], | ||
@@ -59,3 +68,4 @@ "new-cap": [ | ||
"newIsCap": true, | ||
"capIsNew": false | ||
"capIsNew": false, | ||
"properties": true | ||
} | ||
@@ -66,2 +76,3 @@ ], | ||
"no-caller": "error", | ||
"no-case-declarations": "error", | ||
"no-class-assign": "error", | ||
@@ -102,3 +113,2 @@ "no-compare-neg-zero": "error", | ||
"no-iterator": "error", | ||
"no-label-var": "error", | ||
"no-labels": [ | ||
@@ -140,3 +150,8 @@ "error", | ||
"no-return-await": "error", | ||
"no-self-assign": "error", | ||
"no-self-assign": [ | ||
"error", | ||
{ | ||
"props": true | ||
} | ||
], | ||
"no-self-compare": "error", | ||
@@ -191,2 +206,3 @@ "no-sequences": "error", | ||
"no-useless-return": "error", | ||
"no-void": "error", | ||
"no-with": "error", | ||
@@ -249,2 +265,10 @@ "one-var": [ | ||
"import/first": "error", | ||
"import/no-absolute-path": [ | ||
"error", | ||
{ | ||
"esmodule": true, | ||
"commonjs": true, | ||
"amd": false | ||
} | ||
], | ||
"import/no-duplicates": "error", | ||
@@ -251,0 +275,0 @@ "import/no-named-default": "error", |
@@ -7,3 +7,3 @@ // Standard.js JSX rules without formatting | ||
"parserOptions": { | ||
"ecmaVersion": 2018, | ||
"ecmaVersion": 2020, | ||
"ecmaFeatures": { | ||
@@ -19,4 +19,30 @@ "jsx": true | ||
"react/jsx-boolean-value": "error", | ||
"react/jsx-curly-brace-presence": [ | ||
"error", | ||
{ | ||
"props": "never", | ||
"children": "never" | ||
} | ||
], | ||
"react/jsx-fragments": [ | ||
"error", | ||
"syntax" | ||
], | ||
"react/jsx-handler-names": "error", | ||
"react/jsx-key": "error", | ||
"react/jsx-no-comment-textnodes": "error", | ||
"react/jsx-no-duplicate-props": "error", | ||
"react/jsx-no-target-blank": [ | ||
"error", | ||
{ | ||
"enforceDynamicLinks": "always" | ||
} | ||
], | ||
"react/jsx-no-undef": "error", | ||
"react/jsx-pascal-case": [ | ||
"error", | ||
{ | ||
"allowAllCaps": false | ||
} | ||
], | ||
"react/jsx-uses-react": "error", | ||
@@ -23,0 +49,0 @@ "react/jsx-uses-vars": "error", |
@@ -7,45 +7,104 @@ // Typescript language support rules without formatting | ||
"parser": "@typescript-eslint/parser", | ||
"parserOptions": { | ||
"sourceType": "module" | ||
}, | ||
"plugins": [ | ||
"@typescript-eslint" | ||
], | ||
"rules": { | ||
"@typescript-eslint/adjacent-overload-signatures": "error", | ||
"@typescript-eslint/ban-types": "error", | ||
"camelcase": "off", | ||
"@typescript-eslint/class-name-casing": "error", | ||
"@typescript-eslint/interface-name-prefix": "error", | ||
"@typescript-eslint/no-angle-bracket-type-assertion": "error", | ||
"no-array-constructor": "off", | ||
"@typescript-eslint/no-array-constructor": "error", | ||
"@typescript-eslint/no-empty-interface": "error", | ||
"@typescript-eslint/no-explicit-any": "warn", | ||
"@typescript-eslint/no-misused-new": "error", | ||
"@typescript-eslint/no-namespace": "error", | ||
"@typescript-eslint/no-non-null-assertion": "error", | ||
"@typescript-eslint/no-object-literal-type-assertion": "error", | ||
"@typescript-eslint/no-parameter-properties": "error", | ||
"@typescript-eslint/no-triple-slash-reference": "error", | ||
"no-unused-vars": "off", | ||
"@typescript-eslint/no-unused-vars": [ | ||
"error", | ||
{ | ||
"args": "none" | ||
"overrides": [ | ||
{ | ||
"files": [ | ||
"*.ts", | ||
"*.tsx" | ||
], | ||
"rules": { | ||
"no-undef": "off", | ||
"camelcase": "off", | ||
"no-array-constructor": "off", | ||
"no-empty-function": "off", | ||
"no-unused-vars": "off", | ||
"no-use-before-define": "off", | ||
"no-useless-constructor": "off", | ||
"require-await": "off", | ||
"@typescript-eslint/camelcase": [ | ||
"error", | ||
{ | ||
"properties": "never" | ||
} | ||
], | ||
"@typescript-eslint/no-array-constructor": "error", | ||
"@typescript-eslint/no-empty-function": "error", | ||
"@typescript-eslint/no-unused-vars": [ | ||
"error", | ||
{ | ||
"args": "none" | ||
} | ||
], | ||
"@typescript-eslint/no-use-before-define": [ | ||
"error", | ||
{ | ||
"functions": false, | ||
"classes": false, | ||
"variables": false, | ||
"typedefs": false | ||
} | ||
], | ||
"@typescript-eslint/no-useless-constructor": "error", | ||
"@typescript-eslint/require-await": "error", | ||
"@typescript-eslint/adjacent-overload-signatures": "error", | ||
"@typescript-eslint/array-type": [ | ||
"error", | ||
{ | ||
"default": "array-simple" | ||
} | ||
], | ||
"@typescript-eslint/consistent-type-assertions": [ | ||
"error", | ||
{ | ||
"assertionStyle": "as", | ||
"objectLiteralTypeAssertions": "never" | ||
} | ||
], | ||
"@typescript-eslint/consistent-type-definitions": [ | ||
"error", | ||
"interface" | ||
], | ||
"@typescript-eslint/explicit-function-return-type": [ | ||
"error", | ||
{ | ||
"allowExpressions": true, | ||
"allowHigherOrderFunctions": true, | ||
"allowTypedFunctionExpressions": true | ||
} | ||
], | ||
"@typescript-eslint/no-empty-interface": "error", | ||
"@typescript-eslint/no-extraneous-class": "error", | ||
"@typescript-eslint/no-floating-promises": "error", | ||
"@typescript-eslint/no-for-in-array": "error", | ||
"@typescript-eslint/no-misused-new": "error", | ||
"@typescript-eslint/no-misused-promises": "error", | ||
"@typescript-eslint/no-namespace": "error", | ||
"@typescript-eslint/no-non-null-assertion": "error", | ||
"@typescript-eslint/no-this-alias": [ | ||
"error", | ||
{ | ||
"allowDestructuring": true | ||
} | ||
], | ||
"@typescript-eslint/no-unnecessary-type-assertion": "error", | ||
"@typescript-eslint/no-var-requires": "error", | ||
"@typescript-eslint/prefer-function-type": "error", | ||
"@typescript-eslint/prefer-readonly": "error", | ||
"@typescript-eslint/promise-function-async": "error", | ||
"@typescript-eslint/require-array-sort-compare": "error", | ||
"@typescript-eslint/restrict-plus-operands": "error", | ||
"@typescript-eslint/strict-boolean-expressions": "error", | ||
"@typescript-eslint/triple-slash-reference": [ | ||
"error", | ||
{ | ||
"lib": "never", | ||
"path": "never", | ||
"types": "never" | ||
} | ||
] | ||
} | ||
], | ||
"no-use-before-define": "off", | ||
"@typescript-eslint/no-use-before-define": [ | ||
"error", | ||
{ | ||
"functions": false, | ||
"classes": false, | ||
"variables": false | ||
} | ||
], | ||
"@typescript-eslint/no-var-requires": "error", | ||
"@typescript-eslint/prefer-interface": "error", | ||
"@typescript-eslint/prefer-namespace-keyword": "error" | ||
} | ||
} | ||
] | ||
}; |
{ | ||
"name": "eslint-config-standard-kit", | ||
"version": "0.13.0", | ||
"version": "0.14.0", | ||
"private": false, | ||
@@ -26,3 +26,3 @@ "description": "Standard.js linting rules - broken into modular pieces", | ||
"prepare": "node ./scripts/generate-configs.js", | ||
"test": "node ./scripts/test.js" | ||
"test": "tsc --noEmit -p examples/typescript && tsc --noEmit -p examples/typescript-jsx && node ./scripts/test.js" | ||
}, | ||
@@ -39,23 +39,27 @@ "husky": { | ||
"devDependencies": { | ||
"@typescript-eslint/eslint-plugin": "1.13.0", | ||
"@typescript-eslint/parser": "1.13.0", | ||
"babel-eslint": "10.0.2", | ||
"chai": "4.2.0", | ||
"disklet": "0.4.1", | ||
"eslint": "6.1.0", | ||
"eslint-config-prettier": "6.0.0", | ||
"eslint-config-standard": "13.0.1", | ||
"eslint-config-standard-jsx": "7.0.0", | ||
"eslint-plugin-flow": "2.29.1", | ||
"eslint-plugin-flowtype": "3.12.2", | ||
"eslint-plugin-import": "2.18.2", | ||
"eslint-plugin-node": "9.1.0", | ||
"eslint-plugin-prettier": "3.1.0", | ||
"eslint-plugin-promise": "4.2.1", | ||
"eslint-plugin-react": "7.14.3", | ||
"eslint-plugin-standard": "4.0.0", | ||
"husky": "3.0.2", | ||
"prettier": "1.18.2", | ||
"@types/node": "^12.7.3", | ||
"@types/react": "^16.9.2", | ||
"@types/react-dom": "^16.9.0", | ||
"@typescript-eslint/eslint-plugin": "^2.1.0", | ||
"@typescript-eslint/parser": "^2.1.0", | ||
"babel-eslint": "^10.0.3", | ||
"chai": "^4.2.0", | ||
"disklet": "^0.4.1", | ||
"eslint": "^6.3.0", | ||
"eslint-config-prettier": "^6.1.0", | ||
"eslint-config-standard": "^14.1.0", | ||
"eslint-config-standard-jsx": "^8.1.0", | ||
"eslint-config-standard-with-typescript": "^9.0.0", | ||
"eslint-plugin-flow": "^2.29.1", | ||
"eslint-plugin-flowtype": "^4.2.0", | ||
"eslint-plugin-import": "^2.18.2", | ||
"eslint-plugin-node": "^9.2.0", | ||
"eslint-plugin-prettier": "^3.1.0", | ||
"eslint-plugin-promise": "^4.2.1", | ||
"eslint-plugin-react": "^7.14.3", | ||
"eslint-plugin-standard": "^4.0.1", | ||
"husky": "^3.0.5", | ||
"prettier": "^1.18.2", | ||
"typescript": "3.5.3" | ||
} | ||
} |
@@ -7,63 +7,144 @@ // Typescript language support rules | ||
"parser": "@typescript-eslint/parser", | ||
"parserOptions": { | ||
"sourceType": "module" | ||
}, | ||
"plugins": [ | ||
"@typescript-eslint" | ||
], | ||
"rules": { | ||
"@typescript-eslint/adjacent-overload-signatures": "error", | ||
"@typescript-eslint/ban-types": "error", | ||
"camelcase": "off", | ||
"@typescript-eslint/class-name-casing": "error", | ||
"indent": "off", | ||
"@typescript-eslint/indent": [ | ||
"error", | ||
2 | ||
], | ||
"@typescript-eslint/interface-name-prefix": "error", | ||
"@typescript-eslint/member-delimiter-style": [ | ||
"error", | ||
{ | ||
"multiline": { | ||
"delimiter": "none" | ||
}, | ||
"singleline": { | ||
"delimiter": "comma", | ||
"requireLast": false | ||
} | ||
"overrides": [ | ||
{ | ||
"files": [ | ||
"*.ts", | ||
"*.tsx" | ||
], | ||
"rules": { | ||
"no-undef": "off", | ||
"camelcase": "off", | ||
"indent": "off", | ||
"no-array-constructor": "off", | ||
"no-empty-function": "off", | ||
"no-unused-vars": "off", | ||
"no-use-before-define": "off", | ||
"no-useless-constructor": "off", | ||
"require-await": "off", | ||
"@typescript-eslint/camelcase": [ | ||
"error", | ||
{ | ||
"properties": "never" | ||
} | ||
], | ||
"@typescript-eslint/indent": [ | ||
"error", | ||
2, | ||
{ | ||
"SwitchCase": 1, | ||
"VariableDeclarator": 1, | ||
"outerIIFEBody": 1, | ||
"MemberExpression": 1, | ||
"FunctionDeclaration": { | ||
"parameters": 1, | ||
"body": 1 | ||
}, | ||
"FunctionExpression": { | ||
"parameters": 1, | ||
"body": 1 | ||
}, | ||
"CallExpression": { | ||
"arguments": 1 | ||
}, | ||
"ArrayExpression": 1, | ||
"ObjectExpression": 1, | ||
"ImportDeclaration": 1, | ||
"flatTernaryExpressions": false, | ||
"ignoreComments": false | ||
} | ||
], | ||
"@typescript-eslint/no-array-constructor": "error", | ||
"@typescript-eslint/no-empty-function": "error", | ||
"@typescript-eslint/no-unused-vars": [ | ||
"error", | ||
{ | ||
"args": "none" | ||
} | ||
], | ||
"@typescript-eslint/no-use-before-define": [ | ||
"error", | ||
{ | ||
"functions": false, | ||
"classes": false, | ||
"variables": false, | ||
"typedefs": false | ||
} | ||
], | ||
"@typescript-eslint/no-useless-constructor": "error", | ||
"@typescript-eslint/require-await": "error", | ||
"@typescript-eslint/adjacent-overload-signatures": "error", | ||
"@typescript-eslint/array-type": [ | ||
"error", | ||
{ | ||
"default": "array-simple" | ||
} | ||
], | ||
"@typescript-eslint/consistent-type-assertions": [ | ||
"error", | ||
{ | ||
"assertionStyle": "as", | ||
"objectLiteralTypeAssertions": "never" | ||
} | ||
], | ||
"@typescript-eslint/consistent-type-definitions": [ | ||
"error", | ||
"interface" | ||
], | ||
"@typescript-eslint/explicit-function-return-type": [ | ||
"error", | ||
{ | ||
"allowExpressions": true, | ||
"allowHigherOrderFunctions": true, | ||
"allowTypedFunctionExpressions": true | ||
} | ||
], | ||
"@typescript-eslint/member-delimiter-style": [ | ||
"error", | ||
{ | ||
"multiline": { | ||
"delimiter": "none" | ||
}, | ||
"singleline": { | ||
"delimiter": "comma", | ||
"requireLast": false | ||
} | ||
} | ||
], | ||
"@typescript-eslint/no-empty-interface": "error", | ||
"@typescript-eslint/no-extraneous-class": "error", | ||
"@typescript-eslint/no-floating-promises": "error", | ||
"@typescript-eslint/no-for-in-array": "error", | ||
"@typescript-eslint/no-misused-new": "error", | ||
"@typescript-eslint/no-misused-promises": "error", | ||
"@typescript-eslint/no-namespace": "error", | ||
"@typescript-eslint/no-non-null-assertion": "error", | ||
"@typescript-eslint/no-this-alias": [ | ||
"error", | ||
{ | ||
"allowDestructuring": true | ||
} | ||
], | ||
"@typescript-eslint/no-unnecessary-type-assertion": "error", | ||
"@typescript-eslint/no-var-requires": "error", | ||
"@typescript-eslint/prefer-function-type": "error", | ||
"@typescript-eslint/prefer-readonly": "error", | ||
"@typescript-eslint/promise-function-async": "error", | ||
"@typescript-eslint/require-array-sort-compare": "error", | ||
"@typescript-eslint/restrict-plus-operands": "error", | ||
"@typescript-eslint/strict-boolean-expressions": "error", | ||
"@typescript-eslint/triple-slash-reference": [ | ||
"error", | ||
{ | ||
"lib": "never", | ||
"path": "never", | ||
"types": "never" | ||
} | ||
], | ||
"@typescript-eslint/type-annotation-spacing": "error" | ||
} | ||
], | ||
"@typescript-eslint/no-angle-bracket-type-assertion": "error", | ||
"no-array-constructor": "off", | ||
"@typescript-eslint/no-array-constructor": "error", | ||
"@typescript-eslint/no-empty-interface": "error", | ||
"@typescript-eslint/no-explicit-any": "warn", | ||
"@typescript-eslint/no-misused-new": "error", | ||
"@typescript-eslint/no-namespace": "error", | ||
"@typescript-eslint/no-non-null-assertion": "error", | ||
"@typescript-eslint/no-object-literal-type-assertion": "error", | ||
"@typescript-eslint/no-parameter-properties": "error", | ||
"@typescript-eslint/no-triple-slash-reference": "error", | ||
"no-unused-vars": "off", | ||
"@typescript-eslint/no-unused-vars": [ | ||
"error", | ||
{ | ||
"args": "none" | ||
} | ||
], | ||
"no-use-before-define": "off", | ||
"@typescript-eslint/no-use-before-define": [ | ||
"error", | ||
{ | ||
"functions": false, | ||
"classes": false, | ||
"variables": false | ||
} | ||
], | ||
"@typescript-eslint/no-var-requires": "error", | ||
"@typescript-eslint/prefer-interface": "error", | ||
"@typescript-eslint/prefer-namespace-keyword": "error", | ||
"@typescript-eslint/type-annotation-spacing": "error" | ||
} | ||
} | ||
] | ||
}; |
35314
1315
24