-
-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(eslint-plugin-verdaccio): import eslint-plugin-verdaccio package
- chore: initial commit - test: add more valid options - docs: add docs - fix typo - feat: add no-style attribute rule - 0.0.2 - feat: add rule jsx-no-classname-object - 0.0.3 - fix: update id rules - 0.0.4 - fix: update error message - 0.0.5
- Loading branch information
Showing
17 changed files
with
2,416 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# top-most EditorConfig file | ||
root = true | ||
|
||
# Unix-style newlines with a newline ending every file | ||
[*] | ||
end_of_line = lf | ||
insert_final_newline = true | ||
|
||
# 2 space indentation | ||
[{.,}*.{js,jsx,yml,yaml}] | ||
indent_style = space | ||
indent_size = 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,172 @@ | ||
{ | ||
"env": { | ||
"es6": true, | ||
"node": true | ||
}, | ||
"parserOptions": { | ||
"ecmaVersion": 6, | ||
"ecmaFeatures": { | ||
"jsx": true | ||
} | ||
}, | ||
"rules": { | ||
"comma-dangle": [2, "never"], | ||
"computed-property-spacing": [2, "never"], | ||
"no-cond-assign": 2, | ||
"no-console": 2, | ||
"no-constant-condition": 2, | ||
"no-control-regex": 2, | ||
"no-debugger": 2, | ||
"no-dupe-keys": 2, | ||
"no-empty": 2, | ||
"no-empty-character-class": 2, | ||
"no-ex-assign": 2, | ||
"no-extra-boolean-cast": 2, | ||
"no-extra-parens": 0, | ||
"no-extra-semi": 2, | ||
"no-func-assign": 2, | ||
"no-inner-declarations": 2, | ||
"no-invalid-regexp": 2, | ||
"no-irregular-whitespace": 2, | ||
"no-negated-in-lhs": 2, | ||
"no-obj-calls": 2, | ||
"no-regex-spaces": 2, | ||
"no-reserved-keys": 0, | ||
"no-sparse-arrays": 2, | ||
"no-unreachable": 2, | ||
"use-isnan": 2, | ||
"valid-jsdoc": 0, | ||
"valid-typeof": 2, | ||
// Best Practices | ||
"block-scoped-var": 2, | ||
"complexity": 0, | ||
"consistent-return": 2, | ||
"curly": 2, | ||
"default-case": 2, | ||
"dot-notation": 2, | ||
"eqeqeq": 2, | ||
"guard-for-in": 2, | ||
"no-alert": 2, | ||
"no-caller": 2, | ||
"no-confusing-arrow": 2, | ||
"no-div-regex": 2, | ||
"no-else-return": 2, | ||
"no-eq-null": 2, | ||
"no-eval": 2, | ||
"no-extend-native": 2, | ||
"no-extra-bind": 2, | ||
"no-fallthrough": 2, | ||
"no-floating-decimal": 2, | ||
"no-implied-eval": 2, | ||
"no-iterator": 2, | ||
"no-labels": 2, | ||
"no-lone-blocks": 2, | ||
"no-loop-func": 2, | ||
"no-multi-spaces": 2, | ||
"no-multi-str": 2, | ||
"no-native-reassign": 2, | ||
"no-new": 2, | ||
"no-new-func": 2, | ||
"no-new-wrappers": 2, | ||
"no-octal": 2, | ||
"no-octal-escape": 2, | ||
"no-process-env": 2, | ||
"no-proto": 2, | ||
"no-redeclare": 2, | ||
"no-return-assign": 2, | ||
"no-script-url": 2, | ||
"no-self-compare": 2, | ||
"no-sequences": 2, | ||
"no-unused-expressions": 2, | ||
"no-void": 0, | ||
"no-warning-comments": 2, | ||
"no-with": 2, | ||
"prefer-arrow-callback": 2, | ||
"radix": 2, | ||
"vars-on-top": 0, | ||
"wrap-iife": 2, | ||
"yoda": 2, | ||
// Strict Mode | ||
"strict": [2, "global"], | ||
// Variables | ||
"prefer-const": 2, | ||
"no-catch-shadow": 2, | ||
"no-const-assign": 2, | ||
"no-delete-var": 2, | ||
"no-label-var": 2, | ||
"no-shadow": 2, | ||
"no-shadow-restricted-names": 2, | ||
"no-undef": 2, | ||
"no-undef-init": 2, | ||
"no-undefined": 2, | ||
"no-unused-vars": 2, | ||
"no-use-before-define": 2, | ||
"no-var": 2, | ||
// Stylistic Issues | ||
"indent": [2, 2, { | ||
"SwitchCase": 1 | ||
}], | ||
"arrow-body-style": [2, "as-needed"], | ||
"arrow-parens": [2, "as-needed"], | ||
"arrow-spacing": 2, | ||
"brace-style": 2, | ||
"camelcase": 0, | ||
"comma-spacing": 2, | ||
"comma-style": 2, | ||
"consistent-this": 0, | ||
"eol-last": 2, | ||
"func-names": 0, | ||
"func-style": 0, | ||
"key-spacing": [2, { | ||
"beforeColon": false, | ||
"afterColon": true | ||
}], | ||
"max-nested-callbacks": 0, | ||
"new-cap": 2, | ||
"new-parens": 2, | ||
"no-array-constructor": 2, | ||
"no-inline-comments": 0, | ||
"no-lonely-if": 2, | ||
"no-mixed-spaces-and-tabs": 2, | ||
"no-nested-ternary": 2, | ||
"no-new-object": 2, | ||
"semi-spacing": [2, { | ||
"before": false, | ||
"after": true | ||
}], | ||
"no-spaced-func": 2, | ||
"no-ternary": 0, | ||
"no-trailing-spaces": 2, | ||
"no-multiple-empty-lines": 2, | ||
"no-underscore-dangle": 0, | ||
"one-var": 0, | ||
"operator-assignment": [2, "always"], | ||
"padded-blocks": [2, { "blocks": "never", "classes": "never", "switches": "never" }], | ||
"quotes": [2, "single"], | ||
"quote-props": [2, "as-needed"], | ||
"semi": [2, "always"], | ||
"sort-vars": [2, {"ignoreCase": true}], | ||
"keyword-spacing": 2, | ||
"space-before-blocks": 2, | ||
"object-curly-spacing": [2, "never"], | ||
"array-bracket-spacing": [2, "never"], | ||
"space-in-parens": 2, | ||
"space-infix-ops": 2, | ||
"space-unary-ops": 2, | ||
"spaced-comment": 2, | ||
"wrap-regex": 0, | ||
// Legacy | ||
"max-depth": 0, | ||
"max-len": [2, 120, { | ||
"ignoreStrings": true, | ||
"ignoreTemplateLiterals": true, | ||
"ignoreComments": true, | ||
}], | ||
"max-params": 0, | ||
"max-statements": 0, | ||
"no-plusplus": 0, | ||
"no-prototype-builtins": 2, | ||
"prefer-template": 2, | ||
"template-curly-spacing": [2, "never"], | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
node_modules | ||
*.log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
.eslint | ||
node_modules | ||
docs | ||
tests/ | ||
*.lock |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# eslint-plugin-verdaccio | ||
|
||
verdaccio code guide lines | ||
|
||
## Installation | ||
|
||
You"ll first need to install [ESLint](http://eslint.org): | ||
|
||
``` | ||
$ npm i eslint --save-dev | ||
``` | ||
|
||
Next, install `eslint-plugin-verdaccio`: | ||
|
||
``` | ||
$ npm install eslint-plugin-verdaccio --save-dev | ||
``` | ||
|
||
**Note:** If you installed ESLint globally (using the `-g` flag) then you must also install `eslint-plugin-verdaccio` globally. | ||
|
||
## Usage | ||
|
||
Add `verdaccio` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix: | ||
|
||
```json | ||
{ | ||
"plugins": [ | ||
"verdaccio" | ||
] | ||
} | ||
``` | ||
|
||
|
||
Then configure the rules you want to use under the rules section. | ||
|
||
```json | ||
{ | ||
"rules": { | ||
"verdaccio/jsx-spread": "error", | ||
"verdaccio/jsx-no-style": "error", | ||
"verdaccio/jsx-no-classname-object": "error" | ||
} | ||
} | ||
``` | ||
|
||
## Supported Rules | ||
|
||
* [verdaccio/jsx-spread](docs/rules/jsx-spread.md): Enforce don"t use of spread operators with JSX components. | ||
* [verdaccio/jsx-no-style](docs/rules/jsx-no-style.md): Enforce don"t use of style attribute with JSX components. | ||
* [verdaccio/jsx-no-classname-object](docs/rules/jsx-no-classname-object.md): Enforce don"t use of nested objects on className attribute with JSX components. | ||
|
||
|
||
|
||
|
||
|
28 changes: 28 additions & 0 deletions
28
tools/eslint-plugin-verdaccio/docs/rules/jsx-no-classname-object.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# check the usage of nested objects as classnames (jsx-no-classname-object) | ||
|
||
Please describe the origin of the rule here. | ||
|
||
|
||
## Rule Details | ||
|
||
This rule checks whether the first property of all JSX elements is correctly placed. There are the possible configurations: | ||
|
||
* `always`: The className attribute does not allow object expressions | ||
* `never` : The className attribute does allow object expressions | ||
|
||
Examples of **incorrect** code for this rule: | ||
|
||
```js | ||
'<div className="{}"/>', | ||
'<div className={"test"}/>', | ||
'<div className="test"/>', | ||
'<div className={this.getClassName()}/>' | ||
``` | ||
|
||
Examples of **correct** code for this rule: | ||
|
||
```js | ||
|
||
'<div className={{fontSize: \'12px\'}}/>' | ||
|
||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# disallow style on jsx components (jsx-no-style) | ||
|
||
Please describe the origin of the rule here. | ||
|
||
|
||
## Rule Details | ||
|
||
This rule checks whether the first property of all JSX elements is correctly placed. There are the possible configurations: | ||
|
||
* `always`: The style attribute is invalid as JSX attribute. | ||
* `never` : The style attribute is allowed as JSX attribute. | ||
|
||
Examples of **incorrect** code for this rule: | ||
|
||
```js | ||
|
||
<span key={String(index)} href={suggestion.link} style={{ fontWeight: fontWeight.semiBold }}> | ||
{part.text} | ||
</span> | ||
|
||
<InputAdornment position="start" style={{ color: colors.white }}> | ||
<IconSearch /> | ||
</InputAdornment> | ||
|
||
``` | ||
|
||
Examples of **correct** code for this rule: | ||
|
||
```js | ||
|
||
<span key={String(index)} href={suggestion.link} className="bar"> | ||
{part.text} | ||
</span> | ||
|
||
<InputAdornment position="start" className="foo"> | ||
<IconSearch /> | ||
</InputAdornment> | ||
|
||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# spread over jsx (jsx-spread) | ||
|
||
Please describe the origin of the rule here. | ||
|
||
|
||
## Rule Details | ||
|
||
This rule checks whether the first property of all JSX elements is correctly placed. There are the possible configurations: | ||
|
||
* `always`: The spread operator is invalid as JSX attribute. | ||
* `never` : The spread operator is allowed as JSX attribute. | ||
|
||
Examples of **incorrect** code for this rule: | ||
|
||
```js | ||
|
||
<div {...props}> | ||
|
||
``` | ||
|
||
Examples of **correct** code for this rule: | ||
|
||
```js | ||
|
||
<div foo="1" bar="2"/> | ||
|
||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
'use strict'; | ||
|
||
module.exports = { | ||
configs: { | ||
recommended: { | ||
plugins: ['verdaccio'], | ||
rules: { | ||
'verdaccio/jsx-spread': 'error', | ||
'verdaccio/jsx-no-style': 'error', | ||
'verdaccio/jsx-no-classname-object': 'error' | ||
} | ||
} | ||
}, | ||
rules: { | ||
'jsx-spread': require('./rules/jsx-spread'), | ||
'jsx-no-style': require('./rules/jsx-no-style'), | ||
'jsx-no-classname-object': require('./rules/jsx-no-classname-object') | ||
}, | ||
rulesConfig: { | ||
'jsx-spread': 2, | ||
'jsx-no-style': 2, | ||
'jsx-no-classname-object': 2 | ||
} | ||
}; |
Oops, something went wrong.