Flow
Helpers de contrôle de flux basés sur des générateurs pour composer des workflows synchrones et asynchrones avec effets typés, étapes, sorties, breaks et injection de dépendances.
Comment faire les imports ?
La bibliothèque expose les namespaces DFlow et F depuis l'entrée principale ou en import direct (tree-shaking friendly), ce qui permet de ne charger que ce dont vous avez besoin.
import { DFlow, F } from "@duplojs/utils";
import * as DFlow from "@duplojs/utils/flow";
import * as F from "@duplojs/utils/flow";Création et exécution de flow
create
Créer un flow réutilisable à partir d'une fonction de flow.
run
Exécute un flow et retourne sa valeur finale.
exec
Exécute un flow imbriqué dans le flow courant.
Coordination d'exécution
Ces helpers gardent un état interne dans des WeakMap basées sur la référence du flow exécuté. Pour les utiliser correctement sur plusieurs appels, réutilisez un flow créé avec F.create(...) ou une fonction obtenue via F.toFunction(...).
calledByNext
Appelle un callback quand une exécution suivante du même flow remplace une exécution encore active.
queue
Sérialise ou limite les exécutions concurrentes d'un même flow.
throttling
Ignore ou reporte les appels trop rapprochés pour un même flow.
debounce
Attend avant de continuer l'exécution et annule l'appel précédent si un nouveau arrive.
Contrôle de flux
breakIf
Arrête la branche courante du flow quand un prédicat correspond.
exitIf
Quitte le flow en cours quand un prédicat correspond, même depuis un flow imbriqué.
step
Enregistre une étape nommée et peut optionnellement calculer une valeur.
Cycle de vie et nettoyage
defer
Enregistre un callback de nettoyage exécuté quand le flow se termine.
finalizer
Enregistre un callback final géré par le runner de flow.
createInitializer
Crée un initializer qui retourne une valeur et enregistre automatiquement des effets de nettoyage.
Dépendances
createDependence
Crée un descripteur de dépendance typé pour le système de flow.
inject
Demande une dépendance au runner de flow.
