export default class Hooker { /** * Crée des crochets qui appellent simplement les écouteurs. * * @param {string[]} hooks Pointeurs des crochets. * @returns {Record} Crochets qui appellent les écouteurs. */ static presets(hooks: string[]): Record; /** * Crée une fonction qui modifie un objet vanille (en gérant un objet ou une * liste d'objets). * * @param {Function} listener L'écouteur qui sera appeler pour modifier * l'objet vanille. * @returns {Function} La fonction qui modifie l'objet vanille. */ static modify(listener: Function): Function; /** * Crée un crocheteur pour un type d'objet. * * @param {Pointers} pointers Pointeurs vers les * méthodes créant ou * récupérant un * objet. * @param {Map>} listeners Écouteurs regroupés * par objet, * propriété et * temporalité. * @param {string} name Nom du type de * l'objet crocheté. */ constructor(pointers: Pointers, listeners: Map>, name: string); /** * Retourne les crochets à exécuter en premier. * * @returns {Record} Crochets. */ first(): Record; /** * Retourne les crochets à exécuter en dernier. * * @returns {Record} Crochets. */ last(): Record; /** * Prépare un objet ou des objets vanilles pour les crocheter. Cette méthode * doit être associée à un crochet ayant la temporalité "after". * * @param {any | any[]} vanillas Objet ou liste d'objets vanilles à préparer * pour les crocheter. Ce paramètre sera * renseigné avec le retour de la méthode * crochetée. * @returns {any | any[]} Objet ou liste d'objets crochetables. */ prepare(vanillas: any | any[]): any | any[]; /** * Finalise l'objet ou les objets crochetés. * * @param {any | any[]} hookeds Objet ou liste d'objets crochetés. * @returns {any | any[]} Objet ou liste d'objets crochetés. */ finalize(hookeds: any | any[]): any | any[]; /** * Récupère l'objet ou les objets crochetés à partir des objets vanilles. * * @param {any | any[]} vanillas Objet ou liste d'objets vanilles. * @returns {any | any[]} Objet ou liste d'objets crochetés associés à la * vanille. */ get(vanillas: any | any[]): any | any[]; #private; } /** * Type des pointeurs vers les méthodes créant ou récupérant un objet. */ export type Pointers = { /** * Liste des pointeurs vers les méthodes créant un * objet. */ create: string[]; /** * Liste des pointers vers les méthodes récupérant un * objet. */ getter: string[]; }; import type { Listener } from "../hook.js";