From 128f4827dfd814d0d43e34ac4fae533c5258db2a Mon Sep 17 00:00:00 2001 From: Jamie V Date: Fri, 20 Dec 2024 15:12:08 -0800 Subject: [PATCH] moving hasNumericTelemetry to an api method --- src/api/telemetry/TelemetryAPI.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/api/telemetry/TelemetryAPI.js b/src/api/telemetry/TelemetryAPI.js index e5be70590f..9d83152b24 100644 --- a/src/api/telemetry/TelemetryAPI.js +++ b/src/api/telemetry/TelemetryAPI.js @@ -284,6 +284,27 @@ export default class TelemetryAPI { return value; } + hasNumericTelemetry(domainObject) { + if (!Object.prototype.hasOwnProperty.call(domainObject, 'telemetry')) { + return false; + } + + let metadata = this.openmct.telemetry.getMetadata(domainObject); + + return metadata.values().length > 0 && this.#hasDomainAndNumericRange(metadata); + } + + #hasDomainAndNumericRange(metadata) { + const rangeValues = metadata.valuesForHints(['range']); + const domains = metadata.valuesForHints(['domain']); + + return ( + domains.length > 0 && + rangeValues.length > 0 && + !rangeValues.every((value) => value.format === 'string') + ); + } + /** * Generates a numeric hash value for an options object. The hash is consistent * for equivalent option objects regardless of property order.