Skip to content

Commit a8b1b9e

Browse files
[Index management] Update TemplateDeserialized interface (#78913)
Co-authored-by: Kibana Machine <[email protected]>
1 parent f960e89 commit a8b1b9e

File tree

6 files changed

+22
-23
lines changed

6 files changed

+22
-23
lines changed

x-pack/plugins/index_management/__jest__/client_integration/home/index_templates_tab.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ describe('Index Templates tab', () => {
127127
const indexTemplate = templates[i];
128128
const { name, indexPatterns, ilmPolicy, composedOf, template } = indexTemplate;
129129

130-
const hasContent = !!template.settings || !!template.mappings || !!template.aliases;
130+
const hasContent = !!template?.settings || !!template?.mappings || !!template?.aliases;
131131
const ilmPolicyName = ilmPolicy && ilmPolicy.name ? ilmPolicy.name : '';
132132
const composedOfString = composedOf ? composedOf.join(',') : '';
133133

@@ -152,7 +152,7 @@ describe('Index Templates tab', () => {
152152
const legacyIndexTemplate = legacyTemplates[i];
153153
const { name, indexPatterns, ilmPolicy, template } = legacyIndexTemplate;
154154

155-
const hasContent = !!template.settings || !!template.mappings || !!template.aliases;
155+
const hasContent = !!template?.settings || !!template?.mappings || !!template?.aliases;
156156
const ilmPolicyName = ilmPolicy && ilmPolicy.name ? ilmPolicy.name : '';
157157

158158
try {

x-pack/plugins/index_management/__jest__/client_integration/index_template_wizard/template_clone.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ describe('<TemplateClone />', () => {
112112
name: `${templateToClone.name}-copy`,
113113
indexPatterns: DEFAULT_INDEX_PATTERNS,
114114
};
115-
// @ts-expect-error
115+
116116
delete expected.template; // As no settings, mappings or aliases have been defined, no "template" param is sent
117117

118118
expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual(expected);

x-pack/plugins/index_management/common/lib/template_serialization.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export function deserializeTemplateList(
8585
): TemplateListItem[] {
8686
return indexTemplates.map(({ name, index_template: templateSerialized }) => {
8787
const {
88-
template: { mappings, settings, aliases },
88+
template: { mappings, settings, aliases } = {},
8989
...deserializedTemplate
9090
} = deserializeTemplate({ name, ...templateSerialized }, cloudManagedTemplatePrefix);
9191

@@ -149,7 +149,7 @@ export function deserializeLegacyTemplateList(
149149
): TemplateListItem[] {
150150
return Object.entries(indexTemplatesByName).map(([name, templateSerialized]) => {
151151
const {
152-
template: { mappings, settings, aliases },
152+
template: { mappings, settings, aliases } = {},
153153
...deserializedTemplate
154154
} = deserializeLegacyTemplate({ name, ...templateSerialized }, cloudManagedTemplatePrefix);
155155

x-pack/plugins/index_management/common/types/templates.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { Mappings } from './mappings';
1313
*/
1414
export interface TemplateSerialized {
1515
index_patterns: string[];
16-
template: {
16+
template?: {
1717
settings?: IndexSettings;
1818
aliases?: Aliases;
1919
mappings?: Mappings;
@@ -33,7 +33,7 @@ export interface TemplateSerialized {
3333
export interface TemplateDeserialized {
3434
name: string;
3535
indexPatterns: string[];
36-
template: {
36+
template?: {
3737
settings?: IndexSettings;
3838
aliases?: Aliases;
3939
mappings?: Mappings;

x-pack/plugins/index_management/public/application/components/template_form/template_form.tsx

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ export const TemplateForm = ({
117117
};
118118

119119
const {
120-
template: { settings, mappings, aliases },
120+
template: { settings, mappings, aliases } = {},
121121
composedOf,
122122
_kbnMeta,
123123
...logistics
@@ -170,18 +170,19 @@ export const TemplateForm = ({
170170
const cleanupTemplateObject = (template: TemplateDeserialized) => {
171171
const outputTemplate = { ...template };
172172

173-
if (outputTemplate.template.settings === undefined) {
174-
delete outputTemplate.template.settings;
175-
}
176-
if (outputTemplate.template.mappings === undefined) {
177-
delete outputTemplate.template.mappings;
178-
}
179-
if (outputTemplate.template.aliases === undefined) {
180-
delete outputTemplate.template.aliases;
181-
}
182-
if (Object.keys(outputTemplate.template).length === 0) {
183-
// @ts-expect-error
184-
delete outputTemplate.template;
173+
if (outputTemplate.template) {
174+
if (outputTemplate.template.settings === undefined) {
175+
delete outputTemplate.template.settings;
176+
}
177+
if (outputTemplate.template.mappings === undefined) {
178+
delete outputTemplate.template.mappings;
179+
}
180+
if (outputTemplate.template.aliases === undefined) {
181+
delete outputTemplate.template.aliases;
182+
}
183+
if (Object.keys(outputTemplate.template).length === 0) {
184+
delete outputTemplate.template;
185+
}
185186
}
186187

187188
return outputTemplate;

x-pack/plugins/index_management/public/application/sections/home/template_list/template_details/template_details_content.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,7 @@ export const TemplateDetailsContent = ({
161161
}
162162

163163
if (templateDetails) {
164-
const {
165-
template: { settings, mappings, aliases },
166-
} = templateDetails;
164+
const { template: { settings, mappings, aliases } = {} } = templateDetails;
167165

168166
const tabToComponentMap: Record<string, React.ReactNode> = {
169167
[SUMMARY_TAB_ID]: <TabSummary templateDetails={templateDetails} />,

0 commit comments

Comments
 (0)