| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2026-05-11 14:56:02 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2026-05-11 14:56:02 UTC |
| parent | ad623fb2b286c3d15b1297a9f755730de9e24aa7 |
| borogove/streams/XmppJsStream.hx | +9 | -3 |
diff --git a/borogove/streams/XmppJsStream.hx b/borogove/streams/XmppJsStream.hx index 82f5a5e..7a2e053 100644 --- a/borogove/streams/XmppJsStream.hx +++ b/borogove/streams/XmppJsStream.hx @@ -32,7 +32,7 @@ extern class XmppJsClient { get: (String, String, ({stanza: XmppJsXml})->Any)->Void, set: (String, String, ({stanza: XmppJsXml})->Any)->Void, }; - var middleware: { use:(({stanza: XmppJsXml})->Void)->Void }; + var middleware: XmppJsMiddleware; var streamFeatures: { use:(String,String,({}, ()->Void, XmppJsXml)->Void)->Void }; var streamManagement: { id:String, @@ -130,6 +130,8 @@ extern class XmppJsResolve { @:js.import(@default "@xmpp/middleware") extern class XmppJsMiddleware { function new(params: { entity: XmppJsClientCore }); + function filter(f: ({ stanza: XmppJsXml }, ()->Any)->Any): Void; + function use(f: ({stanza: XmppJsXml})->Void): Void; } @:js.import(@default "@xmpp/stream-features") @@ -321,7 +323,6 @@ class XmppJsStream extends GenericStream { }); xmpp.on("stanza", function (stanza) { - triggerSMupdate(); this.onStanza(convertToStanza(stanza)); }); @@ -335,6 +336,12 @@ class XmppJsStream extends GenericStream { triggerSMupdate(); }); + xmpp.middleware.filter((context, next) -> { + if (!["message", "iq", "presence"].contains(context.stanza.getName())) return next(); + triggerSMupdate(); + return next(); + }); + xmpp.fast.saveToken = (token) -> { token.token = Json.stringify(token); this.trigger("fast-token", token); @@ -422,7 +429,6 @@ class XmppJsStream extends GenericStream { } else { client.send(convertFromStanza(stanza)); } - triggerSMupdate(); } private function triggerSMupdate() {