Compare commits
3 Commits
v0.1.0-dev
...
v0.1.0-dev
Author | SHA1 | Date |
---|---|---|
semantic-release-bot | 8b411113ff | |
Derrick Hammer | 237d936fe7 | |
Derrick Hammer | f11297d5cd |
|
@ -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.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)
|
# [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)
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "@lumeweb/kernel-network-registry",
|
"name": "@lumeweb/kernel-network-registry",
|
||||||
"version": "0.1.0-develop.8",
|
"version": "0.1.0-develop.9",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@lumeweb/kernel-network-registry",
|
"name": "@lumeweb/kernel-network-registry",
|
||||||
"version": "0.1.0-develop.8",
|
"version": "0.1.0-develop.9",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@lumeweb/libkernel": "^0.1.0-develop.39"
|
"@lumeweb/libkernel": "^0.1.0-develop.39"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@lumeweb/kernel-network-registry",
|
"name": "@lumeweb/kernel-network-registry",
|
||||||
"version": "0.1.0-develop.8",
|
"version": "0.1.0-develop.9",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"readme": "ERROR: No README data found!",
|
"readme": "ERROR: No README data found!",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
21
src/index.ts
21
src/index.ts
|
@ -1,13 +1,19 @@
|
||||||
import { ActiveQuery, addHandler } from "@lumeweb/libkernel/module";
|
import { ActiveQuery, addHandler } from "@lumeweb/libkernel/module";
|
||||||
|
import { EventEmitter } from "events";
|
||||||
|
|
||||||
const types: Set<string> = new Set<string>();
|
const types: Set<string> = new Set<string>();
|
||||||
const networks: Map<string, Set<string>> = new Map<string, Set<string>>();
|
const networks: Map<string, Set<string>> = new Map<string, Set<string>>();
|
||||||
|
|
||||||
|
const events = new EventEmitter();
|
||||||
|
|
||||||
addHandler("registerType", handleRegisterType);
|
addHandler("registerType", handleRegisterType);
|
||||||
addHandler("getTypes", handleGetTypes);
|
addHandler("getTypes", handleGetTypes);
|
||||||
addHandler("getNetworkTypes", handleGetNetworkTypes);
|
addHandler("getNetworkTypes", handleGetNetworkTypes);
|
||||||
addHandler("getNetworksByType", handleGetNetworksByType);
|
addHandler("getNetworksByType", handleGetNetworksByType);
|
||||||
addHandler("registerNetwork", handleRegisterNetwork);
|
addHandler("registerNetwork", handleRegisterNetwork);
|
||||||
|
addHandler("subscribeToUpdates", handleSubscribeToUpdates, {
|
||||||
|
receiveUpdates: true,
|
||||||
|
});
|
||||||
|
|
||||||
function handleRegisterType(aq: ActiveQuery) {
|
function handleRegisterType(aq: ActiveQuery) {
|
||||||
types.add(aq.callerInput);
|
types.add(aq.callerInput);
|
||||||
|
@ -38,6 +44,8 @@ function handleRegisterNetwork(aq: ActiveQuery) {
|
||||||
networks.set(aq.domain, new Set([...aq.callerInput.types]));
|
networks.set(aq.domain, new Set([...aq.callerInput.types]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
events.emit("update");
|
||||||
|
|
||||||
aq.respond();
|
aq.respond();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,3 +84,16 @@ function handleGetNetworksByType(aq: ActiveQuery) {
|
||||||
.map((item) => item[0]),
|
.map((item) => item[0]),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleSubscribeToUpdates(aq: ActiveQuery) {
|
||||||
|
const cb = () => {
|
||||||
|
aq.sendUpdate();
|
||||||
|
};
|
||||||
|
|
||||||
|
events.on("update", cb);
|
||||||
|
|
||||||
|
aq.setReceiveUpdate?.(() => {
|
||||||
|
events.off("update", cb);
|
||||||
|
aq.respond();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue