/
indicesPutTemplate.ts
78 lines (66 loc) · 2.06 KB
/
indicesPutTemplate.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
import { ElasticsearchDistribution, ClientParams, ClientMetadata } from '@terascope/types';
import { ensureNoTypeInMapping, ensureTypeInMapping } from './helper-utils';
export function convertIndicesPutTemplateParams(
params: ClientParams.IndicesPutTemplateParams,
distributionMeta: ClientMetadata
) {
const {
majorVersion,
distribution,
version,
} = distributionMeta;
if (distribution === ElasticsearchDistribution.elasticsearch) {
if (majorVersion === 8) {
const {
body,
include_type_name,
...parsedParams
} = params;
return {
index_patterns: body?.index_patterns,
aliases: body?.aliases,
mappings: ensureNoTypeInMapping(body?.mappings),
settings: body?.settings,
...parsedParams
};
}
if (majorVersion === 7) {
return params;
}
if (majorVersion === 6) {
const {
body,
include_type_name,
...parsedParams
} = params;
return {
include_type_name: true,
body: ensureTypeInMapping(body),
...parsedParams
};
}
}
if (distribution === ElasticsearchDistribution.opensearch) {
if (majorVersion === 1) {
return params;
}
if (majorVersion === 2) {
const {
include_type_name,
master_timeout,
body,
...parsedParams
} = params;
const newBody = {
...body,
mappings: ensureNoTypeInMapping(body?.mappings),
};
return {
...parsedParams,
body: newBody,
...(master_timeout !== undefined && { cluster_manager_timeout: master_timeout }),
};
}
}
throw new Error(`unsupported ${distribution} version: ${version}`);
}