30 lines
785 B
TypeScript
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 };
|
|
}
|