UNPKG

@constl/mandataire

Version:

Un mandataire très léger pour le client Constellation.

56 lines (55 loc) 2.19 kB
import { TypedEmitter } from "tiny-typed-emitter"; import type { types } from "@constl/ipa"; import { MessageActionDIpa, MessageConfirmationRéceptionRetourDIpa, MessageDIpa, MessageErreurDIpa, MessagePourIpa, MessageSuivrePrêtDIpa } from "./messages.js"; interface Tâche { idRequête: string; fSuivre: types.schémaFonctionSuivi<unknown>; fRetour: (fonction: string, args?: unknown[]) => Promise<void>; } declare class Callable extends Function { constructor(); } export type ErreurMandataire = { code: string; erreur: string; idRequête?: string; }; type ÉvénementsMandataire = { erreur: (e: ErreurMandataire) => void; }; export declare abstract class Mandatairifiable extends Callable { dernièreErreur?: ErreurMandataire; événements: TypedEmitter<ÉvénementsMandataire>; événementsInternes: TypedEmitter<{ [id: string]: (x: MessageActionDIpa | MessageSuivrePrêtDIpa | MessageErreurDIpa | MessageConfirmationRéceptionRetourDIpa) => void; }>; tâches: { [key: string]: Tâche; }; constructor(); __call__(fonction: string[], args?: { [key: string]: unknown; }): Promise<unknown>; appelerFonctionSuivre(idRequête: string, fonction: string[], args: { [key: string]: unknown; }, nomArgFonction: string): Promise<types.schémaFonctionOublier | { [key: string]: (...args: unknown[]) => void; }>; appelerFonctionAction<T>(idRequête: string, fonction: string[], args: { [key: string]: unknown; }): Promise<T>; erreur({ erreur, code, idRequête, }: { erreur: string; code: string; idRequête?: string; }): void; oublierTâche(idRequête: string): Promise<void>; abstract envoyerMessageÀIpa(message: MessagePourIpa): void; recevoirMessageDIpa(message: MessageDIpa): Promise<void>; suivreErreurs({ f, }: { f: (x: ErreurMandataire | undefined) => void; }): types.schémaFonctionOublier; } export type MandataireConstellation<T> = Required<T> & Mandatairifiable; export declare const générerMandataire: <T>(mandataireClient: Mandatairifiable) => MandataireConstellation<T>; export {};