Files
awesome-cordova-plugins/eslint.config.js
T
2025-06-07 16:29:30 +02:00

76 lines
2.8 KiB
JavaScript

const typescriptEslint = require('@typescript-eslint/eslint-plugin');
const typescriptParser = require('@typescript-eslint/parser');
const jsdoc = require('eslint-plugin-jsdoc');
const prettier = require('eslint-config-prettier');
module.exports = [
// Ignore patterns (equivalent to .eslintignore)
{
ignores: ['scripts/**', 'docs/**', 'dist/**', 'node_modules/**'],
},
// Main configuration for TypeScript files
{
files: ['src/**/*.ts'],
languageOptions: {
parser: typescriptParser,
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: {
'@typescript-eslint': typescriptEslint,
jsdoc,
},
rules: {
// TypeScript ESLint recommended rules (manually specified to avoid breaking changes)
...typescriptEslint.configs.recommended.rules,
// JSDoc recommended rules (manually specified to avoid breaking changes)
...jsdoc.configs.recommended.rules,
// Custom rules from original .eslintrc (maintained for compatibility)
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/no-empty-function': 'off',
// '@typescript-eslint/ban-types': 'warn', // Deprecated in v8, removed
'@typescript-eslint/no-empty-interface': 'warn',
'@typescript-eslint/no-namespace': 'off',
// Disable rules that might cause immediate issues during migration
'@typescript-eslint/no-require-imports': 'off',
'@typescript-eslint/no-var-requires': 'off',
'@typescript-eslint/no-this-alias': 'off',
'@typescript-eslint/no-inferrable-types': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/prefer-as-const': 'off',
'@typescript-eslint/no-unnecessary-type-constraint': 'off',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/triple-slash-reference': 'off',
'@typescript-eslint/no-wrapper-object-types': 'off',
'@typescript-eslint/no-unsafe-function-type': 'off',
// JSDoc rules that might cause issues
'jsdoc/require-returns': 'off',
'jsdoc/require-returns-description': 'off',
'jsdoc/require-returns-type': 'off',
'jsdoc/require-param': 'off',
'jsdoc/require-param-description': 'off',
'jsdoc/require-param-type': 'off',
'jsdoc/check-param-names': 'off',
'jsdoc/check-tag-names': 'off',
'jsdoc/check-types': 'off',
'jsdoc/newline-after-description': 'off',
'jsdoc/no-undefined-types': 'off',
'jsdoc/valid-types': 'off',
'@typescript-eslint/no-empty-object-type': 'off',
'@typescript-eslint/no-unused-expressions': 'off',
'@typescript-eslint/no-unsafe-declaration-merging': 'off',
'@typescript-eslint/no-duplicate-enum-values': 'off',
},
},
// Apply prettier config last to override formatting rules
prettier,
];