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. invoke transmet l'appel au runner. Une Frond locale est exécutée en mémoire ; une Frond déclarée dans remotes utilise JSON-RPC.
  • Transmission du state. Dans une requête, invoke ajoute 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 avec toHttpError s'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.

Construit avec Fougere — ce site tourne sur le framework qu'il documente.