Files
openstapps/configuration/eslint-config/index.js
2023-05-31 14:04:05 +02:00

96 lines
2.6 KiB
JavaScript

module.exports = {
root: true,
ignorePatterns: ['projects/**/*'],
parserOptions: {
sourceType: 'module',
ecmaVersion: 2021,
},
overrides: [
{
files: ['*.ts'],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 2021,
sourceType: 'module',
project: ['tsconfig.json'],
createDefaultProgram: true,
},
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:jsdoc/recommended',
'plugin:unicorn/recommended',
'prettier'
],
plugins: ['eslint-plugin-unicorn', 'eslint-plugin-jsdoc'],
settings: {
jsdoc: {
mode: 'typescript',
},
},
rules: {
'no-console': 1,
'unicorn/filename-case': 'error',
'unicorn/no-array-callback-reference': 'off',
'unicorn/no-useless-undefined': 'off',
'unicorn/prefer-node-protocol': 'off',
'unicorn/no-process-exit': 'off',
'unicorn/no-array-reduce': 'off',
'unicorn/prevent-abbreviations': [
'error',
{
replacements: {
ref: false,
i: false,
e2e: false,
},
},
],
'unicorn/no-nested-ternary': 'off',
'unicorn/better-regex': 'off',
'unicorn/no-typeof-undefined': 'off',
'unicorn/no-non-null-assertion': 'off',
'unicorn/prefer-array-some': 'off',
'jsdoc/no-types': 'error',
'jsdoc/require-param': 'off',
'jsdoc/require-param-description': 'error',
'jsdoc/check-param-names': 'error',
'jsdoc/require-returns': 'off',
'jsdoc/require-param-type': 'off',
'jsdoc/require-returns-type': 'off',
'jsdoc/check-tag-names': [
'error',
{
definedTags: [
'internal',
'aggregatable',
'float',
'indexable',
'integer',
'keyword',
'sortable',
'text',
'date',
'validatable',
'filterable',
'inheritTags',
],
},
],
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-unused-vars': [
'error',
{
args: 'after-used',
argsIgnorePattern: '^_',
},
],
'@typescript-eslint/lines-between-class-members': ['error', 'always'],
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/no-non-null-assertion': 'off',
},
},
],
};