-
Notifications
You must be signed in to change notification settings - Fork 628
/
Copy pathconst.ts
122 lines (108 loc) · 4 KB
/
const.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import * as _ from 'lodash';
import { SpecCapability, StatusCapability } from './types';
export const REGEXP_K8S_RESOURCE_CAPABILITY = _.escapeRegExp(SpecCapability.k8sResourcePrefix);
export const REGEXP_FIELD_DEPENDENCY_CAPABILITY = _.escapeRegExp(SpecCapability.fieldDependency);
export const REGEXP_SELECT_CAPABILITY = _.escapeRegExp(SpecCapability.select);
export const REGEXP_K8S_RESOURCE_SUFFIX = new RegExp(
`^${REGEXP_K8S_RESOURCE_CAPABILITY}(?:core[:~]v1[:~])?([^?]*)[?]?(.*)$`,
);
export const REGEXP_SELECT_OPTION = new RegExp(`${REGEXP_SELECT_CAPABILITY}(.*)$`);
export const REGEXP_FIELD_DEPENDENCY_PATH_VALUE = new RegExp(
`^${REGEXP_FIELD_DEPENDENCY_CAPABILITY}([^:]*):(.*)$`,
);
// Matches a path string containing an array reference. Captures
// the segment before the array reference, and the segment after.
// For example:
// path[0].element.property -> [path, element.property]
export const REGEXP_ARRAY_PATH = /^(.*)\[\d+\]\.?(.*)$/;
// Matches a path string with multiple array references.
// e.g.: nested[0].array[0].property
export const REGEXP_NESTED_ARRAY_PATH = /^.*\[\d+\]\.?.*\[\d+\]\.?.*$/;
// Captures the root segment of a path string, and all desscendent segments as
// a single string.
// For example:
// 'this.is.a.really.long.path' -> ['this', 'is.a.really.long.path'])
// 'this' -> ['this']
export const REGEXP_CAPTURE_GROUP_SUBGROUP = /^([^.]*)\.?(.*)$/;
export const DEPRECATED_CAPABILITIES: SpecCapability[] = [
SpecCapability.arrayFieldGroup,
SpecCapability.fieldGroup,
SpecCapability.namespaceSelector,
SpecCapability.label,
];
export const COMMON_COMPATIBLE_CAPABILITIES: SpecCapability[] = [
SpecCapability.advanced,
SpecCapability.fieldDependency,
SpecCapability.hidden,
// TODO remove when deprecated descriptors are no longer supported
SpecCapability.arrayFieldGroup,
SpecCapability.fieldGroup,
// END TODO
];
export const OBJECT_COMPATIBLE_CAPABILITIES: (SpecCapability | StatusCapability)[] = [
StatusCapability.podStatuses,
SpecCapability.updateStrategy,
SpecCapability.nodeAffinity,
SpecCapability.podAffinity,
SpecCapability.podAntiAffinity,
SpecCapability.resourceRequirements,
SpecCapability.selector,
// TODO remove when deprecated descriptors are no longer supported
SpecCapability.label,
SpecCapability.namespaceSelector,
// END TODO
];
export const ARRAY_COMPATIBLE_CAPABILITIES: (SpecCapability | StatusCapability)[] = [
SpecCapability.endpointList,
StatusCapability.conditions,
];
export const PRIMITIVE_COMPATIBLE_CAPABILITIES: (SpecCapability | StatusCapability)[] = [
StatusCapability.k8sPhase,
StatusCapability.k8sPhaseReason,
SpecCapability.k8sResourcePrefix,
SpecCapability.imagePullPolicy,
SpecCapability.podCount,
SpecCapability.select,
StatusCapability.w3Link,
SpecCapability.booleanSwitch,
SpecCapability.checkbox,
SpecCapability.password,
SpecCapability.text,
StatusCapability.text,
SpecCapability.number,
// TODO remove when deprecated descriptors are no longer supported
SpecCapability.label,
// END TODO
];
export const CAPABILITY_SORT_ORDER: (SpecCapability | StatusCapability)[] = [
// Supported in details view and has a widget
SpecCapability.hidden,
SpecCapability.endpointList,
StatusCapability.conditions,
SpecCapability.resourceRequirements,
SpecCapability.updateStrategy,
StatusCapability.podStatuses,
SpecCapability.selector,
SpecCapability.k8sResourcePrefix,
SpecCapability.podCount,
SpecCapability.password,
StatusCapability.k8sPhaseReason,
SpecCapability.booleanSwitch,
SpecCapability.checkbox,
StatusCapability.w3Link,
// Supported in details view with no widget
SpecCapability.select,
SpecCapability.imagePullPolicy,
StatusCapability.k8sPhase,
SpecCapability.text,
StatusCapability.text,
SpecCapability.number,
// Unsupported on details view
SpecCapability.podAntiAffinity,
SpecCapability.podAffinity,
SpecCapability.nodeAffinity,
// Always last
SpecCapability.advanced,
SpecCapability.fieldDependency,
...DEPRECATED_CAPABILITIES,
];