Projet non officiel. Sans lien avec Frappe Technologies.
Ce que fait l'outil
fft vous permet d'écrire en TypeScript le code client d'une app Frappe. Il compile vos fichiers, les surveille pendant que vous travaillez, lance le vérificateur de types, et génère les types TypeScript de vos DocTypes depuis un site en fonctionnement sur votre bench local. Il s'adresse aux développeurs Frappe qui veulent que l'éditeur connaisse le nom de chaque champ et son type.
Fonctionnalités
fft buildcompile votre TypeScript pour l'app Frappe.fft watchrecompile à chaque modification. Ajoutez--typecheckpour vérifier les types au fil de l'eau.fft typechecklance seulement le vérificateur de types.fft generatelit les DocTypes d'un site de votre bench local et écrit les types. Il accepte--site,--doctypeset--out.- Globales client typées. Le paquet fournit les types des globales du client Frappe, comme
frappeetcur_frm.
Installation
Il faut Node 18 ou plus récent. Ajoutez fft à votre app Frappe comme dépendance de développement :
pnpm add -D @foxmayn/fft
Générez les types depuis votre site :
pnpm fft generate --site acme.localhost --doctypes "Sales Invoice,Customer" --out myapp/types/generated
Lancez la surveillance pendant le développement :
pnpm fft watch --typecheck
La version npm actuelle est la 1.2.0, publiée le 30 juillet 2026. Nous exécutons la suite de tests avec vitest avant chaque publication. Il n'y a pas de CI à chaque push et le paquet n'est pas signé.
Pourquoi nous l'avons construit
Un script de formulaire Frappe est du JavaScript qui désigne les champs par des chaînes de caractères. Une faute de frappe dans un nom de champ échoue à l'exécution, sur l'écran d'un utilisateur. Avec des types générés, la même faute échoue dans votre éditeur. Nous écrivons le code client en TypeScript pour chaque app Frappe sur mesure que nous développons, et fft est l'outil que nous avons écrit pour que ce soit praticable.
Le code source, les versions et les tickets sont sur GitHub. La licence est MIT. Outils associés : Foxmayn Frappe CLI et Foxmayn Frappe Manager.