a342edd1c2
Fixed web linter Issue: https://github.com/storj/storj/issues/5158 Change-Id: Ibc0b8e9f241e77e833645d9fa114bf5742c9f81c
112 lines
3.4 KiB
JavaScript
112 lines
3.4 KiB
JavaScript
// Copyright (C) 2021 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
module.exports = {
|
|
root: true,
|
|
env: {
|
|
node: true,
|
|
},
|
|
extends: [
|
|
'plugin:vue/recommended',
|
|
'eslint:recommended',
|
|
'@vue/typescript/recommended',
|
|
'plugin:import/recommended',
|
|
'plugin:import/typescript',
|
|
],
|
|
parser: 'vue-eslint-parser',
|
|
parserOptions: {
|
|
parser: '@typescript-eslint/parser',
|
|
sourceType: 'module',
|
|
ecmaVersion: 2020,
|
|
vueFeatures: {
|
|
filter: true,
|
|
},
|
|
},
|
|
plugins: ['storj', 'eslint-plugin-import'],
|
|
rules: {
|
|
'linebreak-style': ['error', 'unix'],
|
|
|
|
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
|
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
|
|
|
'indent': ['warn', 4],
|
|
'vue/html-indent': ['warn', 4],
|
|
|
|
'@typescript-eslint/no-unused-vars': [
|
|
'warn', {
|
|
'vars': 'all',
|
|
'args': 'all',
|
|
'argsIgnorePattern': '^_',
|
|
}],
|
|
|
|
'@typescript-eslint/no-empty-function': 'off',
|
|
'@typescript-eslint/no-var-requires': 'off',
|
|
|
|
'no-multiple-empty-lines': ['error', { 'max': 1 }],
|
|
|
|
'import/order': ['error', {
|
|
'pathGroups': [
|
|
{
|
|
'group': 'external',
|
|
'pattern': 'vue-property-decorator',
|
|
'position': 'before',
|
|
},
|
|
{
|
|
'group': 'internal',
|
|
'pattern': '@/app/components/**',
|
|
'position': 'after',
|
|
},
|
|
{
|
|
'group': 'internal',
|
|
'pattern': '@/../static/**',
|
|
'position': 'after',
|
|
},
|
|
],
|
|
'newlines-between': 'always',
|
|
}],
|
|
'no-duplicate-imports': 'error',
|
|
'object-curly-spacing': ['error', 'always'],
|
|
'quotes': ['error', 'single', { 'allowTemplateLiterals': true }],
|
|
'semi': ['error', 'always'],
|
|
'keyword-spacing': ['error'],
|
|
'comma-dangle': ['error', 'always-multiline'],
|
|
|
|
'vue/multi-word-component-names': ['off'],
|
|
'vue/max-attributes-per-line': ['off'],
|
|
'vue/singleline-html-element-content-newline': ['off'],
|
|
|
|
'vue/block-lang': ['error', { 'script': { 'lang': 'ts' } }],
|
|
'vue/html-button-has-type': ['error'],
|
|
'vue/no-unused-properties': ['warn'],
|
|
'vue/no-unused-refs': ['warn'],
|
|
'vue/no-useless-v-bind': ['warn'],
|
|
|
|
'vue/no-useless-template-attributes': ['off'], // TODO: fix later
|
|
|
|
'vue/no-unregistered-components': ['warn', { ignorePatterns: ['router-link', 'router-view'] }],
|
|
|
|
'storj/vue/require-annotation': 'warn',
|
|
|
|
'vue/no-v-html': 0,
|
|
},
|
|
settings: {
|
|
'import/resolver': {
|
|
'eslint-import-resolver-custom-alias': {
|
|
'alias': {
|
|
'@': './src',
|
|
},
|
|
extensions: ['.ts', '.spec.ts', '.vue'],
|
|
},
|
|
typescript: {
|
|
alwaysTryTypes: true,
|
|
project: './tsconfig.json',
|
|
},
|
|
node: true,
|
|
},
|
|
'import/parsers': {
|
|
'@typescript-eslint/parser': ['.ts'],
|
|
'vue-eslint-parser': ['.vue'],
|
|
},
|
|
},
|
|
};
|