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.