@formkit/observer

Introduction

FormKit Observer est un utilitaire pour envelopper un FormKitNode dans un proxy d'observateur de suivi de dépendance.

Fonctions

createObserver()

Crée l'observateur.

Signature

createObserver(node: FormKitNode, dependencies?: FormKitDependencies): FormKitObservedNode;

Paramètres

  • node — Le FormKitNode à observer.
  • dependencies optionnel — Les nœuds dépendants et les événements qui doivent être surveillés pour les changements.

Retourne

Retourne un FormKitObservedNode.

diffDeps()

Détermine quels nœuds doivent être ajoutés en tant que dépendances et lesquels doivent être supprimés.

Signature

diffDeps(previous: FormKitDependencies, current: FormKitDependencies): [FormKitDependencies, FormKitDependencies];

Paramètres

  • previous — Les dépendances du watcher précédent.
  • current — Les nouvelles/dépendances actuelles du watcher.

Retourne

Un tuple de maps : toAdd et toRemove.

isKilled()

Vérifie si le nœud donné est révoqué.

Signature

isKilled(node: FormKitObservedNode): boolean;

Paramètres

  • node — N'importe quel nœud observé à vérifier.

Retourne

Un boolean indiquant si le nœud est révoqué.

removeListeners()

Supprime tous les reçus du nœud observé et de l'arborescence.

Signature

removeListeners(receipts: FormKitObserverReceipts): void;

Paramètres

  • receipts — Les reçus de l'observateur FormKit à supprimer.

TypeScript

FormKitObservedNode

Un FormKitNode compatible avec l'API qui est capable de déterminer l'arbre de dépendance complet des nœuds et de leurs valeurs.

interface FormKitObservedNode extends FormKitNode {
    _node: FormKitNode;
    deps: FormKitDependencies;
    kill: () => undefined;
    observe: () => void;
    receipts: FormKitObserverReceipts;
    stopObserve: () => FormKitDependencies;
    watch:<TextendsFormKitWatchable>(block: T, after?: (value: ReturnType<T>) => void) => void;
}

FormKitWatchable

Un rappel pour surveiller les nœuds.

interface FormKitWatchable<T = unknown> {
    (node: FormKitObservedNode): T;
}

FormKitDependencies

Les nœuds dépendants et les événements qui doivent être surveillés pour les changements.

export type FormKitDependencies = Map<FormKitNode, Set<string>> & {
    active?: boolean;
};

FormKitObserverReceipts

Une Map de nœuds avec les valeurs étant des Maps de eventsName : reçu

export type FormKitObserverReceipts = Map<FormKitNode, {
    [index: string]: string;
}>;