Les chemins sont validés
Chaque chemin d'un mapping est vérifié contre le type d'entrée. Une coquille comme user.emial est une erreur de compilation avec une suggestion « Did you mean 'email'? ».
Chemins & optionnalité
Un langage de mapping déclaratif pour JSON — chemins validés, types de sortie inférés, et des erreurs de compilation plutôt que des incidents en production.
Tout ce qui suit est vivant : modifiez le mapping ou l'entrée et regardez la sortie, le type inféré et les diagnostics se mettre à jour à chaque frappe. Pas de serveur — le compilateur et le runtime tournent dans votre navigateur.
{ "id": 42, "fullName": "Ada Lovelace", "isAdmin": true, "email": "unknown", "activeTags": [ "founder" ], "results": [ { "value": 16, "grade": "A" }, { "value": 9, "grade": "C" }, { "value": 12, "grade": "B" } ] }
{
id: number;
fullName: string;
isAdmin: boolean;
email: string;
activeTags: string[];
results: { value: number; grade: "A" | "B" | "C" }[];
}Ce mapping contient deux bugs classiques : une propriété mal orthographiée et un accès optionnel non protégé. Dans une fonction ordinaire, ils partiraient en production comme des undefined silencieux — ici ils ne quittent jamais votre éditeur. Corrigez-les en direct : emial → email, et ajoutez ?. + ?? sur la seconde ligne.
// Corrigez les erreurs du mapping pour voir la sortie.{ mail: any; phone: string }Chaque diagnostic a un code stable, un indice, et une reproduction vivante dans la référence des diagnostics.
Les pages d'opérateurs, la référence des fonctions et celle des diagnostics sont générées depuis les définitions mêmes que le compilateur exécute — signatures, docs et exemples ne peuvent pas dériver de l'implémentation. Le build échoue si un exemple cesse de compiler.
| Typeflow | JSONata | jq | Zod | Fonction TS | |
|---|---|---|---|---|---|
| Transformation déclarative | ✅ | ✅ | ✅ | ❌ (validation) | ❌ |
| Chemins d'entrée validés statiquement | ✅ | ❌ | ❌ | n/a | ✅ |
| Type de sortie inféré | ✅ | ❌ | ❌ | ⚠️ déclaré | ✅ |
| Artefact sérialisable / sandboxable | ✅ | ✅ | ✅ | ❌ | ❌ |
| Déterministe par construction | ✅ | ⚠️ | ✅ | n/a | ❌ |
Zod est une entrée naturelle de Typeflow, pas un concurrent : Zod répond « est-ce un X ? » ; Typeflow répond « comment X devient-il Y, et cette conversion est-elle sûre ? »
$ bun add -d typeflowjs
$ bunx typeflow init # génère un mapping d'exemple
$ bunx typeflow check # diagnostics façon tsc
$ bunx typeflow run user.typeflow --input data.json