From a785f471440553e019b791e1dcf1d470d1718cab Mon Sep 17 00:00:00 2001 From: Dariusz Czajkowski Date: Tue, 22 May 2018 20:09:29 +0200 Subject: [PATCH] Added aggresive styling in eslint --- .eslintrc | 133 +++++++++++++++++++++++++++++++--------------- package-lock.json | 34 ++++++++++++ package.json | 1 + 3 files changed, 126 insertions(+), 42 deletions(-) diff --git a/.eslintrc b/.eslintrc index 1bb464f..4f45ffd 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,45 +4,52 @@ "es6": true, "node": true }, - "extends": "eslint:recommended", + "extends": [ + "eslint:recommended", + "plugin:vue/strongly-recommended" + ], + "plugins": [ + "vue" + ], "parserOptions": { "sourceType": "module", "ecmaVersion": 2017 }, "rules": { - "indent": [ - "error", - 4, - { - "SwitchCase": 1 - } - ], - "keyword-spacing": [ - "error", - { - "before": true, - "after": true - } - ], - "space-infix-ops": [ - "error", - { - "int32Hint": false - } - ], - "curly": "error", - "linebreak-style": [ - "error", - "unix" - ], - "quotes": [ - "error", - "single" - ], - "semi": [ - "error", - "never" - ], + "space-infix-ops": ["error", { "int32Hint": false }], + "linebreak-style": ["error", "unix"], + "for-direction": "error", + "getter-return": "error", + "no-constant-condition": "error", + "no-dupe-args": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-empty-character-class": "error", + "no-ex-assign": "error", + "no-extra-boolean-cast": "error", + "no-extra-semi": "error", + "no-func-assign": "error", + "no-inner-declarations": "error", + "no-invalid-regexp": "error", + "no-irregular-whitespace": "error", + "no-obj-calls": "error", + "no-prototype-builtins": "error", + "no-regex-spaces": "error", + "no-sparse-arrays": "error", + "no-template-curly-in-string": "error", + "no-unexpected-multiline": "error", + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "use-isnan": "error", + "valid-typeof": "error", + "no-empty": ["error", { "allowEmptyCatch": true }], + "no-cond-assign": ["error", "except-parens"], + "no-compare-neg-zero": "error", + "quotes": ["error", "single"], + "semi": ["error", "never"], + "curly": ["error", "all"], + "consistent-return": "error", "comma-dangle": [ "error", { @@ -53,14 +60,56 @@ "functions": "never" } ], - "array-bracket-spacing": [ - "error", - "never" - ], - "object-curly-spacing": [ - "error", - "always" + "no-console": "off", + "no-unused-vars": ["warn"], + "vue/script-indent": ["error", 4, { "baseIndent": 1 }], + "vue/html-indent": ["error", 4], + "vue/attributes-order": "off", + "vue/max-attributes-per-line": "off", + "vue/order-in-components": "off", + "vue/html-self-closing": ["error", { + "html": { + "void": "never", + "normal": "never", + "component": "never" + }, + "svg": "never", + "math": "never" + }], + "vue/valid-v-model": "off", + "no-var": "error", + "prefer-const": "error", + "no-spaced-func": "error", + "array-callback-return": "error", + "lines-between-class-members": ["error", "always"], + "block-scoped-var": "error", + "no-multi-spaces": "error", + "brace-style": "error", + "no-mixed-spaces-and-tabs": "error", + "no-whitespace-before-property": "error", + "lines-around-comment": ["error", { "afterBlockComment": false }], + "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1, "maxBOF": 0 }], + "space-before-blocks": ["error", "always"], + "object-curly-spacing": ["error", "always"], + "array-bracket-spacing": ["error", "never"], + "dot-location": ["error", "property"], + "eol-last": ["error", "always"], + "function-paren-newline": ["error", "multiline"], + "comma-spacing": [ + "error", { + "before": false, + "after": true + } ], - "no-console": "off" + "spaced-comment": ["error", "always"], + "block-spacing": ["error", "always"], + "space-unary-ops": ["error", { "words": true, "nonwords": false }], + "space-before-function-paren": ["error", { + "anonymous": "always", + "named": "never", + "asyncArrow": "always" + }], + "keyword-spacing": ["error", { "before": true, "after": true }], + "space-in-parens": ["error", "never"] } } diff --git a/package-lock.json b/package-lock.json index d597ca2..4e89cb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4634,6 +4634,15 @@ "htmlparser2": "3.9.2" } }, + "eslint-plugin-vue": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.5.0.tgz", + "integrity": "sha512-2CDidjAZ875tbJgtjKihIQRkqxgk3gVUDOAW2e9dP+Kf39jhCwKy6aMXIsHRKCPjRqQhDWF0jtVRNcywBFWTZA==", + "dev": true, + "requires": { + "vue-eslint-parser": "2.0.3" + } + }, "eslint-scope": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", @@ -16273,6 +16282,31 @@ "resolved": "https://registry.npmjs.org/vue-emoji-picker/-/vue-emoji-picker-1.0.0.tgz", "integrity": "sha512-69l5XebEg9fyCGGAowYknp96+IsC8k+mB3jJEpaxSaGjsGEuSQTBZFc69olUjYVQBLRLnkIwtGAkD+udZ8l/MQ==" }, + "vue-eslint-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", + "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", + "dev": true, + "requires": { + "debug": "3.1.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "lodash": "4.17.10" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "vue-hot-reload-api": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz", diff --git a/package.json b/package.json index 01b41a7..0c94597 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "electron-builder": "^20.14.5", "electron-reload": "^1.2.2", "eslint": "^4.19.1", + "eslint-plugin-vue": "^4.5.0", "glob-all": "^3.1.0", "laravel-mix": "^2.1.11", "node-sass": "^4.9.0",