Dynamic intellisense
🚀 Milestone – Dynamic Data-Driven IntelliSense & Live Server Rendering
(Ekit — Novembre 2025)
🎯 Description courte
Ekit supporte désormais un pipeline complet reliant la base de données, le modèle runtime, le moteur Handlebars et l’éditeur Monaco. L’auto-complétion, les datasources et le rendu serveur sont entièrement synchronisés avec la structure réelle des tables.
🧠 1. New: Data-Driven IntelliSense
L’éditeur Monaco propose automatiquement les champs disponibles selon la table.
Les suggestions utilisent les slugs humains, pas les IDs internes.
L’autocomplétion fonctionne dans le contexte de :
{{this.}} {{#each ekdata.alias}}
Points clés :
Detection automatique de l’alias (ekdata.mon-alias)
Résolution alias → table (from:)
Extraction dynamique des colonnes depuis la DB
Suggestions temps réel basées sur le schéma réel
🔁 2. New: Schema Hot Reload
Toute modification de la DB (colonnes, slugs, types…) est reflétée instantanément dans Monaco.
Pas besoin de redémarrer le projet : Ekit recharge le schéma automatiquement.
Le studio propose en temps réel les champs réellement disponibles.
🗃️ 3. New: Slug-Based Model Mapping
Le modèle passé à Handlebars est maintenant “flatten par slug”.
Exemple :
{ "_id": "row1", "nom": "Dupont", "prenom": "Jean" }
Les champs _id des colonnes sont automatiquement remappés.
Résultat : {{this.nom}} {{this.prenom}}
→ fonctionne nativement, sans body.*.
🧩 4. New: Alias Datasource Support
Plusieurs requêtes peuvent cibler la même table avec des limites différentes.
Exemple :
featured: from: acteurs limit: 5 latest: from: acteurs limit: 20
Les deux alias reçoivent la bonne autocomplétion.
🎨 5. New: Seamless Handlebars Integration
Le rendu SSR utilise automatiquement les champs mappés.
Le studio affiche exactement ce que Handlebars rendra.
Plus aucune divergence entre :
la DB,
le modèle,
la preview,
l’autocomplétion.
🐞 6. Fixes & Stability
Correction d’un bug critique de reload serveur (EADDRINUSE) causé par le watcher.
Corrections async :
push() + lastValueFrom() remplacé par map() + Promise.all().
Normalisation complète du parsing du front-matter YAML.
🎉 Impact
Ekit passe un énorme cap :
✔️ Premier studio de templating entièrement piloté par les données ✔️ Auto-complétion “vraie”, basée sur la structure en base ✔️ Rendu SSR fidèle à 100% ✔️ Architecture propre, extensible, prête pour les helpers custom & hover tooltips
C’est une brique fondatrice du produit.