-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathuse-trace_ids-subscription.ts
More file actions
38 lines (30 loc) · 1.11 KB
/
use-trace_ids-subscription.ts
File metadata and controls
38 lines (30 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import type { ComputedRef } from "vue";
import { computed } from "vue";
import {
useCtrlTraceIdsQuery,
useCtrlTraceIdsSSubscription,
} from "@/graphql/codegen/generated";
import { onReady } from "@/utils/on-ready";
import type { OnReady } from "@/utils/on-ready";
interface _TraceIdsSubscription {
traceIds: ComputedRef<number[] | undefined>;
error: ComputedRef<Error | undefined>;
subscription: ReturnType<typeof useCtrlTraceIdsSSubscription>;
query: ReturnType<typeof useCtrlTraceIdsQuery>;
}
type TraceIdsSubscription = OnReady<_TraceIdsSubscription>;
export function useSubscribeTraceIds(): TraceIdsSubscription {
const query = useCtrlTraceIdsQuery({
requestPolicy: "network-only",
variables: {},
});
const subscription = useCtrlTraceIdsSSubscription({ variables: {} });
const error = computed(() => subscription.error?.value || query.error?.value);
const traceIds = computed(() =>
error.value
? undefined
: subscription.data?.value?.ctrlTraceIds || query.data?.value?.ctrl.traceIds,
);
const ret = { traceIds, error, subscription, query };
return onReady(ret, query);
}