Skip to main content

BEFORE_SEND

Mit dem BEFORE_SEND-Service kannst du Nachrichten abfangen und verarbeiten, bevor sie an den Bot gesendet werden. Du registrierst eine oder mehrere Hook-Funktionen, die nacheinander auf die Nachricht angewendet werden. Damit kannst du z. B. Eingaben bereinigen, ergänzen oder bei bestimmten Bedingungen das Senden komplett unterdrücken.

Eine Hook-Funktion hat folgende Signatur:

// MsgHookFn
(message: string) => string | null | Promise<string | null>
  • Gibt die Funktion einen String zurück, wird dieser als neue Nachricht weiterverarbeitet.
  • Gibt die Funktion null zurück, wird das Senden der Nachricht abgebrochen.
  • Die Funktion darf auch ein Promise zurückgeben (async).

.add(fn)

Registriert eine neue Vorverarbeitungsfunktion für Nachrichten vor dem Senden. Du kannst beliebig viele Funktionen registrieren – sie werden in der Reihenfolge ihrer Registrierung ausgeführt.

ParameterTypBeschreibung
fnMsgHookFnDie Funktion, die auf jede Nachricht angewendet wird.
// Leerzeichen durch Unterstriche ersetzen
RAGAI.BEFORE_SEND.add((msg) => {
return msg.replaceAll(' ', '_');
});
// Nachrichten unter 3 Zeichen blockieren
RAGAI.BEFORE_SEND.add((msg) => {
if (msg.length < 3) return null;
return msg;
});
// Asynchrone Verarbeitung
RAGAI.BEFORE_SEND.add(async (msg) => {
const cleaned = await myExternalCleanup(msg);
return cleaned;
});

.run(message)

Führt alle registrierten Hook-Funktionen nacheinander auf die übergebene Nachricht aus und gibt das Endergebnis zurück. Falls eine der Funktionen null zurückgibt, wird die Kette abgebrochen und null zurückgegeben.

ParameterTypBeschreibung
messagestringDie Nachricht, die durch alle Hooks verarbeitet werden soll.

Rückgabe: Promise<string | null> – Die verarbeitete Nachricht oder null, wenn das Senden unterdrückt werden soll.

const result = await RAGAI.BEFORE_SEND.run('Meine tolle Nachricht an den Bot');
if (result !== null) {
console.log('Verarbeitete Nachricht:', result);
} else {
console.log('Senden wurde abgebrochen');
}

.clear()

Entfernt alle registrierten Hook-Funktionen. Danach werden Nachrichten ohne Vorverarbeitung gesendet.

RAGAI.BEFORE_SEND.clear();

.list()

Gibt ein Array aller aktuell registrierten Hook-Funktionen zurück. Nützlich zum Debuggen oder um zu prüfen, wie viele Hooks registriert sind.

Rückgabe: MsgHookFn[] – Array der registrierten Funktionen.

const hooks = RAGAI.BEFORE_SEND.list();
console.log('Anzahl registrierter Hooks:', hooks.length);