Skip to content

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.

typescript
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.

Diffusé sous licence MIT.