module.exports = { extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'], parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint'], root: true, env: { 'node': true, 'es2018': true, }, rules: { 'no-shadow': ['error', { 'hoist': 'all' }], '@typescript-eslint/no-shadow': ['error'], 'no-multi-spaces': 'error', 'no-multiple-empty-lines': ['error', { 'max': 1, 'maxEOF': 1 }], 'spaced-comment': ['error', 'always', { 'markers': ['/'] }], 'semi': 'error', 'arrow-spacing': 'error', 'block-scoped-var': 'error', 'block-spacing': 'error', 'brace-style': ['error', '1tbs', {}], 'camelcase': 'error', 'comma-spacing': ['error', { 'before': false, 'after': true }], 'comma-style': ['error', 'last'], 'consistent-this': ['error', '_this'], 'curly': ['error', 'multi'], 'eol-last': ['error', 'always'], 'eqeqeq': ['error', 'always'], 'func-names': ['error', 'as-needed'], 'indent': ['error', 2, { 'SwitchCase': 1 }], 'max-len': [ 'error', { 'code': 160, 'tabWidth': 2, 'ignoreComments': true, 'ignoreTrailingComments': true, 'ignoreUrls': true, 'ignoreStrings': true, 'ignoreTemplateLiterals': true, 'ignoreRegExpLiterals': true, }, ], 'new-cap': 'error', 'newline-before-return': 'error', 'no-array-constructor': 'error', 'no-inner-declarations': ['error', 'both'], 'no-new-object': 'error', 'no-shadow-restricted-names': 'error', 'object-curly-spacing': ['error', 'always'], 'prefer-const': 'error', 'prefer-template': 'error', 'one-var': ['error', { 'initialized': 'never' }], 'quote-props': ['error', 'always'], 'quotes': ['error', 'single'], 'radix': 'error', 'space-before-blocks': ['error', 'always'], 'space-infix-ops': 'error', 'vars-on-top': 'error', }, };