Files
telemetry_visualization/frontend/src/composables/telemetry.ts

30 lines
785 B
TypeScript

import { ref, toValue, watchEffect } from 'vue';
import { type MaybeRefOrGetter } from 'vue';
export interface TelemetryDefinition {
uuid: string;
name: string;
data_type: string;
}
export function useTelemetry(name: MaybeRefOrGetter<string>) {
const data = ref<TelemetryDefinition | null>(null);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const error = ref<any | null>(null);
watchEffect(async () => {
const name_value = toValue(name);
try {
const res = await fetch(`/api/tlm/info/${name_value}`);
data.value = await res.json();
error.value = null;
} catch (e) {
data.value = null;
error.value = e;
}
});
return { data, error };
}