const { features } = require('./feature') module.exports = { root: true, env: { browser: true, node: true, es6: true }, extends: [ 'plugin:vue/recommended', 'eslint:recommended' ], parserOptions: { parser: '@babel/eslint-parser', sourceType: 'module' }, globals: (function (map) { Object.keys(features).forEach(key => { map[key] = true }) return map }({})), // add your custom rules here rules: { 'vue/multi-word-component-names': 0, 'vue/no-mutating-props': 0, 'vue/max-attributes-per-line': [2, { 'singleline': 1, 'multiline': 1 }], 'vue/singleline-html-element-content-newline': [2, { 'ignoreWhenNoAttributes': true, 'ignoreWhenEmpty': true, 'ignores': ['pre'] }], 'vue/multiline-html-element-content-newline': [2, { 'ignoreWhenEmpty': true, 'allowEmptyLines': false, 'ignores': ['pre'] }], 'vue/component-definition-name-casing': [2, 'PascalCase'], 'vue/no-v-html': 0, // 8.17.0 // Possible Problems 'array-callback-return': 2, 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 'no-constructor-return': 2, 'no-duplicate-imports': 2, 'no-self-compare': 2, 'no-unmodified-loop-condition': 2, 'no-unused-vars': [2, { 'vars': 'all', 'args': 'after-used', 'ignoreRestSiblings': true }], 'no-use-before-define': [2, 'nofunc'], 'no-template-curly-in-string': 2, 'no-unreachable-loop': 2, 'valid-typeof': [2, { 'requireStringLiterals': true }], // Suggestions 'accessor-pairs': 2, 'arrow-body-style': [2, 'as-needed', { 'requireReturnForObjectLiteral': true }], 'block-scoped-var': 2, 'camelcase': [0, { 'properties': 'always', 'ignoreDestructuring': true }], 'complexity': [0, 3], 'consistent-return': [2, { 'treatUndefinedAsUnspecified': true }], 'consistent-this': [2, 'self'], 'curly': [2, 'all'], 'default-case': 2, 'default-case-last': 2, 'default-param-last': 2, 'eqeqeq': ['error', 'always', { 'null': 'ignore' }], 'func-name-matching': 2, 'func-names': [2, 'never'], 'func-style': [2, 'declaration', { 'allowArrowFunctions': true }], 'grouped-accessor-pairs': [2, 'getBeforeSet'], 'guard-for-in': 2, 'max-depth': [2, 4], 'max-nested-callbacks': [2, 4], 'max-params': [2, 4], 'new-cap': [2, { 'newIsCap': true, 'capIsNew': false }], 'no-alert': 2, 'no-array-constructor': 2, 'no-caller': 2, 'no-console': 0, 'no-div-regex': 2, 'no-else-return': [2, { 'allowElseIf': true }], 'no-empty-function': [2, { 'allow': ['arrowFunctions'] }], 'no-eval': 2, 'no-extend-native': 2, 'no-extra-bind': 2, 'no-extra-label': 2, 'no-floating-decimal': 2, 'no-implied-eval': 2, 'no-invalid-this': 2, 'no-iterator': 2, 'no-label-var': 2, 'no-labels': [2, { 'allowLoop': false, 'allowSwitch': false }], 'no-lone-blocks': 2, 'no-lonely-if': 2, 'no-loop-func': 2, 'no-multi-assign': [2, { 'ignoreNonDeclaration': true }], 'no-multi-str': 2, 'no-negated-condition': 2, 'no-new-func': 2, 'no-new-object': 2, 'no-new-wrappers': 2, 'no-octal-escape': 2, 'no-proto': 2, 'no-return-assign': [2, 'except-parens'], 'no-return-await': 2, 'no-script-url': 2, 'no-sequences': 2, 'no-throw-literal': 2, 'no-undef-init': 2, 'no-undefined': 2, 'no-unneeded-ternary': [2, { 'defaultAssignment': false }], 'no-unused-expressions': [2, { 'allowShortCircuit': true, 'allowTernary': true }], 'no-useless-call': 2, 'no-useless-computed-key': 2, 'no-useless-concat': 2, 'no-useless-constructor': 2, 'no-useless-rename': 2, 'no-useless-return': 2, 'no-var': 2, 'object-shorthand': [2, 'always'], 'one-var': [2, 'never'], 'operator-assignment': 2, 'prefer-arrow-callback': [2, { 'allowNamedFunctions': false, 'allowUnboundThis': false }], 'prefer-const': 2, 'prefer-exponentiation-operator': 2, 'prefer-object-spread': 2, 'prefer-regex-literals': 2, 'prefer-rest-params': 2, 'prefer-spread': 2, 'prefer-template': 2, 'require-await': 2, 'spaced-comment': [2, 'always', { 'markers': [ 'global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',' ] }], 'symbol-description': 2, 'yoda': [2, 'never'], // Layout & Formatting 'array-bracket-spacing': [2, 'never'], 'array-element-newline': [2, 'consistent'], 'arrow-parens': [2, 'as-needed'], 'arrow-spacing': [2, { 'before': true, 'after': true }], 'block-spacing': [2, 'always'], 'brace-style': [2, '1tbs', { 'allowSingleLine': true }], 'comma-dangle': [2, 'never'], 'comma-spacing': [2, { 'before': false, 'after': true }], 'comma-style': [2, 'last'], 'computed-property-spacing': [2, 'never'], 'dot-location': [2, 'property'], 'eol-last': [2, 'always'], 'func-call-spacing': [2, 'never'], 'function-call-argument-newline': [2, 'consistent'], 'function-paren-newline': [2, 'multiline-arguments'], 'generator-star-spacing': [2, 'before'], 'implicit-arrow-linebreak': [2, 'beside'], 'indent': [2, 2, { 'VariableDeclarator': 'first', 'SwitchCase': 1, 'MemberExpression': 1, 'ArrayExpression': 'first', 'ObjectExpression': 'first', 'ImportDeclaration': 'first', 'flatTernaryExpressions': false, 'ignoreComments': false }], 'jsx-quotes': [2, 'prefer-single'], 'key-spacing': [2, { 'beforeColon': false, 'afterColon': true }], 'keyword-spacing': [2, { 'before': true, 'after': true }], 'max-statements-per-line': [2, { 'max': 2 }], 'multiline-ternary': [2, 'always-multiline'], 'new-parens': [2, 'always'], 'newline-per-chained-call': [2, { 'ignoreChainWithDepth': 3 }], 'no-extra-parens': [2, 'functions'], 'no-multi-spaces': 2, 'no-multiple-empty-lines': [2, { 'max': 1 }], 'no-tabs': 2, 'no-trailing-spaces': 2, 'no-whitespace-before-property': 2, 'nonblock-statement-body-position': [2, 'beside'], 'object-curly-newline': [2, { 'ObjectPattern': { 'multiline': true }, 'ImportDeclaration': { 'multiline': true, 'minProperties': 2 }, 'ExportDeclaration': 'never' }], 'object-curly-spacing': [2, 'always', { 'arraysInObjects': true, 'objectsInObjects': true }], 'operator-linebreak': [2, 'after', { 'overrides': { '?': 'before', ':': 'before', '&&': 'before', '||': 'before' } }], 'padded-blocks': [2, 'never'], 'quotes': [2, 'single', { 'avoidEscape': true, 'allowTemplateLiterals': true }], 'rest-spread-spacing': [2, 'never'], 'semi': [2, 'never'], 'semi-spacing': [2, { 'before': false, 'after': true }], 'space-before-blocks': [2, 'always'], 'space-before-function-paren': [2, 'always'], 'space-in-parens': [2, 'never'], 'space-infix-ops': 2, 'space-unary-ops': [2, { 'words': true, 'nonwords': false }], 'switch-colon-spacing': [2, { 'before': false, 'after': true }], 'template-curly-spacing': [2, 'never'], 'template-tag-spacing': [2, 'never'], 'wrap-iife': [2, 'any'], 'yield-star-spacing': [2, 'before'] } }