Files
Classeo/frontend/eslint.config.js
Mathias STRASSER e06fd5424d feat: Configurer les jours fériés et vacances du calendrier scolaire
Les administrateurs d'établissement avaient besoin de gérer le calendrier
scolaire (FR80) pour que l'EDT et les devoirs respectent automatiquement
les jours non travaillés. Sans cette configuration centralisée, chaque
module devait gérer indépendamment les contraintes de dates.

Le calendrier s'appuie sur l'API data.education.gouv.fr pour importer
les vacances officielles par zone (A/B/C) et calcule les 11 jours fériés
français (dont les fêtes mobiles liées à Pâques). Les enseignants sont
notifiés par email lors de l'ajout d'une journée pédagogique. Un query
IsSchoolDay et une validation des dates d'échéance de devoirs permettent
aux autres modules de s'intégrer sans couplage direct.
2026-02-18 12:09:19 +01:00

111 lines
2.2 KiB
JavaScript

import js from '@eslint/js';
import tseslint from 'typescript-eslint';
import sveltePlugin from 'eslint-plugin-svelte';
import svelteParser from 'svelte-eslint-parser';
import prettier from 'eslint-config-prettier';
export default tseslint.config(
// Base JavaScript recommended rules
js.configs.recommended,
// TypeScript recommended rules
...tseslint.configs.recommended,
// Global ignores
{
ignores: [
'.svelte-kit/**',
'build/**',
'dist/**',
'node_modules/**',
'*.config.js',
'*.config.ts'
]
},
// TypeScript files
{
files: ['**/*.ts'],
languageOptions: {
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020
},
globals: {
window: 'readonly',
document: 'readonly',
console: 'readonly',
process: 'readonly',
__dirname: 'readonly',
__filename: 'readonly',
Promise: 'readonly',
Set: 'readonly',
Map: 'readonly'
}
},
rules: {
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_'
}
],
'no-console': ['warn', { allow: ['warn', 'error'] }]
}
},
// Svelte files
{
files: ['**/*.svelte'],
languageOptions: {
parser: svelteParser,
parserOptions: {
parser: tseslint.parser,
sourceType: 'module',
ecmaVersion: 2020,
extraFileExtensions: ['.svelte']
},
globals: {
window: 'readonly',
document: 'readonly',
console: 'readonly',
process: 'readonly',
Promise: 'readonly',
Set: 'readonly',
Map: 'readonly',
Event: 'readonly',
SubmitEvent: 'readonly',
fetch: 'readonly',
HTMLElement: 'readonly',
HTMLDivElement: 'readonly',
setInterval: 'readonly',
clearInterval: 'readonly',
URLSearchParams: 'readonly',
HTMLInputElement: 'readonly',
KeyboardEvent: 'readonly',
AbortController: 'readonly',
DOMException: 'readonly',
setTimeout: 'readonly',
clearTimeout: 'readonly'
}
},
plugins: {
svelte: sveltePlugin
},
rules: {
...sveltePlugin.configs.recommended.rules,
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_'
}
]
}
},
// Prettier (disable conflicting rules)
prettier
);