diff --git a/src/plugins/data/common/index_patterns/index_patterns/index_patterns.ts b/src/plugins/data/common/index_patterns/index_patterns/index_patterns.ts index 1326ebdbf9d6f8f..9516cc483acd709 100644 --- a/src/plugins/data/common/index_patterns/index_patterns/index_patterns.ts +++ b/src/plugins/data/common/index_patterns/index_patterns/index_patterns.ts @@ -160,11 +160,16 @@ export class IndexPatternsService { * @param title {string} * @returns {Promise} */ - findByTitle = async (title: string) => { - const savedObject = await findByTitle(this.savedObjectsClient, title); + findByTitle = async (title: string, refresh: boolean = false) => { + if (!this.savedObjectsCache || refresh) { + await this.refreshSavedObjectsCache(); + } + if (this.savedObjectsCache) { + const so = this.savedObjectsCache.find((obj) => obj.attributes.title === title); - if (savedObject?.id) { - return this.get(savedObject?.id); + if (so?.id) { + return this.get(so.id); + } } }; diff --git a/src/plugins/data/common/index_patterns/utils.ts b/src/plugins/data/common/index_patterns/utils.ts index 11501f5a4bbf5ea..b7e1f28d5d60f33 100644 --- a/src/plugins/data/common/index_patterns/utils.ts +++ b/src/plugins/data/common/index_patterns/utils.ts @@ -17,8 +17,8 @@ * under the License. */ -import { find } from 'lodash'; -import { SavedObjectsClientCommon, SavedObject } from '..'; +import type { IndexPatternSavedObjectAttrs } from './index_patterns'; +import type { SavedObjectsClientCommon } from '../types'; /** * Returns an object matching a given title @@ -29,7 +29,7 @@ import { SavedObjectsClientCommon, SavedObject } from '..'; */ export async function findByTitle(client: SavedObjectsClientCommon, title: string) { if (title) { - const savedObjects = await client.find({ + const savedObjects = await client.find({ type: 'index-pattern', perPage: 10, search: `"${title}"`, @@ -37,9 +37,6 @@ export async function findByTitle(client: SavedObjectsClientCommon, title: strin fields: ['title'], }); - return find( - savedObjects, - (obj: SavedObject) => obj.attributes.title.toLowerCase() === title.toLowerCase() - ); + return savedObjects.find((obj) => obj.attributes.title.toLowerCase() === title.toLowerCase()); } }