invoke
invoke appelle une opération de Frond depuis le serveur, sans état réactif. Il s'utilise
dans les routes serveur, les tâches planifiées et les adapters de protocole.
// server/api/feed.xml.get.ts — un pont RSS en trois gestes : parse → invoke → formate
import Post from '@frond/blog/entities/Post';
export default defineEventHandler(async (event) => {
const posts = await invoke<PostCard[]>(Post, 'list');
return renderRss(posts);
});
Signatures
invoke<T>(Entity, op, input?) // désignation par classe
invoke<T>({ entity, op }, input?) // forme brute, pour les ponts dynamiques
// input: { params?, query?, body? }
Sémantique
- Routage local ou distant.
invoketransmet l'appel au runner. Une Frond locale est exécutée en mémoire ; une Frond déclarée dansremotesutilise JSON-RPC. - Transmission du state. Dans une requête,
invokeajoute la session courante au state d'invocation. Hors requête, le state est vide ou fourni explicitement. - Les erreurs sont les mêmes
FougereError— un pont les mappe avectoHttpErrors'il parle HTTP, ou les laisse se propager.
Frontière
invoke est réservé aux opérations de Frond. Les services, Logger, Config
viennent du container (DI) — invoke n'est pas un service locator.
Les adapters fournis pour REST et GraphQL suivent le même enchaînement : parser → invoke → formater. Un adapter personnalisé peut reprendre cette structure.
Suite : Le gradient — déplacer une Frond hors process.