-
Notifications
You must be signed in to change notification settings - Fork 8k
/
query_key_factory.ts
52 lines (47 loc) · 2.22 KB
/
query_key_factory.ts
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
interface SloKeyFilter {
name: string;
page: number;
sortBy: string;
indicatorTypes: string[];
}
interface CompositeSloKeyFilter {
name: string;
page: number;
sortBy: string;
}
export const sloKeys = {
all: ['slo'] as const,
lists: () => [...sloKeys.all, 'list'] as const,
list: (filters: SloKeyFilter) => [...sloKeys.lists(), filters] as const,
details: () => [...sloKeys.all, 'details'] as const,
detail: (sloId?: string) => [...sloKeys.details(), sloId] as const,
rules: () => [...sloKeys.all, 'rules'] as const,
rule: (sloIds: string[]) => [...sloKeys.rules(), sloIds] as const,
activeAlerts: () => [...sloKeys.all, 'activeAlerts'] as const,
activeAlert: (sloIds: string[]) => [...sloKeys.activeAlerts(), sloIds] as const,
historicalSummaries: () => [...sloKeys.all, 'historicalSummary'] as const,
historicalSummary: (sloIds: string[]) => [...sloKeys.historicalSummaries(), sloIds] as const,
globalDiagnosis: () => [...sloKeys.all, 'globalDiagnosis'] as const,
};
export const compositeSloKeys = {
all: ['compositeSlo'] as const,
lists: () => [...compositeSloKeys.all, 'list'] as const,
list: (filters: CompositeSloKeyFilter) => [...compositeSloKeys.lists(), filters] as const,
details: () => [...compositeSloKeys.all, 'details'] as const,
detail: (sloId?: string) => [...compositeSloKeys.details(), sloId] as const,
rules: () => [...compositeSloKeys.all, 'rules'] as const,
rule: (sloIds: string[]) => [...compositeSloKeys.rules(), sloIds] as const,
activeAlerts: () => [...compositeSloKeys.all, 'activeAlerts'] as const,
activeAlert: (sloIds: string[]) => [...compositeSloKeys.activeAlerts(), sloIds] as const,
historicalSummaries: () => [...compositeSloKeys.all, 'historicalSummary'] as const,
historicalSummary: (sloIds: string[]) =>
[...compositeSloKeys.historicalSummaries(), sloIds] as const,
globalDiagnosis: () => [...compositeSloKeys.all, 'globalDiagnosis'] as const,
};
export type SloKeys = typeof compositeSloKeys | typeof sloKeys;