UNPKG

signalk-server

Version:

An implementation of a [Signal K](http://signalk.org) server for boats.

39 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildTalkerLookup = buildTalkerLookup; exports.buildProviderTalkerLookups = buildProviderTalkerLookups; // Group names are normalised to lowercase to match the admin UI, so that // manual settings.json edits with mixed case still match canonical group ids. function buildTalkerLookup(groups) { const lookup = new Map(); for (const [rawGroupName, talkers] of Object.entries(groups)) { const groupName = rawGroupName.trim().toLowerCase(); for (const talker of talkers) { const existing = lookup.get(talker); if (existing && existing !== groupName) { console.warn(`nmea0183 talker '${talker}' is mapped to multiple groups ` + `('${existing}' and '${groupName}'); the later mapping wins.`); } lookup.set(talker, groupName); } } return lookup; } function buildProviderTalkerLookups(pipedProviders) { const result = new Map(); if (!Array.isArray(pipedProviders)) return result; for (const provider of pipedProviders) { if (!provider.id || !provider.pipeElements?.[0]?.options) continue; const options = provider.pipeElements[0].options; const subOptions = options.subOptions || options; if (subOptions.talkerGroups && typeof subOptions.talkerGroups === 'object' && !Array.isArray(subOptions.talkerGroups)) { result.set(provider.id, buildTalkerLookup(subOptions.talkerGroups)); } } return result; } //# sourceMappingURL=nmea0183TalkerGroups.js.map