Compare commits

...

3 Commits

Author SHA1 Message Date
semantic-release-bot 8b411113ff chore(release): 0.1.0-develop.9 [skip ci]
# [0.1.0-develop.9](https://git.lumeweb.com/LumeWeb/kernel-network-registry/compare/v0.1.0-develop.8...v0.1.0-develop.9) (2023-10-09)

### Features

* add subscribeToUpdates method to listen for updates ([f11297d](f11297d5cd))
2023-10-09 03:32:56 +00:00
Derrick Hammer 237d936fe7
Merge remote-tracking branch 'origin/develop' into develop 2023-10-08 23:31:44 -04:00
Derrick Hammer f11297d5cd
feat: add subscribeToUpdates method to listen for updates 2023-10-08 23:31:35 -04:00
4 changed files with 31 additions and 3 deletions

View File

@ -1,3 +1,10 @@
# [0.1.0-develop.9](https://git.lumeweb.com/LumeWeb/kernel-network-registry/compare/v0.1.0-develop.8...v0.1.0-develop.9) (2023-10-09)
### Features
* add subscribeToUpdates method to listen for updates ([f11297d](https://git.lumeweb.com/LumeWeb/kernel-network-registry/commit/f11297d5cd0dc06d0f7ed5b43cf1b5d939596b7a))
# [0.1.0-develop.8](https://git.lumeweb.com/LumeWeb/kernel-network-registry/compare/v0.1.0-develop.7...v0.1.0-develop.8) (2023-09-03)
# [0.1.0-develop.7](https://git.lumeweb.com/LumeWeb/kernel-network-registry/compare/v0.1.0-develop.6...v0.1.0-develop.7) (2023-09-02)

4
npm-shrinkwrap.json generated
View File

@ -1,12 +1,12 @@
{
"name": "@lumeweb/kernel-network-registry",
"version": "0.1.0-develop.8",
"version": "0.1.0-develop.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@lumeweb/kernel-network-registry",
"version": "0.1.0-develop.8",
"version": "0.1.0-develop.9",
"dependencies": {
"@lumeweb/libkernel": "^0.1.0-develop.39"
},

View File

@ -1,6 +1,6 @@
{
"name": "@lumeweb/kernel-network-registry",
"version": "0.1.0-develop.8",
"version": "0.1.0-develop.9",
"type": "module",
"readme": "ERROR: No README data found!",
"repository": {

View File

@ -1,13 +1,19 @@
import { ActiveQuery, addHandler } from "@lumeweb/libkernel/module";
import { EventEmitter } from "events";
const types: Set<string> = new Set<string>();
const networks: Map<string, Set<string>> = new Map<string, Set<string>>();
const events = new EventEmitter();
addHandler("registerType", handleRegisterType);
addHandler("getTypes", handleGetTypes);
addHandler("getNetworkTypes", handleGetNetworkTypes);
addHandler("getNetworksByType", handleGetNetworksByType);
addHandler("registerNetwork", handleRegisterNetwork);
addHandler("subscribeToUpdates", handleSubscribeToUpdates, {
receiveUpdates: true,
});
function handleRegisterType(aq: ActiveQuery) {
types.add(aq.callerInput);
@ -38,6 +44,8 @@ function handleRegisterNetwork(aq: ActiveQuery) {
networks.set(aq.domain, new Set([...aq.callerInput.types]));
}
events.emit("update");
aq.respond();
}
@ -76,3 +84,16 @@ function handleGetNetworksByType(aq: ActiveQuery) {
.map((item) => item[0]),
);
}
function handleSubscribeToUpdates(aq: ActiveQuery) {
const cb = () => {
aq.sendUpdate();
};
events.on("update", cb);
aq.setReceiveUpdate?.(() => {
events.off("update", cb);
aq.respond();
});
}