Compare commits

...

18 Commits

Author SHA1 Message Date
a5019ebc60 Bump version
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 11:28:09 +04:00
429404c8e2 Restructured ROADMAP.md
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 11:26:49 +04:00
75ab45106f Added react configs
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 11:21:47 +04:00
e66c5dd233 Added react and react-hooks plugins
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 11:11:34 +04:00
095a31c8fb Added jsx-a11y plugin
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 11:01:17 +04:00
a7aeded009
Merge pull request #5 from valentineus/release/2020-06-17
release/2020-06-17
2020-06-18 01:10:47 +04:00
2b9c6380f0 Bump version
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 01:06:52 +04:00
ee0e9ca2e4 Updated RollUp version
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 01:06:15 +04:00
84a6f6a0f1 Updated Actions config file
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 01:05:06 +04:00
27c334ef9b Formatted TypeScript files
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 01:02:50 +04:00
14cecabc10 Fixed rules
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 01:02:06 +04:00
10507bf4d5 Updated plugin rules
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 00:47:04 +04:00
7f69fc6b1e Updated ESLint rules
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-18 00:20:56 +04:00
802224efd3 Updated TypeScript rules
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-17 21:33:14 +04:00
65cf95c441 Recovered build
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-17 20:49:00 +04:00
2c62da8dec Updated RollUp dependence
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-17 20:44:45 +04:00
e1d7895283 Updated TypeScript dependence
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-17 20:42:58 +04:00
75912b5777 Changed Yarn manager to NPM manager
Signed-off-by: Valentin Popov <info@valentineus.link>
2020-06-17 20:28:17 +04:00
30 changed files with 3398 additions and 2356 deletions

View File

@ -13,7 +13,7 @@ jobs:
- uses: actions/setup-node@v1
with:
node-version: '13.x'
- run: yarn install
- run: yarn run build
- run: npm install
- run: npm run build
- run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}" > ~/.npmrc
- run: npm publish

8
.gitignore vendored
View File

