7
7
*/
8
8
9
9
import { i18n } from '@kbn/i18n' ;
10
- import { KBN_FIELD_TYPES , ES_FIELD_TYPES } from '@kbn/data-plugin/public' ;
11
-
12
- export const KNOWN_FIELD_TYPES = {
13
- BOOLEAN : KBN_FIELD_TYPES . BOOLEAN ,
14
- CONFLICT : KBN_FIELD_TYPES . CONFLICT ,
15
- DATE : KBN_FIELD_TYPES . DATE ,
16
- GEO_POINT : KBN_FIELD_TYPES . GEO_POINT ,
17
- GEO_SHAPE : KBN_FIELD_TYPES . GEO_SHAPE ,
18
- IP : KBN_FIELD_TYPES . IP ,
19
- KEYWORD : ES_FIELD_TYPES . KEYWORD ,
20
- MURMUR3 : KBN_FIELD_TYPES . MURMUR3 ,
21
- NUMBER : KBN_FIELD_TYPES . NUMBER ,
22
- NESTED : KBN_FIELD_TYPES . NESTED ,
23
- SOURCE : 'source' ,
24
- STRING : KBN_FIELD_TYPES . STRING ,
25
- TEXT : ES_FIELD_TYPES . TEXT ,
26
- VERSION : ES_FIELD_TYPES . VERSION ,
27
- } ;
10
+ import { KBN_FIELD_TYPES } from '@kbn/data-plugin/public' ;
11
+ import { KNOWN_FIELD_TYPES } from '../../common/field_types' ;
28
12
29
13
export const UNKNOWN_FIELD_TYPE_MESSAGE = i18n . translate (
30
14
'discover.fieldNameIcons.unknownFieldAriaLabel' ,
@@ -34,7 +18,21 @@ export const UNKNOWN_FIELD_TYPE_MESSAGE = i18n.translate(
34
18
) ;
35
19
36
20
export function getFieldTypeName ( type ?: string ) {
37
- switch ( type ) {
21
+ if ( ! type || type === KBN_FIELD_TYPES . UNKNOWN ) {
22
+ return UNKNOWN_FIELD_TYPE_MESSAGE ;
23
+ }
24
+
25
+ if ( type === 'source' ) {
26
+ // TODO: check if we can remove this logic as outdated
27
+
28
+ // Note that this type is currently not provided, type for _source is undefined
29
+ return i18n . translate ( 'discover.fieldNameIcons.sourceFieldAriaLabel' , {
30
+ defaultMessage : 'Source field' ,
31
+ } ) ;
32
+ }
33
+
34
+ const knownType : KNOWN_FIELD_TYPES = type as KNOWN_FIELD_TYPES ;
35
+ switch ( knownType ) {
38
36
case KNOWN_FIELD_TYPES . BOOLEAN :
39
37
return i18n . translate ( 'discover.fieldNameIcons.booleanAriaLabel' , {
40
38
defaultMessage : 'Boolean field' ,
@@ -47,6 +45,10 @@ export function getFieldTypeName(type?: string) {
47
45
return i18n . translate ( 'discover.fieldNameIcons.dateFieldAriaLabel' , {
48
46
defaultMessage : 'Date field' ,
49
47
} ) ;
48
+ case KNOWN_FIELD_TYPES . DATE_RANGE :
49
+ return i18n . translate ( 'discover.fieldNameIcons.dateRangeFieldAriaLabel' , {
50
+ defaultMessage : 'Date range field' ,
51
+ } ) ;
50
52
case KNOWN_FIELD_TYPES . GEO_POINT :
51
53
return i18n . translate ( 'discover.fieldNameIcons.geoPointFieldAriaLabel' , {
52
54
defaultMessage : 'Geo point field' ,
@@ -55,10 +57,18 @@ export function getFieldTypeName(type?: string) {
55
57
return i18n . translate ( 'discover.fieldNameIcons.geoShapeFieldAriaLabel' , {
56
58
defaultMessage : 'Geo shape field' ,
57
59
} ) ;
60
+ case KNOWN_FIELD_TYPES . HISTOGRAM :
61
+ return i18n . translate ( 'discover.fieldNameIcons.histogramFieldAriaLabel' , {
62
+ defaultMessage : 'Histogram field' ,
63
+ } ) ;
58
64
case KNOWN_FIELD_TYPES . IP :
59
65
return i18n . translate ( 'discover.fieldNameIcons.ipAddressFieldAriaLabel' , {
60
66
defaultMessage : 'IP address field' ,
61
67
} ) ;
68
+ case KNOWN_FIELD_TYPES . IP_RANGE :
69
+ return i18n . translate ( 'discover.fieldNameIcons.ipRangeFieldAriaLabel' , {
70
+ defaultMessage : 'IP range field' ,
71
+ } ) ;
62
72
case KNOWN_FIELD_TYPES . MURMUR3 :
63
73
return i18n . translate ( 'discover.fieldNameIcons.murmur3FieldAriaLabel' , {
64
74
defaultMessage : 'Murmur3 field' ,
@@ -67,11 +77,6 @@ export function getFieldTypeName(type?: string) {
67
77
return i18n . translate ( 'discover.fieldNameIcons.numberFieldAriaLabel' , {
68
78
defaultMessage : 'Number field' ,
69
79
} ) ;
70
- case KNOWN_FIELD_TYPES . SOURCE :
71
- // Note that this type is currently not provided, type for _source is undefined
72
- return i18n . translate ( 'discover.fieldNameIcons.sourceFieldAriaLabel' , {
73
- defaultMessage : 'Source field' ,
74
- } ) ;
75
80
case KNOWN_FIELD_TYPES . STRING :
76
81
return i18n . translate ( 'discover.fieldNameIcons.stringFieldAriaLabel' , {
77
82
defaultMessage : 'String field' ,
@@ -93,6 +98,8 @@ export function getFieldTypeName(type?: string) {
93
98
defaultMessage : 'Version field' ,
94
99
} ) ;
95
100
default :
96
- return UNKNOWN_FIELD_TYPE_MESSAGE ;
101
+ // If you see a typescript error here, that's a sign that there are missing switch cases ^^
102
+ const _exhaustiveCheck : never = knownType ;
103
+ return knownType || _exhaustiveCheck ;
97
104
}
98
105
}
0 commit comments