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
nullzurü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.
| Parameter | Typ | Beschreibung |
|---|---|---|
fn | MsgHookFn | Die 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
message | string | Die 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);