From 75c25d7cab1240d6f2b194af9f262f76f98c6b48 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Wed, 19 Jul 2023 13:14:16 -0400 Subject: [PATCH] feat: add getNetworksByType api call --- src/index.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/index.ts b/src/index.ts index 60d818b..7ef84cd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,6 +6,7 @@ const networks: Map> = new Map>(); addHandler("registerType", handleRegisterType); addHandler("getTypes", handleGetTypes); addHandler("getNetworkTypes", handleGetNetworkTypes); +addHandler("getNetworksByType", handleGetNetworksByType); addHandler("registerNetwork", handleRegisterNetwork); function handleRegisterType(aq: ActiveQuery) { @@ -55,3 +56,23 @@ function handleGetNetworkTypes(aq: ActiveQuery) { ...(networks.get(aq.callerInput.module) as Set).values(), ]); } + +function handleGetNetworksByType(aq: ActiveQuery) { + if (!("type" in aq.callerInput)) { + aq.reject("type missing"); + return; + } + + if (!types.has(aq.callerInput)) { + aq.reject("type not registered"); + return; + } + + aq.respond( + [...networks.entries()] + .filter((item) => { + return item[1].has(aq.callerInput); + }) + .map((item) => item[0]), + ); +}