switch to js protobufs

This commit is contained in:
2025-04-15 18:07:20 -04:00
parent 913406d1b9
commit 0456f8a7b3
4 changed files with 32 additions and 126 deletions

View File

@ -1,10 +1,12 @@
const path = require('path');
const express = require('express');
const compression = require('compression');
const protobufjs = require("protobufjs");
const commandLineArgs = require("command-line-args");
const commandLineUsage = require("command-line-usage");
// protobuf imports
const { Mesh, Config } = require("@meshtastic/protobufs");
// create prisma db client
const { PrismaClient } = require("@prisma/client");
const prisma = new PrismaClient();
@ -50,24 +52,21 @@ if(options.help){
// get options and fallback to default values
const port = options["port"] ?? 8080;
// load protobufs
const root = new protobufjs.Root();
root.resolvePath = (origin, target) => path.join(__dirname, "protos", target);
root.loadSync('meshtastic/mqtt.proto');
const HardwareModel = root.lookupEnum("HardwareModel");
const Role = root.lookupEnum("Config.DeviceConfig.Role");
const RegionCode = root.lookupEnum("Config.LoRaConfig.RegionCode");
const ModemPreset = root.lookupEnum("Config.LoRaConfig.ModemPreset");
// load protobuf enums
const HardwareModel = Mesh.HardwareModel;
const Role = Config.Config_DeviceConfig_Role;
const RegionCode = Config.Config_LoRaConfig_RegionCode;
const ModemPreset = Config.Config_LoRaConfig_ModemPreset;
// appends extra info for node objects returned from api
function formatNodeInfo(node) {
return {
...node,
node_id_hex: "!" + node.node_id.toString(16),
hardware_model_name: HardwareModel.valuesById[node.hardware_model] ?? null,
role_name: Role.valuesById[node.role] ?? null,
region_name: RegionCode.valuesById[node.region] ?? null,
modem_preset_name: ModemPreset.valuesById[node.modem_preset] ?? null,
hardware_model_name: HardwareModel[node.hardware_model] ?? null,
role_name: Role[node.role] ?? null,
region_name: RegionCode[node.region] ?? null,
modem_preset_name: ModemPreset[node.modem_preset] ?? null,
};
}