diff --git a/src/types/api/autocomplete.ts b/src/types/api/autocomplete.ts index dad60f580e..c0d4f67cf9 100644 --- a/src/types/api/autocomplete.ts +++ b/src/types/api/autocomplete.ts @@ -10,7 +10,7 @@ export interface TQueryAutocomplete { } interface TAutocompleteResult { - Entities: TAutocompleteEntity[]; + Entities?: TAutocompleteEntity[]; Total?: number; } diff --git a/src/utils/monaco/yql/generateSuggestions.ts b/src/utils/monaco/yql/generateSuggestions.ts index efe4fa3dcd..0f33a14224 100644 --- a/src/utils/monaco/yql/generateSuggestions.ts +++ b/src/utils/monaco/yql/generateSuggestions.ts @@ -74,7 +74,7 @@ const commonSuggestionEntities: AutocompleteEntityType[] = ['dir', 'unknown', 'e const directoryTypes: AutocompleteEntityType[] = ['dir', 'ext_sub_domain']; function filterAutocompleteEntities( - autocompleteEntities: TAutocompleteEntity[], + autocompleteEntities: TAutocompleteEntity[] | undefined, suggestions: YQLEntity[], ) { const suggestionsSet = suggestions.reduce((acc, el) => { @@ -84,7 +84,7 @@ function filterAutocompleteEntities( } return acc; }, new Set(commonSuggestionEntities)); - return autocompleteEntities.filter(({Type}) => suggestionsSet.has(Type)); + return autocompleteEntities?.filter(({Type}) => suggestionsSet.has(Type)); } function wrapStringToBackticks(value: string) { @@ -245,7 +245,7 @@ export async function generateColumnsSuggestion( {} as Record, ); - autocompleteResponse.Result.Entities.forEach((col) => { + autocompleteResponse.Result.Entities?.forEach((col) => { if (!isAutocompleteColumn(col)) { return; } @@ -353,6 +353,9 @@ export async function generateEntitiesSuggestion( const withBackticks = prefix?.startsWith('`'); if (data.Success) { const filteredEntities = filterAutocompleteEntities(data.Result.Entities, suggestEntities); + if (!filteredEntities) { + return []; + } return filteredEntities.reduce((acc, {Name, Type}) => { const isDir = directoryTypes.includes(Type); const label = isDir ? `${Name}/` : Name;