module.exports = { root: true, env: { node: true, jest: true }, parser: '@typescript-eslint/parser', extends: [ 'standard-with-typescript', 'plugin:@typescript-eslint/recommended-requiring-type-checking', 'plugin:lodash-template/recommended' // TODO: make this work with typescript // 'plugin:node/recommended' ], plugins: ['@typescript-eslint', 'node', 'security'], parserOptions: { tsconfigRootDir: __dirname, project: './tsconfig.json' }, globals: { __statics: true, process: true }, // add your custom rules here rules: { // allow console.log during development only 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', // allow debugger during development only 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-process-exit': 'off', 'security/detect-non-literal-fs-filename': 'warn', 'security/detect-unsafe-regex': 'error', 'security/detect-buffer-noassert': 'error', 'security/detect-child-process': 'warn', 'security/detect-disable-mustache-escape': 'error', 'security/detect-eval-with-expression': 'error', 'security/detect-no-csrf-before-method-override': 'error', 'security/detect-non-literal-regexp': 'error', 'security/detect-non-literal-require': 'warn', 'security/detect-object-injection': 'warn', 'security/detect-possible-timing-attacks': 'error', 'security/detect-pseudoRandomBytes': 'error', 'space-before-function-paren': 'off', '@typescript-eslint/default-param-last': 'off', '@typescript-eslint/strict-boolean-expressions': 0, '@typescript-eslint/space-before-function-paren': [ 'error', { asyncArrow: 'always', anonymous: 'never', named: 'never' } ] } }