[Major] Registering allow for params to be passed, handling wildcard registering for type

This commit is contained in:
Robert von Burg 2020-02-12 14:43:48 +01:00
parent 1e7e3ab0c7
commit e629ef8d47
2 changed files with 11 additions and 10 deletions

View File

@ -1,7 +1,7 @@
{ {
"name": "strolch-wc-ws-observer", "name": "strolch-wc-ws-observer",
"description": "Strolch Polymer WebSocket observer update handler extension", "description": "Strolch Polymer WebSocket observer update handler extension",
"version": "0.1.5", "version": "0.2.0",
"authors": [ "authors": [
"Robert von Burg" "Robert von Burg"
], ],
@ -20,7 +20,7 @@
"homepage": "https://github.com/4treesCH/strolch-wc-ws-observer", "homepage": "https://github.com/4treesCH/strolch-wc-ws-observer",
"ignore": [], "ignore": [],
"dependencies": { "dependencies": {
"strolchjs": "4treesCH/strolchjs#^0.2.7", "strolchjs": "4treesCH/strolchjs#^0.2.8",
"polymer": "Polymer/polymer#^1.11.3" "polymer": "Polymer/polymer#^1.11.3"
} }
} }

View File

@ -34,7 +34,7 @@
} }
}, },
register: function (objectType, type, source, flat, callback) { register: function (objectType, type, source, params, callback) {
var byObjectType = observers[objectType]; var byObjectType = observers[objectType];
if (byObjectType == null) { if (byObjectType == null) {
observers[objectType] = {}; observers[objectType] = {};
@ -45,7 +45,7 @@
if (byType == null) { if (byType == null) {
byObjectType[type] = {}; byObjectType[type] = {};
byType = byObjectType[type]; byType = byObjectType[type];
this._register(objectType, type, flat); this._register(objectType, type, params);
} }
if (byType[source] != null) { if (byType[source] != null) {
@ -53,7 +53,7 @@
} }
byType[source] = callback; byType[source] = callback;
console.log("Registered callback for " + objectType + " " + type + " " + source + " as " + (flat ? "flat" : "full") + " format"); console.log("Registered callback for " + objectType + " " + type + " " + source + " params: " + JSON.stringify(params));
}, },
unregister: function (objectType, type, source) { unregister: function (objectType, type, source) {
@ -71,25 +71,26 @@
console.log("Unregistered callback for " + objectType + " " + type + " " + source); console.log("Unregistered callback for " + objectType + " " + type + " " + source);
}, },
_register: function (objectType, type, flat) { _register: function (objectType, type, params) {
console.log("Registering for updates for " + objectType + " " + type); console.log("Registering for updates for " + objectType + " " + type);
this._sendWsMessage({ this._sendWsMessage({
msgType: "ObserverRegister", msgType: "ObserverRegister",
objectType: objectType, objectType: objectType,
type: type, type: type,
flat: flat params: params
}); });
}, },
notifyObservers: function (msg) { notifyObservers: function (msg) {
var byObjectType = observers[msg.objectType]; var byObjectType = observers[msg.objectType];
if (byObjectType == null) { if (byObjectType == null)
return; return;
}
var byType = byObjectType[msg.type]; var byType = byObjectType[msg.type];
if (byType == null) { if (byType == null) {
return byType = byObjectType["*"];
if (byType == null)
return;
} }
Object.keys(byType).forEach(function (k) { Object.keys(byType).forEach(function (k) {