module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', createDefaultProgram: true }, plugins: ['@typescript-eslint'], env: { es6: true, node: true }, extends: ['airbnb-typescript/base'], globals: { Atomics: 'readonly', SharedArrayBuffer: 'readonly' }, rules: { quotes: ['error', 'single'], 'sort-imports': [ 'error', { ignoreCase: false, ignoreDeclarationSort: true, ignoreMemberSort: false, memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'] } ], 'max-lines': [ 'error', { max: 300, skipBlankLines: false, skipComments: false } ], 'max-len': [ 1, 150, 2, { ignorePattern: '^import\\s.+\\sfrom\\s.+;$', ignoreUrls: true } ], 'global-require': 'off', '@typescript-eslint/explicit-function-return-type': 'off', 'import/prefer-default-export': 'off', '@typescript-eslint/no-unused-expressions': 'off', 'prefer-destructuring': 'off', 'class-methods-use-this': 'off', // to adapt mongoose's _id property 'no-underscore-dangle': ['error', { allow: ['_id'] }], 'comma-dangle': ['error', 'never'], '@typescript-eslint/indent': 'off', 'arrow-parens': ['error', 'as-needed'], 'object-curly-newline': 'off', 'no-shadow': 'off', '@typescript-eslint/no-unused-vars': 'off', '@typescript-eslint/no-unused-vars-experimental': 'error' } };