module.exports = { root: true, parser: '@typescript-eslint/parser', // Make ESLint compatible with TypeScript parserOptions: { // Enable linting rules with type information from our tsconfig tsconfigRootDir: __dirname, project: ['./tsconfig.eslint.json'], sourceType: 'module', // Allow the use of imports / ES modules ecmaFeatures: { impliedStrict: true, // Enable global strict mode }, }, ignorePatterns: ['jest.config.js', '.eslintrc.js'], // Specify global variables that are predefined env: { browser: true, // Enable browser global variables node: true, // Enable node global variables & Node.js scoping es2020: true, // Add all ECMAScript 2020 globals and automatically set the ecmaVersion parser option to ES2020 jest: true, // Add Mocha testing global variables }, plugins: [], extends: ['@xrplf/eslint-config/base'], rules: { // ** TODO ** // all of the below are turned off for now during the migration to a // monorepo. They need to actually be addressed! // ** '@typescript-eslint/naming-convention': 'off', '@typescript-eslint/prefer-readonly': 'off', '@typescript-eslint/no-parameter-properties': 'off', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/no-unsafe-member-access': 'off', '@typescript-eslint/no-unsafe-call': 'off', '@typescript-eslint/no-var-requires': 'off', '@typescript-eslint/no-require-imports': 'off', '@typescript-eslint/no-unsafe-assignment': 'off', '@typescript-eslint/restrict-plus-operands': 'off', '@typescript-eslint/unbound-method': 'off', '@typescript-eslint/restrict-template-expressions': 'off', '@typescript-eslint/no-base-to-string': 'off', '@typescript-eslint/no-unsafe-return': 'off', '@typescript-eslint/promise-function-async': 'off', '@typescript-eslint/explicit-member-accessibility': 'off', '@typescript-eslint/array-type': 'off', '@typescript-eslint/no-magic-numbers': 'off', '@typescript-eslint/no-useless-constructor': 'off', '@typescript-eslint/no-unnecessary-condition': 'off', '@typescript-eslint/consistent-type-assertions': 'off', '@typescript-eslint/prefer-for-of': 'off', '@typescript-eslint/prefer-nullish-coalescing': 'off', '@typescript-eslint/require-array-sort-compare': 'off', '@typescript-eslint/prefer-includes': 'off', '@typescript-eslint/dot-notation': 'off', '@typescript-eslint/consistent-type-definitions': 'off', '@typescript-eslint/no-type-alias': 'off', '@typescript-eslint/member-ordering': 'off', '@typescript-eslint/prefer-string-starts-ends-with': 'off', '@typescript-eslint/ban-types': 'off', '@typescript-eslint/no-extraneous-class': 'off', '@typescript-eslint/consistent-type-assertions': 'off', 'import/unambiguous': 'off', 'import/extensions': 'off', 'import/prefer-default-export': 'off', 'import/no-useless-path-segments': 'off', 'import/no-unused-modules': 'off', 'import/no-cycle': 'off', 'import/order': 'off', 'import/no-commonjs': 'off', 'import/newline-after-import': 'off', 'node/global-require': 'off', 'consistent-default-export-name/default-import-match-filename': 'off', 'jsdoc/require-throws': 'off', 'jsdoc/require-description-complete-sentence': 'off', 'jsdoc/require-jsdoc': 'off', 'jsdoc/check-tag-names': 'off', 'jsdoc/check-examples': 'off', // Not implemented in eslint 8 'jsdoc/require-returns': 'off', 'jsdoc/require-hyphen-before-param-description': 'off', 'jsdoc/require-description': 'off', 'jsdoc/require-param': 'off', 'jsdoc/check-param-names': 'off', 'jsdoc/newline-after-description': 'off', 'jsdoc/require-returns-check': 'off', 'tsdoc/syntax': 'off', 'eslint-comments/require-description': 'off', 'eslint-comments/no-unused-disable': 'off', 'prefer-const': 'off', 'global-require': 'off', 'id-length': 'off', 'no-shadow': 'off', 'no-bitwise': 'off', 'spaced-comment': 'off', 'prefer-template': 'off', 'prefer-object-spread': 'off', 'no-inline-comments': 'off', 'no-plusplus': 'off', 'new-cap': 'off', 'id-blacklist': 'off', 'max-lines-per-function': 'off', 'require-unicode-regexp': 'off', 'no-undef-init': 'off', curly: 'off', eqeqeq: 'off', 'no-console': 'off', 'max-classes-per-file': 'off', 'operator-assignment': 'off', 'class-methods-use-this': 'off', 'no-else-return': 'off', yoda: 'off', 'max-depth': 'off', 'multiline-comment-style': 'off', 'one-var': 'off', 'no-negated-condition': 'off', radix: 'off', 'no-nested-ternary': 'off', 'no-useless-concat': 'off', 'object-shorthand': 'off', 'no-param-reassign': 'off', }, }