mirror of https://github.com/OpenVidu/openvidu.git
67 lines
2.3 KiB
JavaScript
67 lines
2.3 KiB
JavaScript
// @ts-check
|
|
import js from '@eslint/js';
|
|
import angular from 'angular-eslint';
|
|
import prettier from 'eslint-config-prettier';
|
|
import { defineConfig, globalIgnores } from 'eslint/config';
|
|
import globals from 'globals';
|
|
import tseslint from 'typescript-eslint';
|
|
|
|
export default defineConfig([
|
|
globalIgnores(['**/node_modules/', '**/dist/', '**/.angular/', '**/coverage/']),
|
|
{
|
|
files: ['**/*.{js,mjs,cjs}'],
|
|
extends: [js.configs.recommended],
|
|
languageOptions: {
|
|
globals: globals.node
|
|
}
|
|
},
|
|
{
|
|
files: ['**/*.ts'],
|
|
extends: [js.configs.recommended, tseslint.configs.strictTypeChecked, tseslint.configs.stylisticTypeChecked],
|
|
languageOptions: {
|
|
parserOptions: {
|
|
projectService: true,
|
|
tsconfigRootDir: import.meta.dirname
|
|
},
|
|
globals: globals.node
|
|
},
|
|
rules: {
|
|
'@typescript-eslint/consistent-type-imports': ['error', { fixStyle: 'inline-type-imports' }],
|
|
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }],
|
|
curly: 'error',
|
|
eqeqeq: ['error', 'always'],
|
|
'padding-line-between-statements': [
|
|
'error',
|
|
{ blankLine: 'always', prev: '*', next: ['if', 'for', 'while', 'switch', 'try', 'return'] },
|
|
{ blankLine: 'always', prev: ['if', 'for', 'while', 'switch', 'try'], next: '*' }
|
|
]
|
|
}
|
|
},
|
|
{
|
|
files: ['dashboard-*/frontend/**/*.ts'],
|
|
extends: [angular.configs.tsRecommended],
|
|
processor: angular.processInlineTemplates,
|
|
languageOptions: {
|
|
globals: globals.browser
|
|
},
|
|
rules: {
|
|
'@angular-eslint/component-selector': ['error', { type: 'element', prefix: 'ovd', style: 'kebab-case' }],
|
|
'@angular-eslint/directive-selector': ['error', { type: 'attribute', prefix: 'ovd', style: 'camelCase' }],
|
|
'@angular-eslint/no-uncalled-signals': 'error',
|
|
'@angular-eslint/prefer-output-readonly': 'error',
|
|
'@angular-eslint/prefer-signals': 'error',
|
|
'@typescript-eslint/no-extraneous-class': ['error', { allowWithDecorator: true }]
|
|
}
|
|
},
|
|
{
|
|
files: ['dashboard-*/frontend/**/*.html'],
|
|
extends: [angular.configs.templateRecommended, angular.configs.templateAccessibility],
|
|
rules: {
|
|
'@angular-eslint/template/button-has-type': 'error',
|
|
'@angular-eslint/template/prefer-control-flow': 'error',
|
|
'@angular-eslint/template/prefer-self-closing-tags': 'error'
|
|
}
|
|
},
|
|
prettier
|
|
]);
|