Aller au contenu principal

Conventions JavaScript

Le JavaScript améliore les écrans rendus côté serveur sans dupliquer les règles backend.

Règles

  • La validation est autoritative côté backend — le JS ne fait que de l'UX
  • Pas de framework JS (Vue, React, Alpine) — Vanilla JS ES6+ uniquement
  • Pas de variables globales sauf le bootstrapping approuvé du projet
  • Envoyer les tokens CSRF pour les requêtes non sûres
  • Gérer les erreurs API de manière visible et accessible

Organisation du code JS

  • Scripts de page dans @push('scripts') ou @section('scripts')
  • Fonctions globales de page dans un IIFE : (function(){ ... })()
  • Endpoints API injectés via window.X_ENDPOINTS = { ... } depuis le layout ou la vue

Interdit

// ❌ Ne jamais décider des permissions uniquement en JavaScript
if (user.role === 'admin') {
showDangerousButton();
}

AJAX standard

fetch(window.APP_ENDPOINTS.users, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content,
},
body: JSON.stringify(data),
})
.then(r => r.ok ? r.json() : Promise.reject(r))
.then(json => { /* succès */ })
.catch(err => { /* erreur visible */ });