Skip to content

Commit e1a8f66

Browse files
committed
fix(autocomplete): should work properly if handler returns no entites
1 parent ddaf4cf commit e1a8f66

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/types/api/autocomplete.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export interface TQueryAutocomplete {
1010
}
1111

1212
interface TAutocompleteResult {
13-
Entities: TAutocompleteEntity[];
13+
Entities?: TAutocompleteEntity[];
1414
Total?: number;
1515
}
1616

src/utils/monaco/yql/generateSuggestions.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ const commonSuggestionEntities: AutocompleteEntityType[] = ['dir', 'unknown', 'e
7474
const directoryTypes: AutocompleteEntityType[] = ['dir', 'ext_sub_domain'];
7575

7676
function filterAutocompleteEntities(
77-
autocompleteEntities: TAutocompleteEntity[],
77+
autocompleteEntities: TAutocompleteEntity[] | undefined,
7878
suggestions: YQLEntity[],
7979
) {
8080
const suggestionsSet = suggestions.reduce((acc, el) => {
@@ -84,7 +84,7 @@ function filterAutocompleteEntities(
8484
}
8585
return acc;
8686
}, new Set(commonSuggestionEntities));
87-
return autocompleteEntities.filter(({Type}) => suggestionsSet.has(Type));
87+
return autocompleteEntities?.filter(({Type}) => suggestionsSet.has(Type));
8888
}
8989

9090
function wrapStringToBackticks(value: string) {
@@ -245,7 +245,7 @@ export async function generateColumnsSuggestion(
245245
{} as Record<string, string[]>,
246246
);
247247

248-
autocompleteResponse.Result.Entities.forEach((col) => {
248+
autocompleteResponse.Result.Entities?.forEach((col) => {
249249
if (!isAutocompleteColumn(col)) {
250250
return;
251251
}
@@ -353,6 +353,9 @@ export async function generateEntitiesSuggestion(
353353
const withBackticks = prefix?.startsWith('`');
354354
if (data.Success) {
355355
const filteredEntities = filterAutocompleteEntities(data.Result.Entities, suggestEntities);
356+
if (!filteredEntities) {
357+
return [];
358+
}
356359
return filteredEntities.reduce((acc, {Name, Type}) => {
357360
const isDir = directoryTypes.includes(Type);
358361
const label = isDir ? `${Name}/` : Name;

0 commit comments

Comments
 (0)