git » sdk » commit 1093b4a

More reliable SM storage

author Stephen Paul Weber
2026-05-11 14:56:02 UTC
committer Stephen Paul Weber
2026-05-11 14:56:02 UTC
parent ad623fb2b286c3d15b1297a9f755730de9e24aa7

More reliable SM storage

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() {