Compare commits

..

No commits in common. "master" and "v0.0.3" have entirely different histories.

20 changed files with 186 additions and 710 deletions

View File

@ -12,7 +12,5 @@ tab_width = 4
trim_trailing_whitespace = true
[*.json]
indent_style = space
[*.yml]
indent_size = 2
indent_style = space

View File

@ -1,17 +0,0 @@
name: Workflow
on: [push]
jobs:
mirror:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: yesolutions/mirror-action@master
with:
REMOTE: 'https://git.popov.link/eslint-config.git'
GIT_USERNAME: ${{ secrets.GIT_USERNAME }}
GIT_PASSWORD: ${{ secrets.GIT_PASSWORD }}

View File

@ -1,19 +0,0 @@
name: Publish
on:
create:
tags:
- v*
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '13.x'
- run: yarn install
- run: yarn run build
- run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}" > ~/.npmrc
- run: npm publish

View File

@ -203,7 +203,6 @@ src/
# Configuration file
.editorconfig
.eslintrc.json
.github/
.gitignore
rollup.config.js
tsconfig.json

View File

@ -1,71 +1 @@
<p align="center">
<img height="60px" width="60px" src="https://eslint.org/assets/img/favicon.512x512.png" />
<h1 align="center">Personal ESLint configuration</h1>
</p>
<p align="center">
<a href="https://www.npmjs.com/package/@valentineus/eslint-config">
<img src="https://flat.badgen.net/npm/v/@valentineus/eslint-config" />
</a>
<a href="https://www.npmjs.com/package/@valentineus/eslint-config">
<img src="https://flat.badgen.net/packagephobia/install/@valentineus/eslint-config" />
</a>
<a href="https://github.com/valentineus/eslint-config">
<img src="https://flat.badgen.net/github/last-commit/valentineus/eslint-config" />
</a>
</p>
## Configurations
* `javascript`
* `typescript`
* `vue-javascript`
* `vue-typescript`
## Example
* 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
# 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
```
* Create config file:
```json
{
"env": {
"browser": true,
"es6": true
},
"extends": [
"@valentineus/eslint-config/vue-typescript"
],
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"createDefaultProgram": true,
"ecmaVersion": 2020,
"project": "tsconfig.json",
"sourceType": "module",
"tsconfigRootDir": "."
},
"rules": {}
}
```
## License
[Apache-2.0](LICENSE.txt).
Copyright (c) [Valentin Popov](mailto:info@valentineus.link).
# Personal ESLint configuration

View File

@ -53,7 +53,7 @@
- [X] "indent"
- [X] "indent-legacy"
- [ ] "init-declarations"
- [X] "jsx-quotes"
- [ ] "jsx-quotes"
- [X] "key-spacing"
- [X] "keyword-spacing"
- [ ] "line-comment-position"
@ -69,7 +69,7 @@
- [ ] "max-nested-callbacks"
- [ ] "max-params"
- [X] "max-statements"
- [X] "max-statements-per-line"
- [ ] "max-statements-per-line"
- [X] "multiline-comment-style"
- [ ] "multiline-ternary"
- [X] "new-cap"
@ -163,7 +163,7 @@
- [ ] "no-param-reassign"
- [X] "no-path-concat"
- [ ] "no-plusplus"
- [X] "no-process-env"
- [ ] "no-process-env"
- [ ] "no-process-exit"
- [X] "no-proto"
- [ ] "no-prototype-builtins"
@ -192,7 +192,7 @@
- [X] "no-ternary"
- [ ] "no-this-before-super"
- [ ] "no-throw-literal"
- [X] "no-trailing-spaces"
- [ ] "no-trailing-spaces"
- [ ] "no-undef"
- [X] "no-undef-init"
- [X] "no-undefined"
@ -219,7 +219,7 @@
- [X] "no-var"
- [ ] "no-void"
- [ ] "no-warning-comments"
- [X] "no-whitespace-before-property"
- [ ] "no-whitespace-before-property"
- [X] "no-with"
- [ ] "nonblock-statement-body-position"
- [X] "object-curly-newline"
@ -263,7 +263,7 @@
- [X] "space-before-blocks"
- [X] "space-before-function-paren"
- [ ] "space-in-parens"
- [X] "space-infix-ops"
- [ ] "space-infix-ops"
- [ ] "space-unary-ops"
- [ ] "spaced-comment"
- [X] "strict"
@ -283,14 +283,14 @@
## 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"
- [ ] "disable-enable-pair"
- [ ] "no-aggregating-enable"
- [ ] "no-duplicate-disable"
- [ ] "no-restricted-disable"
- [ ] "no-unlimited-disable"
- [ ] "no-unused-disable"
- [ ] "no-unused-enable"
- [ ] "no-use"
## Import
@ -331,7 +331,7 @@
- [ ] "no-unused-modules"
- [ ] "no-useless-path-segments"
- [X] "no-webpack-loader-syntax"
- [X] "order"
- [ ] "order"
- [ ] "prefer-default-export"
- [ ] "unambiguous"
@ -353,31 +353,31 @@
## 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"
- [ ] "cognitive-complexity"
- [ ] "max-switch-cases"
- [ ] "no-all-duplicated-branches"
- [ ] "no-collapsible-if"
- [ ] "no-collection-size-mischeck"
- [ ] "no-duplicate-string"
- [ ] "no-duplicated-branches"
- [ ] "no-element-overwrite"
- [ ] "no-extra-arguments"
- [ ] "no-identical-conditions"
- [ ] "no-identical-expressions"
- [ ] "no-identical-functions"
- [ ] "no-inverted-boolean-check"
- [ ] "no-one-iteration-loop"
- [ ] "no-redundant-boolean"
- [ ] "no-redundant-jump"
- [ ] "no-same-line-conditional"
- [ ] "no-small-switch"
- [ ] "no-unused-collection"
- [ ] "no-use-of-empty-return-value"
- [ ] "no-useless-catch"
- [ ] "prefer-immediate-return"
- [ ] "prefer-object-literal"
- [ ] "prefer-single-boolean-return"
- [ ] "prefer-while"
## TypeScript
@ -389,14 +389,13 @@
- [ ] "ban-types"
- [ ] "brace-style"
- [ ] "camelcase"
- [X] "class-literal-property-style"
- [ ] "class-name-casing"
- [X] "comma-spacing"
- [ ] "comma-spacing"
- [ ] "consistent-type-assertions"
- [ ] "consistent-type-definitions"
- [ ] "default-param-last"
- [X] "explicit-function-return-type"
- [X] "explicit-member-accessibility"
- [ ] "explicit-function-return-type"
- [ ] "explicit-member-accessibility"
- [ ] "explicit-module-boundary-types"
- [ ] "func-call-spacing"
- [ ] "generic-type-naming"
@ -407,7 +406,6 @@
- [ ] "member-ordering"
- [ ] "naming-convention"
- [ ] "no-array-constructor"
- [X] "no-base-to-string"
- [ ] "no-dupe-class-members"
- [ ] "no-dynamic-delete"
- [ ] "no-empty-function"
@ -415,7 +413,7 @@
- [X] "no-explicit-any"
- [ ] "no-extra-non-null-assertion"
- [ ] "no-extra-parens"
- [X] "no-extra-semi"
- [ ] "no-extra-semi"
- [ ] "no-extraneous-class"
- [ ] "no-floating-promises"
- [ ] "no-for-in-array"
@ -423,7 +421,7 @@
- [X] "no-inferrable-types"
- [X] "no-magic-numbers"
- [ ] "no-misused-new"
- [X] "no-misused-promises"
- [ ] "no-misused-promises"
- [X] "no-namespace"
- [ ] "no-non-null-asserted-optional-chain"
- [ ] "no-non-null-assertion"
@ -431,15 +429,12 @@
- [ ] "no-require-imports"
- [ ] "no-this-alias"
- [ ] "no-throw-literal"
- [X] "no-type-alias"
- [ ] "no-type-alias"
- [ ] "no-unnecessary-boolean-literal-compare"
- [X] "no-unnecessary-condition"
- [ ] "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"
- [ ] "no-unnecessary-type-assertion"
- [X] "no-untyped-public-signature"
- [ ] "no-unused-expressions"
- [X] "no-unused-vars"
@ -455,7 +450,6 @@
- [ ] "prefer-nullish-coalescing"
- [ ] "prefer-optional-chain"
- [ ] "prefer-readonly"
- [X] "prefer-readonly-parameter-types"
- [ ] "prefer-regexp-exec"
- [ ] "prefer-string-starts-ends-with"
- [ ] "promise-function-async"
@ -466,7 +460,7 @@
- [ ] "restrict-template-expressions"
- [ ] "return-await"
- [X] "semi"
- [X] "space-before-function-paren"
- [ ] "space-before-function-paren"
- [X] "strict-boolean-expressions"
- [ ] "switch-exhaustiveness-check"
- [ ] "triple-slash-reference"
@ -485,12 +479,12 @@
- [ ] "escape-case"
- [ ] "expiring-todo-comments"
- [ ] "explicit-length-check"
- [X] "filename-case"
- [X] "import-index"
- [ ] "filename-case"
- [ ] "import-index"
- [ ] "new-for-builtins"
- [ ] "no-abusive-eslint-disable"
- [ ] "no-array-instanceof"
- [X] "no-console-spaces"
- [ ] "no-console-spaces"
- [ ] "no-fn-reference-in-iterator"
- [ ] "no-for-loop"
- [ ] "no-hex-escape"
@ -513,18 +507,17 @@
- [ ] "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"
- [ ] "prevent-abbreviations"
- [ ] "regex-shorthand"
- [ ] "throw-new-error"
## Vue
@ -536,7 +529,7 @@
- [ ] "block-spacing"
- [ ] "brace-style"
- [ ] "camelcase"
- [X] "comma-dangle"
- [ ] "comma-dangle"
- [ ] "comment-directive"
- [ ] "component-definition-name-casing"
- [ ] "component-name-in-template-casing"
@ -568,7 +561,7 @@
- [ ] "no-duplicate-attributes"
- [ ] "no-empty-pattern"
- [ ] "no-irregular-whitespace"
- [X] "no-multi-spaces"
- [ ] "no-multi-spaces"
- [ ] "no-parsing-error"
- [ ] "no-reserved-component-names"
- [ ] "no-reserved-keys"
@ -582,12 +575,11 @@
- [ ] "no-textarea-mustache"
- [ ] "no-unsupported-features"
- [ ] "no-unused-components"
- [X] "no-unused-vars"
- [ ] "no-unused-vars"
- [ ] "no-use-v-if-with-v-for"
- [ ] "no-v-html"
- [X] "object-curly-spacing"
- [ ] "object-curly-spacing"
- [ ] "order-in-components"
- [X] "padding-line-between-blocks"
- [ ] "prop-name-casing"
- [ ] "require-component-is"
- [ ] "require-default-prop"
@ -601,8 +593,7 @@
- [ ] "return-in-computed-property"
- [X] "script-indent"
- [ ] "singleline-html-element-content-newline"
- [X] "sort-keys"
- [X] "space-infix-ops"
- [ ] "space-infix-ops"
- [ ] "space-unary-ops"
- [ ] "static-class-names-order"
- [ ] "this-in-template"

View File

@ -1,6 +1,6 @@
{
"name": "@valentineus/eslint-config",
"version": "0.0.15",
"version": "0.0.3",
"description": "Personal ESLint configuration",
"main": "index.js",
"repository": "git@code.valentineus.link:eslint-config.git",
@ -13,30 +13,30 @@
"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",
"@typescript-eslint/eslint-plugin": "^2.19.2",
"@typescript-eslint/parser": "^2.19.2",
"eslint": "^6.8.0",
"eslint-plugin-eslint-comments": "^3.1.2",
"eslint-plugin-import": "^2.20.2",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-security": "^1.4.0",
"eslint-plugin-sonarjs": "^0.5.0",
"eslint-plugin-unicorn": "^18.0.1",
"eslint-plugin-vue": "^6.2.2",
"eslint-plugin-unicorn": "^16.1.1",
"eslint-plugin-vue": "^6.1.2",
"rollup": "^1.31.1",
"rollup-plugin-terser": "^5.2.0",
"tslib": "^1.10.0",
"typescript": "^3.7.5"
},
"peerDependencies": {
"@typescript-eslint/eslint-plugin": "^2.26.0",
"@typescript-eslint/parser": "^2.26.0",
"@typescript-eslint/eslint-plugin": "^2.19.0",
"@typescript-eslint/parser": "^2.19.0",
"eslint": "^6.8.0",
"eslint-plugin-eslint-comments": "^3.1.2",
"eslint-plugin-import": "^2.20.2",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-security": "^1.4.0",
"eslint-plugin-sonarjs": "^0.5.0",
"eslint-plugin-unicorn": "^18.0.1",
"eslint-plugin-vue": "^6.2.2"
"eslint-plugin-unicorn": "^16.1.1",
"eslint-plugin-vue": "^6.1.2"
},
"dependencies": {}
}

View File

@ -1,6 +1,6 @@
import rComments from "./rules/eslint-comments/default.json";
import rImport from "./rules/import/default.json";
import rDefault from "./rules/javascript/default.json";
import rImport from "./rules/import/default.json";
import rSecurity from "./rules/security/default.json";
import rSonarJS from "./rules/sonarjs/default.json";
import rUnicorn from "./rules/unicorn/default.json";

View File

@ -1,42 +1 @@
{
"eslint-comments/disable-enable-pair": [
"error",
{
"allowWholeFile": true
}
],
"eslint-comments/no-aggregating-enable": [
"error"
],
"eslint-comments/no-duplicate-disable": [
"error"
],
"eslint-comments/no-restricted-disable": [
"off"
],
"eslint-comments/no-unlimited-disable": [
"error"
],
"eslint-comments/no-unused-disable": [
"error"
],
"eslint-comments/no-unused-enable": [
"error"
],
"eslint-comments/no-use": [
"error",
{
"allow": [
"eslint",
"eslint-disable",
"eslint-disable-line",
"eslint-disable-next-line",
"eslint-enable",
"eslint-env",
"exported",
"global",
"globals"
]
}
]
}
{}

View File

@ -13,30 +13,5 @@
],
"import/no-webpack-loader-syntax": [
"error"
],
"import/order": [
"error",
{
"alphabetize": {
"caseInsensitive": false,
"order": "asc"
},
"groups": [
[
"builtin",
"external"
],
[
"internal",
"parent",
"sibling"
],
[
"index"
],
"unknown"
],
"newlines-between": "always"
}
]
}

View File

@ -111,7 +111,7 @@
"MemberExpression": 1,
"ObjectExpression": 1,
"SwitchCase": 1,
"VariableDeclarator": 1,
"VariableDeclarator": "first",
"flatTernaryExpressions": true,
"ignoreComments": false,
"ignoredNodes": [],
@ -121,10 +121,6 @@
"indent-legacy": [
"off"
],
"jsx-quotes": [
"error",
"prefer-double"
],
"key-spacing": [
"error",
{
@ -177,7 +173,6 @@
"code": 180,
"comments": 72,
"ignoreComments": false,
"ignorePattern": "eslint*",
"ignoreRegExpLiterals": false,
"ignoreStrings": true,
"ignoreTemplateLiterals": true,
@ -201,12 +196,6 @@
"max-statements": [
"off"
],
"max-statements-per-line": [
"error",
{
"max": 1
}
],
"multiline-comment-style": [
"error",
"starred-block"
@ -295,7 +284,16 @@
"error"
],
"no-magic-numbers": [
"off"
"warn",
{
"detectObjects": false,
"enforceConst": true,
"ignore": [
0,
1
],
"ignoreArrayIndexes": false
}
],
"no-mixed-spaces-and-tabs": [
"error"
@ -339,18 +337,9 @@
"no-octal-escape": [
"error"
],
"no-param-reassign": [
"warn",
{
"props": true
}
],
"no-path-concat": [
"error"
],
"no-process-env": [
"off"
],
"no-proto": [
"error"
],
@ -386,13 +375,6 @@
"no-ternary": [
"off"
],
"no-trailing-spaces": [
"error",
{
"ignoreComments": false,
"skipBlankLines": false
}
],
"no-undef-init": [
"error"
],
@ -460,9 +442,6 @@
"no-var": [
"error"
],
"no-whitespace-before-property": [
"error"
],
"no-with": [
"error"
],
@ -615,12 +594,6 @@
"named": "never"
}
],
"space-infix-ops": [
"error",
{
"int32Hint": false
}
],
"strict": [
"error",
"safe"

View File

@ -1,80 +1 @@
{
"sonarjs/cognitive-complexity": [
"warn",
25
],
"sonarjs/max-switch-cases": [
"warn",
30
],
"sonarjs/no-all-duplicated-branches": [
"error"
],
"sonarjs/no-collapsible-if": [
"error"
],
"sonarjs/no-collection-size-mischeck": [
"error"
],
"sonarjs/no-duplicate-string": [
"warn",
5
],
"sonarjs/no-duplicated-branches": [
"error"
],
"sonarjs/no-element-overwrite": [
"error"
],
"sonarjs/no-extra-arguments": [
"error"
],
"sonarjs/no-identical-conditions": [
"error"
],
"sonarjs/no-identical-expressions": [
"error"
],
"sonarjs/no-identical-functions": [
"error"
],
"sonarjs/no-inverted-boolean-check": [
"error"
],
"sonarjs/no-one-iteration-loop": [
"error"
],
"sonarjs/no-redundant-boolean": [
"error"
],
"sonarjs/no-redundant-jump": [
"error"
],
"sonarjs/no-same-line-conditional": [
"error"
],
"sonarjs/no-small-switch": [
"error"
],
"sonarjs/no-unused-collection": [
"error"
],
"sonarjs/no-use-of-empty-return-value": [
"error"
],
"sonarjs/no-useless-catch": [
"warn"
],
"sonarjs/prefer-immediate-return": [
"error"
],
"sonarjs/prefer-object-literal": [
"error"
],
"sonarjs/prefer-single-boolean-return": [
"error"
],
"sonarjs/prefer-while": [
"error"
]
}
{}

View File

@ -2,38 +2,6 @@
"@typescript-eslint/await-thenable": [
"error"
],
"@typescript-eslint/class-literal-property-style": [
"error",
"getters"
],
"@typescript-eslint/comma-spacing": [
"error",
{
"after": true,
"before": false
}
],
"@typescript-eslint/explicit-function-return-type": [
"error",
{
"allowExpressions": false,
"allowHigherOrderFunctions": false,
"allowTypedFunctionExpressions": false
}
],
"@typescript-eslint/explicit-member-accessibility": [
"error",
{
"accessibility": "explicit",
"overrides": {
"accessors": "explicit",
"constructors": "explicit",
"methods": "explicit",
"parameterProperties": "explicit",
"properties": "explicit"
}
}
],
"@typescript-eslint/indent": [
"error",
"tab",
@ -54,7 +22,7 @@
"MemberExpression": 1,
"ObjectExpression": 1,
"SwitchCase": 1,
"VariableDeclarator": 1,
"VariableDeclarator": "first",
"flatTernaryExpressions": true,
"ignoreComments": false,
"ignoredNodes": [],
@ -68,9 +36,6 @@
"prefixWithI": "always"
}
],
"@typescript-eslint/no-base-to-string": [
"error"
],
"@typescript-eslint/no-empty-interface": [
"warn",
{
@ -80,13 +45,10 @@
"@typescript-eslint/no-explicit-any": [
"warn",
{
"fixToUnknown": true,
"fixToUnknown": false,
"ignoreRestArgs": false
}
],
"@typescript-eslint/no-extra-semi": [
"error"
],
"@typescript-eslint/no-implied-eval": [
"error"
],
@ -94,13 +56,18 @@
"off"
],
"@typescript-eslint/no-magic-numbers": [
"off"
],
"@typescript-eslint/no-misused-promises": [
"error",
"warn",
{
"checksConditionals": true,
"checksVoidReturn": false
"detectObjects": false,
"enforceConst": true,
"ignore": [
0,
1
],
"ignoreArrayIndexes": false,
"ignoreEnums": true,
"ignoreNumericLiteralTypes": true,
"ignoreReadonlyClassProperties": true
}
],
"@typescript-eslint/no-namespace": [
@ -110,40 +77,8 @@
"allowDefinitionFiles": true
}
],
"@typescript-eslint/no-type-alias": [
"error",
{
"allowAliases": "in-unions-and-intersections",
"allowCallbacks": "always",
"allowConditionalTypes": "always",
"allowConstructors": "never",
"allowLiterals": "never",
"allowMappedTypes": "never",
"allowTupleTypes": "in-unions-and-intersections"
}
],
"@typescript-eslint/no-unnecessary-condition": [
"error",
{
"allowConstantLoopConditions": false,
"checkArrayPredicates": true,
"ignoreRhs": true
}
],
"@typescript-eslint/no-unnecessary-type-assertion": [
"error"
],
"@typescript-eslint/no-unsafe-call": [
"error"
],
"@typescript-eslint/no-unsafe-member-access": [
"error"
],
"@typescript-eslint/no-unsafe-return": [
"error"
],
"@typescript-eslint/no-untyped-public-signature": [
"warn",
"error",
{
"ignoredMethods": [
"constructor"
@ -178,12 +113,6 @@
"@typescript-eslint/no-var-requires": [
"error"
],
"@typescript-eslint/prefer-readonly-parameter-types": [
"error",
{
"checkParameterProperties": true
}
],
"@typescript-eslint/quotes": [
"error",
"double",
@ -202,14 +131,6 @@
"omitLastInOneLineBlock": false
}
],
"@typescript-eslint/space-before-function-paren": [
"error",
{
"anonymous": "always",
"asyncArrow": "always",
"named": "never"
}
],
"@typescript-eslint/strict-boolean-expressions": [
"error",
{
@ -222,33 +143,7 @@
"error",
{
"after": true,
"before": false,
"overrides": {
"arrow": {
"after": true,
"before": true
},
"colon": {
"after": true,
"before": false
},
"parameter": {
"after": true,
"before": false
},
"property": {
"after": true,
"before": false
},
"returnType": {
"after": true,
"before": false
},
"variable": {
"after": true,
"before": false
}
}
"before": false
}
],
"@typescript-eslint/typedef": [
@ -260,20 +155,16 @@
"objectDestructuring": true,
"parameter": true,
"propertyDeclaration": true,
"variableDeclaration": true,
"variableDeclarationIgnoreFunction": false
"variableDeclaration": true
}
],
"comma-spacing": [
"off"
],
"indent": [
"off"
],
"no-extra-semi": [
"no-implied-eval": [
"off"
],
"no-implied-eval": [
"no-magic-numbers": [
"off"
],
"no-unused-vars": [
@ -293,8 +184,5 @@
],
"semi": [
"off"
],
"space-before-function-paren": [
"off"
]
}

View File

@ -1,44 +1 @@
{
"unicorn/filename-case": [
"error",
{
"cases": {
"kebabCase": true,
"pascalCase": true
}
}
],
"unicorn/import-index": [
"error",
{
"ignoreImports": true
}
],
"unicorn/no-console-spaces": [
"error"
],
"unicorn/prefer-number-properties": [
"error"
],
"unicorn/prefer-set-has": [
"error"
],
"unicorn/prevent-abbreviations": [
"error",
{
"checkDefaultAndNamespaceImports": "internal",
"checkFilenames": true,
"checkProperties": true,
"checkShorthandImports": "internal",
"checkShorthandProperties": true,
"checkVariables": true,
"extendDefaultReplacements": true,
"extendDefaultWhitelist": true,
"replacements": {},
"whitelist": {}
}
],
"unicorn/string-content": [
"error"
]
}
{}

View File

@ -2,7 +2,6 @@
"vue/attributes-order": [
"error",
{
"alphabetical": true,
"order": [
"DEFINITION",
"LIST_RENDERING",
@ -18,10 +17,6 @@
]
}
],
"vue/comma-dangle": [
"error",
"always-multiline"
],
"vue/html-closing-bracket-newline": [
"error",
{
@ -49,10 +44,7 @@
],
"vue/html-quotes": [
"error",
"double",
{
"avoidEscape": false
}
"double"
],
"vue/html-self-closing": [
"error",
@ -76,27 +68,6 @@
"singleline": 8
}
],
"vue/no-multi-spaces": [
"error",
{
"ignoreProperties": false
}
],
"vue/no-unused-vars": [
"error"
],
"vue/object-curly-spacing": [
"error",
"always",
{
"arraysInObjects": false,
"objectsInObjects": false
}
],
"vue/padding-line-between-blocks": [
"error",
"always"
],
"vue/script-indent": [
"error",
"tab",
@ -104,45 +75,5 @@
"baseIndent": 0,
"switchCase": 1
}
],
"vue/sort-keys": [
"warn",
"asc",
{
"caseSensitive": true,
"ignoreChildrenOf": [
"model"
],
"ignoreGrandchildrenOf": [
"activated",
"beforeCreate",
"beforeDestroy",
"beforeMount",
"beforeUpdate",
"components",
"computed",
"created",
"data",
"deactivated",
"destroyed",
"directives",
"errorCaptured",
"filters",
"methods",
"mounted",
"name",
"props",
"updated",
"watch"
],
"minKeys": 2,
"natural": true
}
],
"vue/space-infix-ops": [
"error",
{
"int32Hint": false
}
]
}

View File

@ -1,5 +0,0 @@
{
"sort-keys": [
"off"
]
}

View File

@ -9,9 +9,6 @@ module.exports = {
"plugin:import/typescript",
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
createDefaultProgram: true,
},
"plugins": [
"@typescript-eslint",
],

View File

@ -1,5 +1,4 @@
import rDefault from "./rules/vue/default.json";
import rOverrides from "./rules/vue/overrides.json";
module.exports = {
"extends": [
@ -9,14 +8,6 @@ module.exports = {
"plugin:vue/recommended",
"plugin:vue/strongly-recommended",
],
"overrides": [
{
files: [
"*.vue",
],
rules: { ...rOverrides },
},
],
"parser": "vue-eslint-parser",
"parserOptions": {
extraFileExtensions: [

View File

@ -1,5 +1,4 @@
import rDefault from "./rules/vue/default.json";
import rOverrides from "./rules/vue/overrides.json";
module.exports = {
"extends": [
@ -9,17 +8,8 @@ module.exports = {
"plugin:vue/recommended",
"plugin:vue/strongly-recommended",
],
"overrides": [
{
files: [
"*.vue",
],
rules: { ...rOverrides },
},
],
"parser": "vue-eslint-parser",
"parserOptions": {
createDefaultProgram: true,
extraFileExtensions: [
".vue",
],

143
yarn.lock
View File

@ -56,49 +56,49 @@
integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==
"@types/node@*":
version "13.7.2"
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.2.tgz#50375b95b5845a34efda2ffb3a087c7becbc46c6"
integrity sha512-uvilvAQbdJvnSBFcKJ2td4016urcGvsiR+N4dHGU87ml8O2Vl6l+ErOi9w0kXSPiwJ1AYlIW+0pDXDWWMOiWbw==
version "13.7.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz#238eb34a66431b71d2aaddeaa7db166f25971a0d"
integrity sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA==
"@types/normalize-package-data@^2.4.0":
version "2.4.0"
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
"@typescript-eslint/eslint-plugin@^2.26.0":
version "2.26.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.26.0.tgz#04c96560c8981421e5a9caad8394192363cc423f"
integrity sha512-4yUnLv40bzfzsXcTAtZyTjbiGUXMrcIJcIMioI22tSOyAxpdXiZ4r7YQUU8Jj6XXrLz9d5aMHPQf5JFR7h27Nw==
"@typescript-eslint/eslint-plugin@^2.19.2":
version "2.19.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.19.2.tgz#e279aaae5d5c1f2547b4cff99204e1250bc7a058"
integrity sha512-HX2qOq2GOV04HNrmKnTpSIpHjfl7iwdXe3u/Nvt+/cpmdvzYvY0NHSiTkYN257jHnq4OM/yo+OsFgati+7LqJA==
dependencies:
"@typescript-eslint/experimental-utils" "2.26.0"
"@typescript-eslint/experimental-utils" "2.19.2"
eslint-utils "^1.4.3"
functional-red-black-tree "^1.0.1"
regexpp "^3.0.0"
tsutils "^3.17.1"
"@typescript-eslint/experimental-utils@2.26.0":
version "2.26.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.26.0.tgz#063390c404d9980767d76274df386c0aa675d91d"
integrity sha512-RELVoH5EYd+JlGprEyojUv9HeKcZqF7nZUGSblyAw1FwOGNnmQIU8kxJ69fttQvEwCsX5D6ECJT8GTozxrDKVQ==
"@typescript-eslint/experimental-utils@2.19.2":
version "2.19.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.19.2.tgz#4611d44cf0f0cb460c26aa7676fc0a787281e233"
integrity sha512-B88QuwT1wMJR750YvTJBNjMZwmiPpbmKYLm1yI7PCc3x0NariqPwqaPsoJRwU9DmUi0cd9dkhz1IqEnwfD+P1A==
dependencies:
"@types/json-schema" "^7.0.3"
"@typescript-eslint/typescript-estree" "2.26.0"
"@typescript-eslint/typescript-estree" "2.19.2"
eslint-scope "^5.0.0"
eslint-utils "^2.0.0"
"@typescript-eslint/parser@^2.26.0":
version "2.26.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.26.0.tgz#385463615818b33acb72a25b39c03579df93d76f"
integrity sha512-+Xj5fucDtdKEVGSh9353wcnseMRkPpEAOY96EEenN7kJVrLqy/EVwtIh3mxcUz8lsFXW1mT5nN5vvEam/a5HiQ==
"@typescript-eslint/parser@^2.19.2":
version "2.19.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.19.2.tgz#21f42c0694846367e7d6a907feb08ab2f89c0879"
integrity sha512-8uwnYGKqX9wWHGPGdLB9sk9+12sjcdqEEYKGgbS8A0IvYX59h01o8os5qXUHMq2na8vpDRaV0suTLM7S8wraTA==
dependencies:
"@types/eslint-visitor-keys" "^1.0.0"
"@typescript-eslint/experimental-utils" "2.26.0"
"@typescript-eslint/typescript-estree" "2.26.0"
"@typescript-eslint/experimental-utils" "2.19.2"
"@typescript-eslint/typescript-estree" "2.19.2"
eslint-visitor-keys "^1.1.0"
"@typescript-eslint/typescript-estree@2.26.0":
version "2.26.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.26.0.tgz#d8132cf1ee8a72234f996519a47d8a9118b57d56"
integrity sha512-3x4SyZCLB4zsKsjuhxDLeVJN6W29VwBnYpCsZ7vIdPel9ZqLfIZJgJXO47MNUkurGpQuIBALdPQKtsSnWpE1Yg==
"@typescript-eslint/typescript-estree@2.19.2":
version "2.19.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.19.2.tgz#67485b00172f400474d243c6c0be27581a579350"
integrity sha512-Xu/qa0MDk6upQWqE4Qy2X16Xg8Vi32tQS2PR0AvnT/ZYS4YGDvtn2MStOh5y8Zy2mg4NuL06KUHlvCh95j9C6Q==
dependencies:
debug "^4.1.1"
eslint-visitor-keys "^1.1.0"
@ -114,9 +114,9 @@ acorn-jsx@^5.1.0:
integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==
acorn@^7.1.0:
version "7.1.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf"
integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==
version "7.1.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
ajv@^6.10.0, ajv@^6.10.2:
version "6.11.0"
@ -401,10 +401,10 @@ eslint-plugin-eslint-comments@^3.1.2:
escape-string-regexp "^1.0.5"
ignore "^5.0.5"
eslint-plugin-import@^2.20.2:
version "2.20.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d"
integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==
eslint-plugin-import@^2.20.1:
version "2.20.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3"
integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==
dependencies:
array-includes "^3.0.3"
array.prototype.flat "^1.2.1"
@ -431,29 +431,33 @@ eslint-plugin-sonarjs@^0.5.0:
resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.5.0.tgz#ce17b2daba65a874c2862213a9e38e8986ad7d7d"
integrity sha512-XW5MnzlRjhXpIdbULC/qAdJYHWw3rRLws/DyawdlPU/IdVr9AmRK1r2LaCvabwKOAW2XYYSo3kDX58E4MrB7PQ==
eslint-plugin-unicorn@^18.0.1:
version "18.0.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-18.0.1.tgz#8d3285ffa57b2f6b07550b94e62228d93bf61813"
integrity sha512-Y4bgygek4x4ogeMcSHr6MZi3frBPZ80eIpMOsxew7jAblb53OYflpRh0an62Z6jv/fw7D3TkXauqLOBWbT9adg==
eslint-plugin-unicorn@^16.1.1:
version "16.1.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-16.1.1.tgz#012c598d71914ef30f5d386dd85110e59f2ef999"
integrity sha512-IMxCsntb0T8s660Irc40gtzXtxuXHcOn36G9G8OYKfiseBD/kNrA1cNJhsJ0xQteDASGrFwqdzBsYEkUvczhOA==
dependencies:
ci-info "^2.0.0"
clean-regexp "^1.0.0"
eslint-ast-utils "^1.1.0"
eslint-template-visitor "^1.1.0"
import-modules "^2.0.0"
lodash "^4.17.15"
lodash.camelcase "^4.3.0"
lodash.defaultsdeep "^4.6.1"
lodash.kebabcase "^4.1.1"
lodash.snakecase "^4.1.1"
lodash.upperfirst "^4.3.1"
read-pkg-up "^7.0.1"
regexp-tree "^0.1.21"
regexp-tree "^0.1.17"
regexpp "^3.0.0"
reserved-words "^0.1.2"
safe-regex "^2.1.1"
semver "^7.1.3"
semver "^7.1.2"
eslint-plugin-vue@^6.2.2:
version "6.2.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe"
integrity sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==
eslint-plugin-vue@^6.1.2:
version "6.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.1.2.tgz#4b05c28c83c0ec912669b64dbd998bb8bf692ef6"
integrity sha512-M75oAB+2a/LNkLKRbeEaS07EjzjIUaV7/hYoHAfRFeeF8ZMmCbahUn8nQLsLP85mkar24+zDU3QW2iT1JRsACw==
dependencies:
natural-compare "^1.4.0"
semver "^5.6.0"
vue-eslint-parser "^7.0.0"
@ -481,13 +485,6 @@ eslint-utils@^1.4.3:
dependencies:
eslint-visitor-keys "^1.1.0"
eslint-utils@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd"
integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==
dependencies:
eslint-visitor-keys "^1.1.0"
eslint-visitor-keys@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
@ -609,9 +606,9 @@ fast-levenshtein@~2.0.6:
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
figures@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
version "3.1.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec"
integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==
dependencies:
escape-string-regexp "^1.0.5"
@ -931,20 +928,45 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
lodash.defaultsdeep@^4.6.1:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6"
integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==
lodash.get@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
lodash.kebabcase@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY=
lodash.snakecase@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=
lodash.upperfirst@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce"
integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=
lodash.zip@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020"
integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=
lodash@^4.17.14, lodash@^4.17.15:
version "4.17.19"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
merge-stream@^2.0.0:
version "2.0.0"
@ -1233,12 +1255,7 @@ read-pkg@^5.2.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
regexp-tree@^0.1.21:
version "0.1.21"
resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.21.tgz#55e2246b7f7d36f1b461490942fa780299c400d7"
integrity sha512-kUUXjX4AnqnR8KRTCrayAo9PzYMRKmVoGgaz2tBuz0MF3g1ZbGebmtW0yFHfFK9CmBjQKeYIgoL22pFLBJY7sw==
regexp-tree@~0.1.1:
regexp-tree@^0.1.17, regexp-tree@~0.1.1:
version "0.1.19"
resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.19.tgz#9326e91d8d1d23298dd33a78cf5e788f57cdc359"
integrity sha512-mVeVLF/qg5qFbZSW0f7pXbuVX73dKIjuhOyC2JLKxzmpya75O4qLcvI9j0jp31Iz7IAkEVHa1UErDCAqaLKo5A==
@ -1360,7 +1377,7 @@ semver@^6.1.2, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.1.3:
semver@^7.1.2:
version "7.1.3"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6"
integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==