From 1be8334b1230602334203440a13ae634e42cdaac Mon Sep 17 00:00:00 2001 From: Luke Elmers Date: Mon, 5 Aug 2019 16:44:11 -0600 Subject: [PATCH 1/3] Make the `refresh` param in IndexPatterns get methods optional. --- src/legacy/ui/public/index_patterns/index_patterns.ts | 6 +++--- .../components/step_details/step_details_form.tsx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/legacy/ui/public/index_patterns/index_patterns.ts b/src/legacy/ui/public/index_patterns/index_patterns.ts index 6f22c1c2a73ea..77c2719300fc0 100644 --- a/src/legacy/ui/public/index_patterns/index_patterns.ts +++ b/src/legacy/ui/public/index_patterns/index_patterns.ts @@ -49,7 +49,7 @@ export class IndexPatterns { })).savedObjects; } - getIds = async (refresh: boolean) => { + getIds = async (refresh: boolean = false) => { if (!this.savedObjectsCache || refresh) { await this.refreshSavedObjectsCache(); } @@ -58,7 +58,7 @@ export class IndexPatterns { } }; - getTitles = async (refresh: boolean) => { + getTitles = async (refresh: boolean = false) => { if (!this.savedObjectsCache || refresh) { await this.refreshSavedObjectsCache(); } @@ -67,7 +67,7 @@ export class IndexPatterns { } }; - getFields = async (fields: string[], refresh: boolean) => { + getFields = async (fields: string[], refresh: boolean = false) => { if (!this.savedObjectsCache || refresh) { await this.refreshSavedObjectsCache(); } diff --git a/x-pack/legacy/plugins/ml/public/data_frame/pages/data_frame_new_pivot/components/step_details/step_details_form.tsx b/x-pack/legacy/plugins/ml/public/data_frame/pages/data_frame_new_pivot/components/step_details/step_details_form.tsx index f5e97c43b6dda..ed44e75ddbe8c 100644 --- a/x-pack/legacy/plugins/ml/public/data_frame/pages/data_frame_new_pivot/components/step_details/step_details_form.tsx +++ b/x-pack/legacy/plugins/ml/public/data_frame/pages/data_frame_new_pivot/components/step_details/step_details_form.tsx @@ -118,7 +118,7 @@ export const StepDetailsForm: SFC = React.memo(({ overrides = {}, onChang } try { - setIndexPatternTitles((await kibanaContext.indexPatterns.getTitles(false)) as string[]); + setIndexPatternTitles((await kibanaContext.indexPatterns.getTitles()) as string[]); } catch (e) { toastNotifications.addDanger( i18n.translate('xpack.ml.dataframe.stepDetailsForm.errorGettingIndexPatternTitles', { From 62fb97f6fb65c87925f002bfec9c5b6c4af36007 Mon Sep 17 00:00:00 2001 From: Luke Elmers Date: Mon, 5 Aug 2019 17:15:23 -0600 Subject: [PATCH 2/3] Replace IndexPatterns usage of `_.get` with `idx`. --- src/legacy/ui/public/index_patterns/index_patterns.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/legacy/ui/public/index_patterns/index_patterns.ts b/src/legacy/ui/public/index_patterns/index_patterns.ts index 77c2719300fc0..b888a40be59ef 100644 --- a/src/legacy/ui/public/index_patterns/index_patterns.ts +++ b/src/legacy/ui/public/index_patterns/index_patterns.ts @@ -17,6 +17,7 @@ * under the License. */ +import { idx } from '@kbn/elastic-idx'; // @ts-ignore import { fieldFormats } from '../registry/field_formats'; @@ -34,7 +35,7 @@ export class IndexPatterns { private config: UiSettingsClient; private savedObjectsClient: SavedObjectsClient; - private savedObjectsCache?: Array> | null; + private savedObjectsCache?: Array>> | null; constructor(config: UiSettingsClient, savedObjectsClient: SavedObjectsClient) { this.config = config; @@ -54,7 +55,7 @@ export class IndexPatterns { await this.refreshSavedObjectsCache(); } if (this.savedObjectsCache) { - return this.savedObjectsCache.map(obj => _.get(obj, 'id')); + return this.savedObjectsCache.map(obj => idx(obj, _ => _.id)); } }; @@ -63,7 +64,7 @@ export class IndexPatterns { await this.refreshSavedObjectsCache(); } if (this.savedObjectsCache) { - return this.savedObjectsCache.map(obj => _.get(obj, 'attributes.title')); + return this.savedObjectsCache.map(obj => idx(obj, _ => _.attributes.title)); } }; @@ -72,9 +73,9 @@ export class IndexPatterns { await this.refreshSavedObjectsCache(); } if (this.savedObjectsCache) { - return this.savedObjectsCache.map(obj => { + return this.savedObjectsCache.map((obj: Record) => { const result: Record = {}; - fields.forEach(f => (result[f] = _.get(obj, f) || _.get(obj, `attributes.${f}`))); + fields.forEach((f: string) => (result[f] = obj[f] || idx(obj, _ => _.attributes[f]))); return result; }); } From 861fb268d3b449cab026ffe903a74fff2b3aae13 Mon Sep 17 00:00:00 2001 From: Luke Elmers Date: Mon, 5 Aug 2019 17:21:26 -0600 Subject: [PATCH 3/3] Ensure methods always return a value. --- .../public/index_patterns/index_patterns.ts | 25 +++++++++++-------- .../step_details/step_details_form.tsx | 2 +- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/legacy/ui/public/index_patterns/index_patterns.ts b/src/legacy/ui/public/index_patterns/index_patterns.ts index b888a40be59ef..ca394dd133481 100644 --- a/src/legacy/ui/public/index_patterns/index_patterns.ts +++ b/src/legacy/ui/public/index_patterns/index_patterns.ts @@ -54,31 +54,34 @@ export class IndexPatterns { if (!this.savedObjectsCache || refresh) { await this.refreshSavedObjectsCache(); } - if (this.savedObjectsCache) { - return this.savedObjectsCache.map(obj => idx(obj, _ => _.id)); + if (!this.savedObjectsCache) { + return []; } + return this.savedObjectsCache.map(obj => idx(obj, _ => _.id)); }; - getTitles = async (refresh: boolean = false) => { + getTitles = async (refresh: boolean = false): Promise => { if (!this.savedObjectsCache || refresh) { await this.refreshSavedObjectsCache(); } - if (this.savedObjectsCache) { - return this.savedObjectsCache.map(obj => idx(obj, _ => _.attributes.title)); + if (!this.savedObjectsCache) { + return []; } + return this.savedObjectsCache.map(obj => idx(obj, _ => _.attributes.title)); }; getFields = async (fields: string[], refresh: boolean = false) => { if (!this.savedObjectsCache || refresh) { await this.refreshSavedObjectsCache(); } - if (this.savedObjectsCache) { - return this.savedObjectsCache.map((obj: Record) => { - const result: Record = {}; - fields.forEach((f: string) => (result[f] = obj[f] || idx(obj, _ => _.attributes[f]))); - return result; - }); + if (!this.savedObjectsCache) { + return []; } + return this.savedObjectsCache.map((obj: Record) => { + const result: Record = {}; + fields.forEach((f: string) => (result[f] = obj[f] || idx(obj, _ => _.attributes[f]))); + return result; + }); }; clearCache = (id?: string) => { diff --git a/x-pack/legacy/plugins/ml/public/data_frame/pages/data_frame_new_pivot/components/step_details/step_details_form.tsx b/x-pack/legacy/plugins/ml/public/data_frame/pages/data_frame_new_pivot/components/step_details/step_details_form.tsx index ed44e75ddbe8c..19d243363a9a2 100644 --- a/x-pack/legacy/plugins/ml/public/data_frame/pages/data_frame_new_pivot/components/step_details/step_details_form.tsx +++ b/x-pack/legacy/plugins/ml/public/data_frame/pages/data_frame_new_pivot/components/step_details/step_details_form.tsx @@ -118,7 +118,7 @@ export const StepDetailsForm: SFC = React.memo(({ overrides = {}, onChang } try { - setIndexPatternTitles((await kibanaContext.indexPatterns.getTitles()) as string[]); + setIndexPatternTitles(await kibanaContext.indexPatterns.getTitles()); } catch (e) { toastNotifications.addDanger( i18n.translate('xpack.ml.dataframe.stepDetailsForm.errorGettingIndexPatternTitles', {