@ -198,9 +198,5 @@ $RECYCLE.BIN/
### Project ###
# Resulting code
/_tslib-*.js
/default-*.js
/javascript.js
/typescript.js
/vue-javascript.js
/vue-typescript.js
/*.js

View File

@ -197,6 +197,10 @@ $RECYCLE.BIN/
### Project ###
# Documentation
docs/
# Source code
src/

View File

@ -19,6 +19,8 @@
* `javascript`
* `typescript`
* `react-javascript`
* `react-typescript`
* `vue-javascript`
* `vue-typescript`
@ -27,16 +29,34 @@
* Install dependencies:
```shell script
npm install --save-dev @typescript-eslint/eslint-plugin @typescript-eslint/parser \
@valentineus/eslint-config eslint eslint-plugin-eslint-comments \
eslint-plugin-import eslint-plugin-security eslint-plugin-sonarjs \
eslint-plugin-unicorn eslint-plugin-vue
npm install --save-dev @typescript-eslint/eslint-plugin \
@typescript-eslint/parser \
@valentineus/eslint-config \
eslint \
eslint-plugin-eslint-comments \
eslint-plugin-import \
eslint-plugin-jsx-a11y \
eslint-plugin-react \
eslint-plugin-react-hooks \
eslint-plugin-security \
eslint-plugin-sonarjs \
eslint-plugin-unicorn \
eslint-plugin-vue
# or
yarn add --dev @typescript-eslint/eslint-plugin @typescript-eslint/parser \
@valentineus/eslint-config eslint eslint-plugin-eslint-comments \
eslint-plugin-import eslint-plugin-security eslint-plugin-sonarjs \
eslint-plugin-unicorn eslint-plugin-vue
yarn add --dev @typescript-eslint/eslint-plugin \
@typescript-eslint/parser \
@valentineus/eslint-config \
eslint \
eslint-plugin-eslint-comments \
eslint-plugin-import \
eslint-plugin-jsx-a11y \
eslint-plugin-react \
eslint-plugin-react-hooks \
eslint-plugin-security \
eslint-plugin-sonarjs \
eslint-plugin-unicorn \
eslint-plugin-vue
```
* Create config file:

View File

@ -1,629 +0,0 @@
# Road Map
## ESLint
- [ ] "accessor-pairs"
- [ ] "array-bracket-newline"
- [ ] "array-bracket-spacing"
- [X] "array-callback-return"
- [ ] "array-element-newline"
- [ ] "arrow-body-style"
- [X] "arrow-parens"
- [X] "arrow-spacing"
- [ ] "block-scoped-var"
- [ ] "block-spacing"
- [X] "brace-style"
- [X] "callback-return"
- [X] "camelcase"
- [ ] "capitalized-comments"
- [X] "class-methods-use-this"
- [X] "comma-dangle"
- [X] "comma-spacing"
- [X] "comma-style"
- [ ] "complexity"
- [ ] "computed-property-spacing"
- [ ] "consistent-return"
- [ ] "consistent-this"
- [ ] "constructor-super"
- [X] "curly"
- [ ] "default-case"
- [ ] "default-case-last"
- [ ] "default-param-last"
- [ ] "dot-location"
- [X] "dot-notation"
- [X] "eol-last"
- [X] "eqeqeq"
- [ ] "for-direction"
- [ ] "func-call-spacing"
- [ ] "func-name-matching"
- [ ] "func-names"
- [ ] "func-style"
- [X] "function-call-argument-newline"
- [ ] "function-paren-newline"
- [ ] "generator-star-spacing"
- [ ] "getter-return"
- [ ] "global-require"
- [ ] "grouped-accessor-pairs"
- [ ] "guard-for-in"
- [X] "handle-callback-err"
- [ ] "id-blacklist"
- [X] "id-length"
- [ ] "id-match"
- [ ] "implicit-arrow-linebreak"
- [X] "indent"
- [X] "indent-legacy"
- [ ] "init-declarations"
- [X] "jsx-quotes"
- [X] "key-spacing"
- [X] "keyword-spacing"
- [ ] "line-comment-position"
- [X] "linebreak-style"
- [X] "lines-around-comment"
- [X] "lines-around-directive"
- [X] "lines-between-class-members"
- [ ] "max-classes-per-file"
- [ ] "max-depth"
- [X] "max-len"
- [X] "max-lines"
- [X] "max-lines-per-function"
- [ ] "max-nested-callbacks"
- [ ] "max-params"
- [X] "max-statements"
- [X] "max-statements-per-line"
- [X] "multiline-comment-style"
- [ ] "multiline-ternary"
- [X] "new-cap"
- [ ] "new-parens"
- [X] "newline-after-var"
- [X] "newline-before-return"
- [ ] "newline-per-chained-call"
- [X] "no-alert"
- [ ] "no-array-constructor"
- [ ] "no-async-promise-executor"
- [ ] "no-await-in-loop"
- [ ] "no-bitwise"
- [X] "no-buffer-constructor"
- [X] "no-caller"
- [ ] "no-case-declarations"
- [X] "no-catch-shadow"
- [ ] "no-class-assign"
- [ ] "no-compare-neg-zero"
- [ ] "no-cond-assign"
- [ ] "no-confusing-arrow"
- [X] "no-console"
- [ ] "no-const-assign"
- [X] "no-constant-condition"
- [ ] "no-constructor-return"
- [ ] "no-continue"
- [ ] "no-control-regex"
- [X] "no-debugger"
- [ ] "no-delete-var"
- [ ] "no-div-regex"
- [ ] "no-dupe-args"
- [ ] "no-dupe-class-members"
- [ ] "no-dupe-else-if"
- [ ] "no-dupe-keys"
- [ ] "no-duplicate-case"
- [X] "no-duplicate-imports"
- [X] "no-else-return"
- [X] "no-empty"
- [ ] "no-empty-character-class"
- [ ] "no-empty-function"
- [ ] "no-empty-pattern"
- [ ] "no-eq-null"
- [X] "no-eval"
- [ ] "no-ex-assign"
- [X] "no-extend-native"
- [X] "no-extra-bind"
- [ ] "no-extra-boolean-cast"
- [ ] "no-extra-label"
- [ ] "no-extra-parens"
- [X] "no-extra-semi"
- [ ] "no-fallthrough"
- [ ] "no-floating-decimal"
- [ ] "no-func-assign"
- [ ] "no-global-assign"
- [ ] "no-implicit-coercion"
- [ ] "no-implicit-globals"
- [X] "no-implied-eval"
- [ ] "no-import-assign"
- [ ] "no-inline-comments"
- [ ] "no-inner-declarations"
- [ ] "no-invalid-regexp"
- [ ] "no-invalid-this"
- [ ] "no-irregular-whitespace"
- [X] "no-iterator"
- [ ] "no-label-var"
- [X] "no-labels"
- [X] "no-lone-blocks"
- [ ] "no-lonely-if"
- [ ] "no-loop-func"
- [X] "no-magic-numbers"
- [ ] "no-misleading-character-class"
- [ ] "no-mixed-operators"
- [ ] "no-mixed-requires"
- [X] "no-mixed-spaces-and-tabs"
- [ ] "no-multi-assign"
- [X] "no-multi-spaces"
- [X] "no-multi-str"
- [X] "no-multiple-empty-lines"
- [X] "no-native-reassign"
- [ ] "no-negated-condition"
- [X] "no-negated-in-lhs"
- [X] "no-nested-ternary"
- [ ] "no-new"
- [X] "no-new-func"
- [ ] "no-new-object"
- [X] "no-new-require"
- [ ] "no-new-symbol"
- [X] "no-new-wrappers"
- [ ] "no-obj-calls"
- [ ] "no-octal"
- [X] "no-octal-escape"
- [ ] "no-param-reassign"
- [X] "no-path-concat"
- [ ] "no-plusplus"
- [X] "no-process-env"
- [ ] "no-process-exit"
- [X] "no-proto"
- [ ] "no-prototype-builtins"
- [ ] "no-redeclare"
- [ ] "no-regex-spaces"
- [ ] "no-restricted-exports"
- [ ] "no-restricted-globals"
- [ ] "no-restricted-imports"
- [ ] "no-restricted-modules"
- [X] "no-restricted-properties"
- [ ] "no-restricted-syntax"
- [ ] "no-return-assign"
- [X] "no-return-await"
- [X] "no-script-url"
- [ ] "no-self-assign"
- [X] "no-self-compare"
- [X] "no-sequences"
- [ ] "no-setter-return"
- [ ] "no-shadow"
- [ ] "no-shadow-restricted-names"
- [X] "no-spaced-func"
- [ ] "no-sparse-arrays"
- [ ] "no-sync"
- [X] "no-tabs"
- [ ] "no-template-curly-in-string"
- [X] "no-ternary"
- [ ] "no-this-before-super"
- [ ] "no-throw-literal"
- [X] "no-trailing-spaces"
- [ ] "no-undef"
- [X] "no-undef-init"
- [X] "no-undefined"
- [X] "no-underscore-dangle"
- [ ] "no-unexpected-multiline"
- [X] "no-unmodified-loop-condition"
- [X] "no-unneeded-ternary"
- [ ] "no-unreachable"
- [ ] "no-unsafe-finally"
- [ ] "no-unsafe-negation"
- [ ] "no-unused-expressions"
- [ ] "no-unused-labels"
- [X] "no-unused-vars"
- [X] "no-use-before-define"
- [ ] "no-useless-backreference"
- [X] "no-useless-call"
- [ ] "no-useless-catch"
- [X] "no-useless-computed-key"
- [ ] "no-useless-concat"
- [X] "no-useless-constructor"
- [ ] "no-useless-escape"
- [X] "no-useless-rename"
- [X] "no-useless-return"
- [X] "no-var"
- [ ] "no-void"
- [ ] "no-warning-comments"
- [X] "no-whitespace-before-property"
- [X] "no-with"
- [ ] "nonblock-statement-body-position"
- [X] "object-curly-newline"
- [X] "object-curly-spacing"
- [X] "object-property-newline"
- [X] "object-shorthand"
- [X] "one-var"
- [ ] "one-var-declaration-per-line"
- [ ] "operator-assignment"
- [ ] "operator-linebreak"
- [ ] "padded-blocks"
- [ ] "padding-line-between-statements"
- [X] "prefer-arrow-callback"
- [X] "prefer-const"
- [ ] "prefer-destructuring"
- [ ] "prefer-exponentiation-operator"
- [ ] "prefer-named-capture-group"
- [X] "prefer-numeric-literals"
- [X] "prefer-object-spread"
- [ ] "prefer-promise-reject-errors"
- [X] "prefer-reflect"
- [ ] "prefer-regex-literals"
- [X] "prefer-rest-params"
- [X] "prefer-spread"
- [X] "prefer-template"
- [X] "quote-props"
- [X] "quotes"
- [ ] "radix"
- [ ] "require-atomic-updates"
- [X] "require-await"
- [X] "require-jsdoc"
- [ ] "require-unicode-regexp"
- [ ] "require-yield"
- [ ] "rest-spread-spacing"
- [X] "semi"
- [X] "semi-spacing"
- [X] "semi-style"
- [X] "sort-imports"
- [X] "sort-keys"
- [X] "sort-vars"
- [X] "space-before-blocks"
- [X] "space-before-function-paren"
- [ ] "space-in-parens"
- [X] "space-infix-ops"
- [ ] "space-unary-ops"
- [ ] "spaced-comment"
- [X] "strict"
- [ ] "switch-colon-spacing"
- [ ] "symbol-description"
- [ ] "template-curly-spacing"
- [ ] "template-tag-spacing"
- [ ] "unicode-bom"
- [ ] "use-isnan"
- [X] "valid-jsdoc"
- [X] "valid-typeof"
- [ ] "vars-on-top"
- [ ] "wrap-iife"
- [ ] "wrap-regex"
- [ ] "yield-star-spacing"
- [X] "yoda"
## ESLint Comments
- [X] "disable-enable-pair"
- [X] "no-aggregating-enable"
- [X] "no-duplicate-disable"
- [X] "no-restricted-disable"
- [X] "no-unlimited-disable"
- [X] "no-unused-disable"
- [X] "no-unused-enable"
- [X] "no-use"
## Import
- [ ] "default"
- [ ] "dynamic-import-chunkname"
- [ ] "export"
- [X] "exports-last"
- [ ] "extensions"
- [X] "first"
- [ ] "group-exports"
- [ ] "max-dependencies"
- [ ] "named"
- [ ] "namespace"
- [X] "newline-after-import"
- [ ] "no-absolute-path"
- [ ] "no-amd"
- [ ] "no-anonymous-default-export"
- [ ] "no-commonjs"
- [ ] "no-cycle"
- [ ] "no-default-export"
- [ ] "no-deprecated"
- [ ] "no-duplicates"
- [ ] "no-dynamic-require"
- [ ] "no-extraneous-dependencies"
- [ ] "no-internal-modules"
- [ ] "no-mutable-exports"
- [ ] "no-named-as-default"
- [ ] "no-named-as-default-member"
- [ ] "no-named-default"
- [ ] "no-named-export"
- [ ] "no-namespace"
- [ ] "no-nodejs-modules"
- [ ] "no-relative-parent-imports"
- [ ] "no-restricted-paths"
- [ ] "no-self-import"
- [ ] "no-unassigned-import"
- [ ] "no-unresolved"
- [ ] "no-unused-modules"
- [ ] "no-useless-path-segments"
- [X] "no-webpack-loader-syntax"
- [X] "order"
- [ ] "prefer-default-export"
- [ ] "unambiguous"
## Security
- [ ] "detect-buffer-noassert"
- [ ] "detect-child-process"
- [ ] "detect-disable-mustache-escape"
- [ ] "detect-eval-with-expression"
- [ ] "detect-new-buffer"
- [ ] "detect-no-csrf-before-method-override"
- [ ] "detect-non-literal-fs-filename"
- [ ] "detect-non-literal-regexp"
- [ ] "detect-non-literal-require"
- [ ] "detect-object-injection"
- [ ] "detect-possible-timing-attacks"
- [ ] "detect-pseudoRandomBytes"
- [ ] "detect-unsafe-regex"
## SonarJS
- [X] "cognitive-complexity"
- [X] "max-switch-cases"
- [X] "no-all-duplicated-branches"
- [X] "no-collapsible-if"
- [X] "no-collection-size-mischeck"
- [X] "no-duplicate-string"
- [X] "no-duplicated-branches"
- [X] "no-element-overwrite"
- [X] "no-extra-arguments"
- [X] "no-identical-conditions"
- [X] "no-identical-expressions"
- [X] "no-identical-functions"
- [X] "no-inverted-boolean-check"
- [X] "no-one-iteration-loop"
- [X] "no-redundant-boolean"
- [X] "no-redundant-jump"
- [X] "no-same-line-conditional"
- [X] "no-small-switch"
- [X] "no-unused-collection"
- [X] "no-use-of-empty-return-value"
- [X] "no-useless-catch"
- [X] "prefer-immediate-return"
- [X] "prefer-object-literal"
- [X] "prefer-single-boolean-return"
- [X] "prefer-while"
## TypeScript
- [ ] "adjacent-overload-signatures"
- [ ] "array-type"
- [X] "await-thenable"
- [ ] "ban-ts-comment"
- [ ] "ban-ts-ignore"
- [ ] "ban-types"
- [ ] "brace-style"
- [ ] "camelcase"
- [X] "class-literal-property-style"
- [ ] "class-name-casing"
- [X] "comma-spacing"
- [ ] "consistent-type-assertions"
- [ ] "consistent-type-definitions"
- [ ] "default-param-last"
- [X] "explicit-function-return-type"
- [X] "explicit-member-accessibility"
- [ ] "explicit-module-boundary-types"
- [ ] "func-call-spacing"
- [ ] "generic-type-naming"
- [X] "indent"
- [X] "interface-name-prefix"
- [ ] "member-delimiter-style"
- [ ] "member-naming"
- [ ] "member-ordering"
- [ ] "naming-convention"
- [ ] "no-array-constructor"
- [X] "no-base-to-string"
- [ ] "no-dupe-class-members"
- [ ] "no-dynamic-delete"
- [ ] "no-empty-function"
- [X] "no-empty-interface"
- [X] "no-explicit-any"
- [ ] "no-extra-non-null-assertion"
- [ ] "no-extra-parens"
- [X] "no-extra-semi"
- [ ] "no-extraneous-class"
- [ ] "no-floating-promises"
- [ ] "no-for-in-array"
- [X] "no-implied-eval"
- [X] "no-inferrable-types"
- [X] "no-magic-numbers"
- [ ] "no-misused-new"
- [X] "no-misused-promises"
- [X] "no-namespace"
- [ ] "no-non-null-asserted-optional-chain"
- [ ] "no-non-null-assertion"
- [ ] "no-parameter-properties"
- [ ] "no-require-imports"
- [ ] "no-this-alias"
- [ ] "no-throw-literal"
- [X] "no-type-alias"
- [ ] "no-unnecessary-boolean-literal-compare"
- [X] "no-unnecessary-condition"
- [ ] "no-unnecessary-qualifier"
- [ ] "no-unnecessary-type-arguments"
- [X] "no-unnecessary-type-assertion"
- [X] "no-unsafe-call"
- [X] "no-unsafe-member-access"
- [X] "no-unsafe-return"
- [X] "no-untyped-public-signature"
- [ ] "no-unused-expressions"
- [X] "no-unused-vars"
- [X] "no-unused-vars-experimental"
- [X] "no-use-before-define"
- [X] "no-useless-constructor"
- [X] "no-var-requires"
- [ ] "prefer-as-const"
- [ ] "prefer-for-of"
- [ ] "prefer-function-type"
- [ ] "prefer-includes"
- [ ] "prefer-namespace-keyword"
- [ ] "prefer-nullish-coalescing"
- [ ] "prefer-optional-chain"
- [ ] "prefer-readonly"
- [X] "prefer-readonly-parameter-types"
- [ ] "prefer-regexp-exec"
- [ ] "prefer-string-starts-ends-with"
- [ ] "promise-function-async"
- [X] "quotes"
- [ ] "require-array-sort-compare"
- [X] "require-await"
- [ ] "restrict-plus-operands"
- [ ] "restrict-template-expressions"
- [ ] "return-await"
- [X] "semi"
- [X] "space-before-function-paren"
- [X] "strict-boolean-expressions"
- [ ] "switch-exhaustiveness-check"
- [ ] "triple-slash-reference"
- [X] "type-annotation-spacing"
- [X] "typedef"
- [ ] "unbound-method"
- [ ] "unified-signatures"
## Unicorn
- [ ] "better-regex"
- [ ] "catch-error-name"
- [ ] "consistent-function-scoping"
- [ ] "custom-error-definition"
- [ ] "error-message"
- [ ] "escape-case"
- [ ] "expiring-todo-comments"
- [ ] "explicit-length-check"
- [X] "filename-case"
- [X] "import-index"
- [ ] "new-for-builtins"
- [ ] "no-abusive-eslint-disable"
- [ ] "no-array-instanceof"
- [X] "no-console-spaces"
- [ ] "no-fn-reference-in-iterator"
- [ ] "no-for-loop"
- [ ] "no-hex-escape"
- [ ] "no-keyword-prefix"
- [ ] "no-nested-ternary"
- [ ] "no-new-buffer"
- [ ] "no-process-exit"
- [ ] "no-unreadable-array-destructuring"
- [ ] "no-unsafe-regex"
- [ ] "no-unused-properties"
- [ ] "no-zero-fractions"
- [ ] "number-literal-case"
- [ ] "prefer-add-event-listener"
- [ ] "prefer-dataset"
- [ ] "prefer-event-key"
- [ ] "prefer-exponentiation-operator"
- [ ] "prefer-flat-map"
- [ ] "prefer-includes"
- [ ] "prefer-modern-dom-apis"
- [ ] "prefer-negative-index"
- [ ] "prefer-node-append"
- [ ] "prefer-node-remove"
- [X] "prefer-number-properties"
- [ ] "prefer-query-selector"
- [ ] "prefer-reflect-apply"
- [ ] "prefer-replace-all"
- [X] "prefer-set-has"
- [ ] "prefer-spread"
- [ ] "prefer-starts-ends-with"
- [ ] "prefer-string-slice"
- [ ] "prefer-text-content"
- [ ] "prefer-trim-start-end"
- [ ] "prefer-type-error"
- [X] "prevent-abbreviations"
- [ ] "throw-new-error"
## Vue
- [ ] "array-bracket-spacing"
- [ ] "arrow-spacing"
- [ ] "attribute-hyphenation"
- [X] "attributes-order"
- [ ] "block-spacing"
- [ ] "brace-style"
- [ ] "camelcase"
- [X] "comma-dangle"
- [ ] "comment-directive"
- [ ] "component-definition-name-casing"
- [ ] "component-name-in-template-casing"
- [ ] "component-tags-order"
- [ ] "dot-location"
- [ ] "eqeqeq"
- [X] "html-closing-bracket-newline"
- [X] "html-closing-bracket-spacing"
- [ ] "html-end-tags"
- [X] "html-indent"
- [X] "html-quotes"
- [X] "html-self-closing"
- [ ] "jsx-uses-vars"
- [ ] "key-spacing"
- [ ] "keyword-spacing"
- [ ] "match-component-file-name"
- [X] "max-attributes-per-line"
- [ ] "max-len"
- [ ] "multiline-html-element-content-newline"
- [ ] "mustache-interpolation-spacing"
- [ ] "name-property-casing"
- [ ] "no-async-in-computed-properties"
- [ ] "no-boolean-default"
- [ ] "no-confusing-v-for-v-if"
- [ ] "no-deprecated-scope-attribute"
- [ ] "no-deprecated-slot-attribute"
- [ ] "no-deprecated-slot-scope-attribute"
- [ ] "no-dupe-keys"
- [ ] "no-duplicate-attributes"
- [ ] "no-empty-pattern"
- [ ] "no-irregular-whitespace"
- [X] "no-multi-spaces"
- [ ] "no-parsing-error"
- [ ] "no-reserved-component-names"
- [ ] "no-reserved-keys"
- [ ] "no-restricted-syntax"
- [ ] "no-shared-component-data"
- [ ] "no-side-effects-in-computed-properties"
- [ ] "no-spaces-around-equal-signs-in-attribute"
- [ ] "no-static-inline-styles"
- [ ] "no-template-key"
- [ ] "no-template-shadow"
- [ ] "no-textarea-mustache"
- [ ] "no-unsupported-features"
- [ ] "no-unused-components"
- [X] "no-unused-vars"
- [ ] "no-use-v-if-with-v-for"
- [ ] "no-v-html"
- [X] "object-curly-spacing"
- [ ] "order-in-components"
- [X] "padding-line-between-blocks"
- [ ] "prop-name-casing"
- [ ] "require-component-is"
- [ ] "require-default-prop"
- [ ] "require-direct-export"
- [ ] "require-name-property"
- [ ] "require-prop-type-constructor"
- [ ] "require-prop-types"
- [ ] "require-render-return"
- [ ] "require-v-for-key"
- [ ] "require-valid-default-prop"
- [ ] "return-in-computed-property"
- [X] "script-indent"
- [ ] "singleline-html-element-content-newline"
- [X] "sort-keys"
- [X] "space-infix-ops"
- [ ] "space-unary-ops"
- [ ] "static-class-names-order"
- [ ] "this-in-template"
- [ ] "use-v-on-exact"
- [ ] "v-bind-style"
- [ ] "v-on-function-call"
- [ ] "v-on-style"
- [ ] "v-slot-style"
- [ ] "valid-template-root"
- [ ] "valid-v-bind"
- [ ] "valid-v-bind-sync"
- [ ] "valid-v-cloak"
- [ ] "valid-v-else"
- [ ] "valid-v-else-if"
- [ ] "valid-v-for"
- [ ] "valid-v-html"
- [ ] "valid-v-if"
- [ ] "valid-v-model"
- [ ] "valid-v-on"
- [ ] "valid-v-once"
- [ ] "valid-v-pre"
- [ ] "valid-v-show"
- [ ] "valid-v-slot"
- [ ] "valid-v-text"

View File

@ -0,0 +1,11 @@
# ESLint Comments
- [X] "disable-enable-pair"
- [X] "no-aggregating-enable"
- [X] "no-duplicate-disable"
- [X] "no-restricted-disable"
- [X] "no-unlimited-disable"
- [X] "no-unused-disable"
- [X] "no-unused-enable"
- [X] "no-use"
- [ ] "require-description"

271
docs/roadmap/eslint.md Normal file
View File

@ -0,0 +1,271 @@
# ESLint
- [ ] "accessor-pairs"
- [ ] "array-bracket-newline"
- [ ] "array-bracket-spacing"
- [X] "array-callback-return"
- [ ] "array-element-newline"
- [ ] "arrow-body-style"
- [X] "arrow-parens"
- [X] "arrow-spacing"
- [ ] "block-scoped-var"
- [ ] "block-spacing"
- [X] "brace-style"
- [X] "camelcase"
- [ ] "capitalized-comments"
- [X] "class-methods-use-this"
- [X] "comma-dangle"
- [X] "comma-spacing"
- [X] "comma-style"
- [ ] "complexity"
- [ ] "computed-property-spacing"
- [ ] "consistent-return"
- [ ] "consistent-this"
- [ ] "constructor-super"
- [X] "curly"
- [ ] "default-case"
- [ ] "default-case-last"
- [ ] "default-param-last"
- [ ] "dot-location"
- [X] "dot-notation"
- [X] "eol-last"
- [X] "eqeqeq"
- [ ] "for-direction"
- [ ] "func-call-spacing"
- [ ] "func-name-matching"
- [ ] "func-names"
- [ ] "func-style"
- [X] "function-call-argument-newline"
- [ ] "function-paren-newline"
- [ ] "generator-star-spacing"
- [ ] "getter-return"
- [ ] "grouped-accessor-pairs"
- [ ] "guard-for-in"
- [ ] "id-blacklist"
- [X] "id-length"
- [ ] "id-match"
- [ ] "implicit-arrow-linebreak"
- [X] "indent"
- [X] "indent-legacy"
- [ ] "init-declarations"
- [X] "jsx-quotes"
- [X] "key-spacing"
- [X] "keyword-spacing"
- [ ] "line-comment-position"
- [X] "linebreak-style"
- [X] "lines-around-comment"
- [X] "lines-around-directive"
- [X] "lines-between-class-members"
- [ ] "max-classes-per-file"
- [ ] "max-depth"
- [X] "max-len"
- [X] "max-lines"
- [X] "max-lines-per-function"
- [ ] "max-nested-callbacks"
- [ ] "max-params"
- [X] "max-statements"
- [X] "max-statements-per-line"
- [X] "multiline-comment-style"
- [ ] "multiline-ternary"
- [X] "new-cap"
- [ ] "new-parens"
- [X] "newline-after-var"
- [X] "newline-before-return"
- [ ] "newline-per-chained-call"
- [X] "no-alert"
- [ ] "no-array-constructor"
- [ ] "no-async-promise-executor"
- [ ] "no-await-in-loop"
- [ ] "no-bitwise"
- [X] "no-buffer-constructor"
- [X] "no-caller"
- [ ] "no-case-declarations"
- [X] "no-catch-shadow"
- [ ] "no-class-assign"
- [ ] "no-compare-neg-zero"
- [ ] "no-cond-assign"
- [ ] "no-confusing-arrow"
- [X] "no-console"
- [ ] "no-const-assign"
- [X] "no-constant-condition"
- [ ] "no-constructor-return"
- [ ] "no-continue"
- [ ] "no-control-regex"
- [X] "no-debugger"
- [ ] "no-delete-var"
- [ ] "no-div-regex"
- [ ] "no-dupe-args"
- [ ] "no-dupe-class-members"
- [ ] "no-dupe-else-if"
- [ ] "no-dupe-keys"
- [ ] "no-duplicate-case"
- [X] "no-duplicate-imports"
- [X] "no-else-return"
- [X] "no-empty"
- [ ] "no-empty-character-class"
- [ ] "no-empty-function"
- [ ] "no-empty-pattern"
- [ ] "no-eq-null"
- [X] "no-eval"
- [ ] "no-ex-assign"
- [X] "no-extend-native"
- [X] "no-extra-bind"
- [ ] "no-extra-boolean-cast"
- [ ] "no-extra-label"
- [ ] "no-extra-parens"
- [X] "no-extra-semi"
- [ ] "no-fallthrough"
- [ ] "no-floating-decimal"
- [ ] "no-func-assign"
- [ ] "no-global-assign"
- [ ] "no-implicit-coercion"
- [ ] "no-implicit-globals"
- [X] "no-implied-eval"
- [ ] "no-import-assign"
- [ ] "no-inline-comments"
- [ ] "no-inner-declarations"
- [ ] "no-invalid-regexp"
- [ ] "no-invalid-this"
- [ ] "no-irregular-whitespace"
- [X] "no-iterator"
- [ ] "no-label-var"
- [X] "no-labels"
- [X] "no-lone-blocks"
- [ ] "no-lonely-if"
- [ ] "no-loop-func"
- [ ] "no-loss-of-precision"
- [X] "no-magic-numbers"
- [ ] "no-misleading-character-class"
- [ ] "no-mixed-operators"
- [X] "no-mixed-spaces-and-tabs"
- [ ] "no-multi-assign"
- [X] "no-multi-spaces"
- [X] "no-multi-str"
- [X] "no-multiple-empty-lines"
- [X] "no-native-reassign"
- [ ] "no-negated-condition"
- [X] "no-negated-in-lhs"
- [X] "no-nested-ternary"
- [ ] "no-new"
- [X] "no-new-func"
- [ ] "no-new-object"
- [ ] "no-new-symbol"
- [X] "no-new-wrappers"
- [ ] "no-obj-calls"
- [ ] "no-octal"
- [X] "no-octal-escape"
- [ ] "no-param-reassign"
- [ ] "no-plusplus"
- [X] "no-proto"
- [ ] "no-prototype-builtins"
- [ ] "no-redeclare"
- [ ] "no-regex-spaces"
- [ ] "no-restricted-exports"
- [ ] "no-restricted-globals"
- [ ] "no-restricted-imports"
- [X] "no-restricted-properties"
- [ ] "no-restricted-syntax"
- [ ] "no-return-assign"
- [X] "no-return-await"
- [X] "no-script-url"
- [ ] "no-self-assign"
- [X] "no-self-compare"
- [X] "no-sequences"
- [ ] "no-setter-return"
- [ ] "no-shadow"
- [ ] "no-shadow-restricted-names"
- [X] "no-spaced-func"
- [ ] "no-sparse-arrays"
- [X] "no-tabs"
- [ ] "no-template-curly-in-string"
- [X] "no-ternary"
- [ ] "no-this-before-super"
- [ ] "no-throw-literal"
- [X] "no-trailing-spaces"
- [ ] "no-undef"
- [X] "no-undef-init"
- [X] "no-undefined"
- [X] "no-underscore-dangle"
- [ ] "no-unexpected-multiline"
- [X] "no-unmodified-loop-condition"
- [X] "no-unneeded-ternary"
- [ ] "no-unreachable"
- [ ] "no-unsafe-finally"
- [ ] "no-unsafe-negation"
- [ ] "no-unused-expressions"
- [ ] "no-unused-labels"
- [X] "no-unused-vars"
- [X] "no-use-before-define"
- [ ] "no-useless-backreference"
- [X] "no-useless-call"
- [ ] "no-useless-catch"
- [X] "no-useless-computed-key"
- [ ] "no-useless-concat"
- [X] "no-useless-constructor"
- [ ] "no-useless-escape"
- [X] "no-useless-rename"
- [X] "no-useless-return"
- [X] "no-var"
- [ ] "no-void"
- [ ] "no-warning-comments"
- [X] "no-whitespace-before-property"
- [X] "no-with"
- [ ] "nonblock-statement-body-position"
- [X] "object-curly-newline"
- [X] "object-curly-spacing"
- [X] "object-property-newline"
- [X] "object-shorthand"
- [X] "one-var"
- [ ] "one-var-declaration-per-line"
- [ ] "operator-assignment"
- [ ] "operator-linebreak"
- [ ] "padded-blocks"
- [ ] "padding-line-between-statements"
- [X] "prefer-arrow-callback"
- [X] "prefer-const"
- [ ] "prefer-destructuring"
- [ ] "prefer-exponentiation-operator"
- [ ] "prefer-named-capture-group"
- [X] "prefer-numeric-literals"
- [X] "prefer-object-spread"
- [ ] "prefer-promise-reject-errors"
- [X] "prefer-reflect"
- [ ] "prefer-regex-literals"
- [X] "prefer-rest-params"
- [X] "prefer-spread"
- [X] "prefer-template"
- [X] "quote-props"
- [X] "quotes"
- [ ] "radix"
- [ ] "require-atomic-updates"
- [X] "require-await"
- [X] "require-jsdoc"
- [ ] "require-unicode-regexp"
- [ ] "require-yield"
- [ ] "rest-spread-spacing"
- [X] "semi"
- [X] "semi-spacing"
- [X] "semi-style"
- [X] "sort-imports"
- [X] "sort-keys"
- [X] "sort-vars"
- [X] "space-before-blocks"
- [X] "space-before-function-paren"
- [ ] "space-in-parens"
- [X] "space-infix-ops"
- [ ] "space-unary-ops"
- [ ] "spaced-comment"
- [X] "strict"
- [ ] "switch-colon-spacing"
- [ ] "symbol-description"
- [ ] "template-curly-spacing"
- [ ] "template-tag-spacing"
- [ ] "unicode-bom"
- [ ] "use-isnan"
- [X] "valid-jsdoc"
- [X] "valid-typeof"
- [ ] "vars-on-top"
- [ ] "wrap-iife"
- [ ] "wrap-regex"
- [ ] "yield-star-spacing"
- [X] "yoda"

43
docs/roadmap/import.md Normal file
View File

@ -0,0 +1,43 @@
# Import
- [ ] "default"
- [ ] "dynamic-import-chunkname"
- [ ] "export"
- [X] "exports-last"
- [ ] "extensions"
- [X] "first"
- [ ] "group-exports"
- [ ] "max-dependencies"
- [ ] "named"
- [ ] "namespace"
- [X] "newline-after-import"
- [ ] "no-absolute-path"
- [ ] "no-amd"
- [ ] "no-anonymous-default-export"
- [ ] "no-commonjs"
- [ ] "no-cycle"
- [ ] "no-default-export"
- [ ] "no-deprecated"
- [ ] "no-duplicates"
- [ ] "no-dynamic-require"
- [ ] "no-extraneous-dependencies"
- [ ] "no-internal-modules"
- [ ] "no-loss-of-precision"
- [ ] "no-mutable-exports"
- [ ] "no-named-as-default"
- [ ] "no-named-as-default-member"
- [ ] "no-named-default"
- [ ] "no-named-export"
- [ ] "no-namespace"
- [ ] "no-nodejs-modules"
- [ ] "no-relative-parent-imports"
- [ ] "no-restricted-paths"
- [ ] "no-self-import"
- [ ] "no-unassigned-import"
- [ ] "no-unresolved"
- [ ] "no-unused-modules"
- [ ] "no-useless-path-segments"
- [X] "no-webpack-loader-syntax"
- [X] "order"
- [ ] "prefer-default-export"
- [ ] "unambiguous"

38
docs/roadmap/jsx-a11y.md Normal file
View File

@ -0,0 +1,38 @@
# jsx-a11y
- [ ] "accessible-emoji"
- [ ] "alt-text"
- [ ] "anchor-has-content"
- [ ] "anchor-is-valid"
- [ ] "aria-activedescendant-has-tabindex"
- [ ] "aria-props"
- [ ] "aria-proptypes"
- [ ] "aria-role"
- [ ] "aria-unsupported-elements"
- [ ] "autocomplete-valid"
- [ ] "click-events-have-key-events"
- [ ] "control-has-associated-label"
- [ ] "heading-has-content"
- [ ] "html-has-lang"
- [ ] "iframe-has-title"
- [ ] "img-redundant-alt"
- [ ] "interactive-supports-focus"
- [ ] "label-has-associated-control"
- [ ] "label-has-for"
- [ ] "lang"
- [ ] "media-has-caption"
- [ ] "mouse-events-have-key-events"
- [ ] "no-access-key"
- [ ] "no-autofocus"
- [ ] "no-distracting-elements"
- [ ] "no-interactive-element-to-noninteractive-role"
- [ ] "no-noninteractive-element-interactions"
- [ ] "no-noninteractive-element-to-interactive-role"
- [ ] "no-noninteractive-tabindex"
- [ ] "no-onchange"
- [ ] "no-redundant-roles"
- [ ] "no-static-element-interactions"
- [ ] "role-has-required-aria-props"
- [ ] "role-supports-aria-props"
- [ ] "scope"
- [ ] "tabindex-no-positive"

View File

@ -0,0 +1,4 @@
# React Hooks
- [ ] "exhaustive-deps"
- [ ] "rules-of-hooks"

89
docs/roadmap/react.md Normal file
View File

@ -0,0 +1,89 @@
# React
- [ ] "boolean-prop-naming"
- [ ] "button-has-type"
- [ ] "default-props-match-prop-types"
- [ ] "destructuring-assignment"
- [ ] "display-name"
- [ ] "forbid-component-props"
- [ ] "forbid-dom-props"
- [ ] "forbid-elements"
- [ ] "forbid-foreign-prop-types"
- [ ] "forbid-prop-types"
- [ ] "function-component-definition"
- [ ] "jsx-boolean-value"
- [ ] "jsx-child-element-spacing"
- [ ] "jsx-closing-bracket-location"
- [ ] "jsx-closing-tag-location"
- [ ] "jsx-curly-brace-presence"
- [ ] "jsx-curly-newline"
- [ ] "jsx-curly-spacing"
- [ ] "jsx-equals-spacing"
- [ ] "jsx-filename-extension"
- [ ] "jsx-first-prop-new-line"
- [ ] "jsx-fragments"
- [ ] "jsx-handler-names"
- [ ] "jsx-indent"
- [ ] "jsx-indent-props"
- [ ] "jsx-key"
- [ ] "jsx-max-depth"
- [ ] "jsx-max-props-per-line"
- [ ] "jsx-no-bind"
- [ ] "jsx-no-comment-textnodes"
- [ ] "jsx-no-duplicate-props"
- [ ] "jsx-no-literals"
- [ ] "jsx-no-script-url"
- [ ] "jsx-no-target-blank"
- [ ] "jsx-no-undef"
- [ ] "jsx-no-useless-fragment"
- [ ] "jsx-one-expression-per-line"
- [ ] "jsx-pascal-case"
- [ ] "jsx-props-no-multi-spaces"
- [ ] "jsx-props-no-spreading"
- [ ] "jsx-sort-default-props"
- [ ] "jsx-sort-props"
- [ ] "jsx-space-before-closing"
- [ ] "jsx-tag-spacing"
- [ ] "jsx-uses-react"
- [ ] "jsx-uses-vars"
- [ ] "jsx-wrap-multilines"
- [ ] "no-access-state-in-setstate"
- [ ] "no-adjacent-inline-elements"
- [ ] "no-array-index-key"
- [ ] "no-children-prop"
- [ ] "no-danger"
- [ ] "no-danger-with-children"
- [ ] "no-deprecated"
- [ ] "no-did-mount-set-state"
- [ ] "no-did-update-set-state"
- [ ] "no-direct-mutation-state"
- [ ] "no-find-dom-node"
- [ ] "no-is-mounted"
- [ ] "no-multi-comp"
- [ ] "no-redundant-should-component-update"
- [ ] "no-render-return-value"
- [ ] "no-set-state"
- [ ] "no-string-refs"
- [ ] "no-this-in-sfc"
- [ ] "no-typos"
- [ ] "no-unescaped-entities"
- [ ] "no-unknown-property"
- [ ] "no-unsafe"
- [ ] "no-unused-prop-types"
- [ ] "no-unused-state"
- [ ] "no-will-update-set-state"
- [ ] "prefer-es6-class"
- [ ] "prefer-read-only-props"
- [ ] "prefer-stateless-function"
- [ ] "prop-types"
- [ ] "react-in-jsx-scope"
- [ ] "require-default-props"
- [ ] "require-optimization"
- [ ] "require-render-return"
- [ ] "self-closing-comp"
- [ ] "sort-comp"
- [ ] "sort-prop-types"
- [ ] "state-in-constructor"
- [ ] "static-property-placement"
- [ ] "style-prop-object"
- [ ] "void-dom-elements-no-children"

15
docs/roadmap/security.md Normal file
View File

@ -0,0 +1,15 @@
# Security
- [ ] "detect-buffer-noassert"
- [ ] "detect-child-process"
- [ ] "detect-disable-mustache-escape"
- [ ] "detect-eval-with-expression"
- [ ] "detect-new-buffer"
- [ ] "detect-no-csrf-before-method-override"
- [ ] "detect-non-literal-fs-filename"
- [ ] "detect-non-literal-regexp"
- [ ] "detect-non-literal-require"
- [ ] "detect-object-injection"
- [ ] "detect-possible-timing-attacks"
- [ ] "detect-pseudoRandomBytes"
- [ ] "detect-unsafe-regex"

27
docs/roadmap/sonarjs.md Normal file
View File

@ -0,0 +1,27 @@
# SonarJS
- [X] "cognitive-complexity"
- [X] "max-switch-cases"
- [X] "no-all-duplicated-branches"
- [X] "no-collapsible-if"
- [X] "no-collection-size-mischeck"
- [X] "no-duplicate-string"
- [X] "no-duplicated-branches"
- [X] "no-element-overwrite"
- [X] "no-extra-arguments"
- [X] "no-identical-conditions"
- [X] "no-identical-expressions"
- [X] "no-identical-functions"
- [X] "no-inverted-boolean-check"
- [X] "no-one-iteration-loop"
- [X] "no-redundant-boolean"
- [X] "no-redundant-jump"
- [X] "no-same-line-conditional"
- [X] "no-small-switch"
- [X] "no-unused-collection"
- [X] "no-use-of-empty-return-value"
- [X] "no-useless-catch"
- [X] "prefer-immediate-return"
- [X] "prefer-object-literal"
- [X] "prefer-single-boolean-return"
- [X] "prefer-while"

101
docs/roadmap/typescript.md Normal file
View File

@ -0,0 +1,101 @@
# TypeScript
- [ ] "adjacent-overload-signatures"
- [ ] "array-type"
- [X] "await-thenable"
- [ ] "ban-ts-comment"
- [ ] "ban-tslint-comment"
- [ ] "ban-types"
- [ ] "brace-style"
- [ ] "camelcase"
- [X] "class-literal-property-style"
- [X] "comma-spacing"
- [ ] "consistent-type-assertions"
- [ ] "consistent-type-definitions"
- [ ] "default-param-last"
- [ ] "dot-notation"
- [X] "explicit-function-return-type"
- [X] "explicit-member-accessibility"
- [ ] "explicit-module-boundary-types"
- [ ] "func-call-spacing"
- [X] "indent"
- [ ] "init-declarations"
- [ ] "keyword-spacing"
- [ ] "lines-between-class-members"
- [ ] "member-delimiter-style"
- [ ] "member-ordering"
- [X] "method-signature-style"
- [ ] "naming-convention"
- [ ] "no-array-constructor"
- [X] "no-base-to-string"
- [ ] "no-confusing-non-null-assertion"
- [ ] "no-dupe-class-members"
- [ ] "no-dynamic-delete"
- [ ] "no-empty-function"
- [X] "no-empty-interface"
- [X] "no-explicit-any"
- [ ] "no-extra-non-null-assertion"
- [ ] "no-extra-parens"
- [X] "no-extra-semi"
- [ ] "no-extraneous-class"
- [ ] "no-floating-promises"
- [ ] "no-for-in-array"
- [X] "no-implied-eval"
- [X] "no-inferrable-types"
- [ ] "no-invalid-this"
- [ ] "no-invalid-void-type"
- [X] "no-magic-numbers"
- [ ] "no-misused-new"
- [X] "no-misused-promises"
- [X] "no-namespace"
- [ ] "no-non-null-asserted-optional-chain"
- [ ] "no-non-null-assertion"
- [ ] "no-parameter-properties"
- [ ] "no-require-imports"
- [ ] "no-this-alias"
- [ ] "no-throw-literal"
- [X] "no-type-alias"
- [ ] "no-unnecessary-boolean-literal-compare"
- [X] "no-unnecessary-condition"
- [ ] "no-unnecessary-qualifier"
- [ ] "no-unnecessary-type-arguments"
- [X] "no-unnecessary-type-assertion"
- [ ] "no-unsafe-assignment"
- [X] "no-unsafe-call"
- [X] "no-unsafe-member-access"
- [X] "no-unsafe-return"
- [ ] "no-unused-expressions"
- [X] "no-unused-vars"
- [X] "no-unused-vars-experimental"
- [X] "no-use-before-define"
- [X] "no-useless-constructor"
- [X] "no-var-requires"
- [ ] "prefer-as-const"
- [ ] "prefer-for-of"
- [ ] "prefer-function-type"
- [ ] "prefer-includes"
- [ ] "prefer-namespace-keyword"
- [ ] "prefer-nullish-coalescing"
- [ ] "prefer-optional-chain"
- [ ] "prefer-readonly"
- [X] "prefer-readonly-parameter-types"
- [ ] "prefer-reduce-type-parameter"
- [ ] "prefer-regexp-exec"
- [ ] "prefer-string-starts-ends-with"
- [ ] "prefer-ts-expect-error"
- [ ] "promise-function-async"
- [X] "quotes"
- [ ] "require-array-sort-compare"
- [X] "require-await"
- [ ] "restrict-plus-operands"
- [ ] "restrict-template-expressions"
- [ ] "return-await"
- [X] "semi"
- [X] "space-before-function-paren"
- [X] "strict-boolean-expressions"
- [ ] "switch-exhaustiveness-check"
- [ ] "triple-slash-reference"
- [X] "type-annotation-spacing"
- [X] "typedef"
- [ ] "unbound-method"
- [ ] "unified-signatures"

57
docs/roadmap/unicorn.md Normal file
View File

@ -0,0 +1,57 @@
# Unicorn
- [ ] "better-regex"
- [ ] "catch-error-name"
- [ ] "consistent-function-scoping"
- [ ] "custom-error-definition"
- [ ] "error-message"
- [ ] "escape-case"
- [ ] "expiring-todo-comments"
- [ ] "explicit-length-check"
- [X] "filename-case"
- [X] "import-index"
- [ ] "new-for-builtins"
- [ ] "no-abusive-eslint-disable"
- [ ] "no-array-instanceof"
- [X] "no-console-spaces"
- [ ] "no-fn-reference-in-iterator"
- [ ] "no-for-loop"
- [ ] "no-hex-escape"
- [ ] "no-keyword-prefix"
- [ ] "no-nested-ternary"
- [ ] "no-new-buffer"
- [ ] "no-null"
- [ ] "no-process-exit"
- [ ] "no-reduce"
- [ ] "no-unreadable-array-destructuring"
- [ ] "no-unsafe-regex"
- [ ] "no-unused-properties"
- [ ] "no-useless-undefined"
- [ ] "no-zero-fractions"
- [ ] "number-literal-case"
- [ ] "prefer-add-event-listener"
- [ ] "prefer-array-find"
- [ ] "prefer-dataset"
- [ ] "prefer-event-key"
- [ ] "prefer-exponentiation-operator"
- [ ] "prefer-flat-map"
- [ ] "prefer-includes"
- [ ] "prefer-modern-dom-apis"
- [ ] "prefer-negative-index"
- [ ] "prefer-node-append"
- [ ] "prefer-node-remove"
- [X] "prefer-number-properties"
- [ ] "prefer-optional-catch-binding"
- [ ] "prefer-query-selector"
- [ ] "prefer-reflect-apply"
- [ ] "prefer-replace-all"
- [X] "prefer-set-has"
- [ ] "prefer-spread"
- [ ] "prefer-starts-ends-with"
- [ ] "prefer-string-slice"
- [ ] "prefer-text-content"
- [ ] "prefer-trim-start-end"
- [ ] "prefer-type-error"
- [X] "prevent-abbreviations"
- [ ] "string-content"
- [ ] "throw-new-error"

100
docs/roadmap/vue.md Normal file
View File

@ -0,0 +1,100 @@
# Vue
- [ ] "array-bracket-spacing"
- [ ] "arrow-spacing"
- [ ] "attribute-hyphenation"
- [X] "attributes-order"
- [ ] "block-spacing"
- [ ] "brace-style"
- [ ] "camelcase"
- [X] "comma-dangle"
- [ ] "comment-directive"
- [ ] "component-definition-name-casing"
- [ ] "component-name-in-template-casing"
- [ ] "component-tags-order"
- [ ] "dot-location"
- [ ] "eqeqeq"
- [X] "html-closing-bracket-newline"
- [X] "html-closing-bracket-spacing"
- [ ] "html-end-tags"
- [X] "html-indent"
- [X] "html-quotes"
- [X] "html-self-closing"
- [ ] "jsx-uses-vars"
- [ ] "key-spacing"
- [ ] "keyword-spacing"
- [ ] "match-component-file-name"
- [X] "max-attributes-per-line"
- [ ] "max-len"
- [ ] "multiline-html-element-content-newline"
- [ ] "mustache-interpolation-spacing"
- [ ] "name-property-casing"
- [ ] "no-async-in-computed-properties"
- [ ] "no-boolean-default"
- [ ] "no-confusing-v-for-v-if"
- [ ] "no-deprecated-scope-attribute"
- [ ] "no-deprecated-slot-attribute"
- [ ] "no-deprecated-slot-scope-attribute"
- [ ] "no-dupe-keys"
- [ ] "no-duplicate-attributes"
- [ ] "no-empty-pattern"
- [ ] "no-irregular-whitespace"
- [X] "no-multi-spaces"
- [ ] "no-parsing-error"
- [ ] "no-reserved-component-names"
- [ ] "no-reserved-keys"
- [ ] "no-restricted-syntax"
- [ ] "no-shared-component-data"
- [ ] "no-side-effects-in-computed-properties"
- [ ] "no-spaces-around-equal-signs-in-attribute"
- [ ] "no-static-inline-styles"
- [ ] "no-template-key"
- [ ] "no-template-shadow"
- [ ] "no-textarea-mustache"
- [ ] "no-unsupported-features"
- [ ] "no-unused-components"
- [X] "no-unused-vars"
- [ ] "no-use-v-if-with-v-for"
- [ ] "no-v-html"
- [X] "object-curly-spacing"
- [ ] "order-in-components"
- [X] "padding-line-between-blocks"
- [ ] "prop-name-casing"
- [ ] "require-component-is"
- [ ] "require-default-prop"
- [ ] "require-direct-export"
- [ ] "require-name-property"
- [ ] "require-prop-type-constructor"
- [ ] "require-prop-types"
- [ ] "require-render-return"
- [ ] "require-v-for-key"
- [ ] "require-valid-default-prop"
- [ ] "return-in-computed-property"
- [X] "script-indent"
- [ ] "singleline-html-element-content-newline"
- [X] "sort-keys"
- [X] "space-infix-ops"
- [ ] "space-unary-ops"
- [ ] "static-class-names-order"
- [ ] "this-in-template"
- [ ] "use-v-on-exact"
- [ ] "v-bind-style"
- [ ] "v-on-function-call"
- [ ] "v-on-style"
- [ ] "v-slot-style"
- [ ] "valid-template-root"
- [ ] "valid-v-bind"
- [ ] "valid-v-bind-sync"
- [ ] "valid-v-cloak"
- [ ] "valid-v-else"
- [ ] "valid-v-else-if"
- [ ] "valid-v-for"
- [ ] "valid-v-html"
- [ ] "valid-v-if"
- [ ] "valid-v-model"
- [ ] "valid-v-on"
- [ ] "valid-v-once"
- [ ] "valid-v-pre"
- [ ] "valid-v-show"
- [ ] "valid-v-slot"
- [ ] "valid-v-text"

2472
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@valentineus/eslint-config",
"version": "0.0.15",
"version": "0.0.17",
"description": "Personal ESLint configuration",
"main": "index.js",
"repository": "git@code.valentineus.link:eslint-config.git",
@ -11,31 +11,38 @@
"build": "rollup --config rollup.config.js"
},
"devDependencies": {
"@rollup/plugin-json": "^4.0.2",
"@rollup/plugin-typescript": "^3.0.0",
"@typescript-eslint/eslint-plugin": "^2.26.0",
"@typescript-eslint/parser": "^2.26.0",
"eslint": "^6.8.0",
"eslint-plugin-eslint-comments": "^3.1.2",
"eslint-plugin-import": "^2.20.2",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-typescript": "^4.1.2",
"@types/node": "^14.0.13",
"@typescript-eslint/eslint-plugin": "^3.3.0",
"@typescript-eslint/parser": "^3.3.0",
"eslint": "^7.2.0",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-import": "^2.21.2",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.20.0",
"eslint-plugin-react-hooks": "^4.0.4",
"eslint-plugin-security": "^1.4.0",
"eslint-plugin-sonarjs": "^0.5.0",
"eslint-plugin-unicorn": "^18.0.1",
"eslint-plugin-unicorn": "^20.1.0",
"eslint-plugin-vue": "^6.2.2",
"rollup": "^1.31.1",
"rollup-plugin-terser": "^5.2.0",
"tslib": "^1.10.0",
"typescript": "^3.7.5"
"rollup": "^2.17.0",
"rollup-plugin-terser": "^6.1.0",
"tslib": "^2.0.0",
"typescript": "^3.9.5"
},
"peerDependencies": {
"@typescript-eslint/eslint-plugin": "^2.26.0",
"@typescript-eslint/parser": "^2.26.0",
"eslint": "^6.8.0",
"eslint-plugin-eslint-comments": "^3.1.2",
"eslint-plugin-import": "^2.20.2",
"@typescript-eslint/eslint-plugin": "^3.3.0",
"@typescript-eslint/parser": "^3.3.0",
"eslint": "^7.2.0",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-import": "^2.21.2",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react": "^7.20.0",
"eslint-plugin-react-hooks": "^4.0.4",
"eslint-plugin-security": "^1.4.0",
"eslint-plugin-sonarjs": "^0.5.0",
"eslint-plugin-unicorn": "^18.0.1",
"eslint-plugin-unicorn": "^20.1.0",
"eslint-plugin-vue": "^6.2.2"
},
"dependencies": {}

View File

@ -1,10 +1,12 @@
import { terser } from "rollup-plugin-terser";
import json from "@rollup/plugin-json";
import typescript from "@rollup/plugin-typescript";
import { terser } from "rollup-plugin-terser";
module.exports = {
input: {
"javascript": "src/javascript.ts",
"react-javascript": "src/react-javascript.ts",
"react-typescript": "src/react-typescript.ts",
"typescript": "src/typescript.ts",
"vue-javascript": "src/vue-javascript.ts",
"vue-typescript": "src/vue-typescript.ts",
@ -25,7 +27,6 @@ module.exports = {
output: {
comments: false,
},
sourcemap: false,
}),
],
};

27
src/react-javascript.ts Normal file
View File

@ -0,0 +1,27 @@
import rJsxA11y from "./rules/jsx-a11y/default.json";
import rReactHooks from "./rules/react-hooks/default.json";
import rDefault from "./rules/react/default.json";
module.exports = {
"extends": [
"./javascript",
"plugin:jsx-a11y/recommended",
"plugin:react-hooks/recommended",
"plugin:react/recommended",
],
"parserOptions": {
ecmaFeatures: {
jsx: true,
},
},
"plugins": [
"jsx-a11y",
"react",
"react-hooks",
],
"rules": {
...rDefault,
...rJsxA11y,
...rReactHooks,
},
};

27
src/react-typescript.ts Normal file
View File

@ -0,0 +1,27 @@
import rJsxA11y from "./rules/jsx-a11y/default.json";
import rReactHooks from "./rules/react-hooks/default.json";
import rDefault from "./rules/react/default.json";
module.exports = {
"extends": [
"./typescript",
"plugin:jsx-a11y/recommended",
"plugin:react-hooks/recommended",
"plugin:react/recommended",
],
"parserOptions": {
ecmaFeatures: {
jsx: true,
},
},
"plugins": [
"jsx-a11y",
"react",
"react-hooks",
],
"rules": {
...rDefault,
...rJsxA11y,
...rReactHooks,
},
};

View File

@ -2,7 +2,8 @@
"array-callback-return": [
"error",
{
"allowImplicit": false
"allowImplicit": false,
"checkForEach": true
}
],
"arrow-parens": [
@ -23,9 +24,6 @@
"allowSingleLine": false
}
],
"callback-return": [
"warn"
],
"camelcase": [
"error",
{
@ -53,10 +51,7 @@
],
"comma-style": [
"error",
"last",
{
"exceptions": {}
}
"last"
],
"curly": [
"error",
@ -80,9 +75,6 @@
"error",
"consistent"
],
"handle-callback-err": [
"error"
],
"id-length": [
"warn",
{
@ -114,7 +106,7 @@
"VariableDeclarator": 1,
"flatTernaryExpressions": true,
"ignoreComments": false,
"ignoredNodes": [],
"offsetTernaryExpressions": true,
"outerIIFEBody": 1
}
],
@ -330,9 +322,6 @@
"no-new-func": [
"error"
],
"no-new-require": [
"error"
],
"no-new-wrappers": [
"error"
],
@ -345,12 +334,6 @@
"props": true
}
],
"no-path-concat": [
"error"
],
"no-process-env": [
"off"
],
"no-proto": [
"error"
],
@ -469,9 +452,22 @@
"object-curly-newline": [
"error",
{
"ExportDeclaration": {
"consistent": true,
"minProperties": 5,
"minProperties": 1,
"multiline": true
},
"ImportDeclaration": "never",
"ObjectExpression": {
"consistent": true,
"minProperties": 1,
"multiline": true
},
"ObjectPattern": {
"consistent": true,
"minProperties": 1,
"multiline": true
}
}
],
"object-curly-spacing": [

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -16,6 +16,7 @@
"@typescript-eslint/explicit-function-return-type": [
"error",
{
"allowConciseArrowFunctionExpressionsStartingWithVoid": false,
"allowExpressions": false,
"allowHigherOrderFunctions": false,
"allowTypedFunctionExpressions": false
@ -61,12 +62,9 @@
"outerIIFEBody": 1
}
],
"@typescript-eslint/interface-name-prefix": [
"@typescript-eslint/method-signature-style": [
"error",
{
"allowUnderscorePrefix": false,
"prefixWithI": "always"
}
"property"
],
"@typescript-eslint/no-base-to-string": [
"error"
@ -125,9 +123,7 @@
"@typescript-eslint/no-unnecessary-condition": [
"error",
{
"allowConstantLoopConditions": false,
"checkArrayPredicates": true,
"ignoreRhs": true
"allowConstantLoopConditions": false
}
],
"@typescript-eslint/no-unnecessary-type-assertion": [
@ -142,14 +138,6 @@
"@typescript-eslint/no-unsafe-return": [
"error"
],
"@typescript-eslint/no-untyped-public-signature": [
"warn",
{
"ignoredMethods": [
"constructor"
]
}
],
"@typescript-eslint/no-unused-vars": [
"error",
{
@ -213,9 +201,13 @@
"@typescript-eslint/strict-boolean-expressions": [
"error",
{
"allowNullable": false,
"allowSafe": false,
"ignoreRhs": false
"allowAny": false,
"allowNullableBoolean": false,
"allowNullableNumber": false,
"allowNullableObject": false,
"allowNullableString": false,
"allowNumber": false,
"allowString": false
}
],
"@typescript-eslint/type-annotation-spacing": [

View File

@ -3,7 +3,6 @@ import rDefault from "./rules/typescript/default.json";
module.exports = {
"extends": [
"./javascript",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:import/typescript",
@ -15,5 +14,7 @@ module.exports = {
"plugins": [
"@typescript-eslint",
],
"rules": { ...rDefault },
"rules": {
...rDefault,
},
};

View File

@ -14,7 +14,9 @@ module.exports = {
files: [
"*.vue",
],
rules: { ...rOverrides },
rules: {
...rOverrides,
},
},
],
"parser": "vue-eslint-parser",
@ -24,5 +26,7 @@ module.exports = {
],
},
"plugins": ["vue"],
"rules": { ...rDefault },
"rules": {
...rDefault,
},
};

View File

@ -14,7 +14,9 @@ module.exports = {
files: [
"*.vue",
],
rules: { ...rOverrides },
rules: {
...rOverrides,
},
},
],
"parser": "vue-eslint-parser",
@ -26,5 +28,7 @@ module.exports = {
parser: "@typescript-eslint/parser",
},
"plugins": ["vue"],
"rules": { ...rDefault },
"rules": {
...rDefault,
},
};

1639
yarn.lock

File diff suppressed because it is too large Load Diff