-
Notifications
You must be signed in to change notification settings - Fork 13
/
interfaces.ts
114 lines (96 loc) · 2.65 KB
/
interfaces.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
import {
ESTypeMapping, ESMapping,
availableFieldTypes, DataTypeFieldConfig,
DataTypeVersion, dataTypeVersions,
DataTypeFields, DataTypeConfig,
DeprecatedFieldType,
FieldType,
ClientMetadata,
} from '@terascope/types';
import BaseType from './types/base-type';
/** An object of base fields with their child fields */
export type GroupedFields = Record<string, string[]>;
export type GraphQLTypesResult = {
baseType: string;
inputType?: string;
customTypes: string[];
};
export type GraphQLOptions = {
typeName?: string;
description?: string;
customTypes?: string[];
references?: string[];
useSnakeCase?: boolean;
createInputType?: boolean;
includeAllInputFields?: boolean;
};
export type MergeGraphQLOptions = {
removeScalars?: boolean;
references?: GraphQLTypeReferences;
customTypes?: string[];
createInputTypes?: boolean;
useSnakeCase?: boolean;
includeAllInputFields?: boolean;
};
export type GraphQLTypeReferences = { __all?: string[] } & {
[typeName: string]: string[];
};
/**
* @deprecated use `FieldType` from `@terascope/types`
*/
export type AvailableType = DeprecatedFieldType;
/**
* @deprecated use `availableFieldTypes` from `@terascope/types`
*/
export const AvailableTypes = availableFieldTypes as ReadonlyArray<DeprecatedFieldType>;
/**
* @deprecated use `DataTypeVersion` from `@terascope/types`
*/
export type AvailableVersion = DataTypeVersion;
/**
* @deprecated use `dataTypeVersions` from `@terascope/types`
*/
export const AvailableVersions = dataTypeVersions;
/**
* @deprecated use `DataTypeFieldConfig` from `@terascope/types`
*/
export type FieldTypeConfig = DataTypeFieldConfig;
type ActualType = Record<FieldType, {
new (field: string, config: DataTypeFieldConfig): BaseType;
}>;
export type DataTypeMapping = { [key: string]: ActualType };
/**
* @deprecated use `DataTypeFields` from `@terascope/types`
*/
export type TypeConfigFields = DataTypeFields;
export type { DataTypeConfig };
export interface GraphQLType {
type: string;
customTypes: string[];
}
export interface TypeESMapping {
mapping: {
[key: string]: ESTypeMapping;
};
analyzer?: {
[key: string]: any;
};
tokenizer?: {
[key: string]: any;
};
}
export interface ESMappingOptions extends ClientMetadata {
/**
* The elasticsearch index type
*/
typeName?: string;
/**
* Any elasticsearch mapping overrides,
* uses a deep assignment so nested fields can be overwritten.
*/
overrides?: Partial<ESMapping>;
/**
* Any metadata to add to the index mapping
*/
_meta?: Record<string, any>;
}