Skip to content

Commit d3a2d9f

Browse files
authored
kuery_autocomplete -> convert remaining items to TS/Jest (#56316) (#56471)
* kuery_autocomplete -> convert remaining items to TS/Jest Closes #55487 * QuerySuggestionsTypes rename values * remove ref to npStart * conjunction.test.ts it -> test * remove ts-ignore
1 parent 4dbe14d commit d3a2d9f

File tree

34 files changed

+915
-673
lines changed

34 files changed

+915
-673
lines changed

src/plugins/data/common/es_query/kuery/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ export interface KueryParseOptions {
3333
startRule: string;
3434
allowLeadingWildcards: boolean;
3535
errorOnLuceneSyntax: boolean;
36+
cursorSymbol?: string;
37+
parseCursor?: boolean;
3638
}
3739

3840
export { nodeTypes } from './node_types';

src/plugins/data/public/autocomplete/autocomplete_service.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,9 @@ export class AutocompleteService {
7575
this.querySuggestionProviders.clear();
7676
}
7777
}
78+
79+
/** @public **/
80+
export type AutocompleteSetup = ReturnType<AutocompleteService['setup']>;
81+
82+
/** @public **/
83+
export type AutocompleteStart = ReturnType<AutocompleteService['start']>;

src/plugins/data/public/autocomplete/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19+
import * as autocomplete from './static';
20+
export { AutocompleteService, AutocompleteSetup, AutocompleteStart } from './autocomplete_service';
1921

20-
export { AutocompleteService } from './autocomplete_service';
21-
export { QuerySuggestion, QuerySuggestionType, QuerySuggestionsGetFn } from './types';
22+
export { autocomplete };

src/plugins/data/public/autocomplete/providers/query_suggestion_provider.ts

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,20 @@
1919

2020
import { IFieldType, IIndexPattern } from '../../../common/index_patterns';
2121

22-
export type QuerySuggestionType = 'field' | 'value' | 'operator' | 'conjunction' | 'recentSearch';
22+
export enum QuerySuggestionsTypes {
23+
Field = 'field',
24+
Value = 'value',
25+
Operator = 'operator',
26+
Conjunction = 'conjunction',
27+
RecentSearch = 'recentSearch',
28+
}
2329

2430
export type QuerySuggestionsGetFn = (
2531
args: QuerySuggestionsGetFnArgs
2632
) => Promise<QuerySuggestion[]> | undefined;
2733

28-
interface QuerySuggestionsGetFnArgs {
34+
/** @public **/
35+
export interface QuerySuggestionsGetFnArgs {
2936
language: string;
3037
indexPatterns: IIndexPattern[];
3138
query: string;
@@ -35,22 +42,21 @@ interface QuerySuggestionsGetFnArgs {
3542
boolFilter?: any;
3643
}
3744

38-
interface BasicQuerySuggestion {
39-
type: QuerySuggestionType;
40-
description?: string;
45+
/** @public **/
46+
export interface BasicQuerySuggestion {
47+
type: QuerySuggestionsTypes;
48+
description?: string | JSX.Element;
4149
end: number;
4250
start: number;
4351
text: string;
4452
cursorIndex?: number;
4553
}
4654

47-
interface FieldQuerySuggestion extends BasicQuerySuggestion {
48-
type: 'field';
55+
/** @public **/
56+
export interface FieldQuerySuggestion extends BasicQuerySuggestion {
57+
type: QuerySuggestionsTypes.Field;
4958
field: IFieldType;
5059
}
5160

52-
// A union type allows us to do easy type guards in the code. For example, if I want to ensure I'm
53-
// working with a FieldAutocompleteSuggestion, I can just do `if ('field' in suggestion)` and the
54-
// TypeScript compiler will narrow the type to the parts of the union that have a field prop.
5561
/** @public **/
5662
export type QuerySuggestion = BasicQuerySuggestion | FieldQuerySuggestion;

src/plugins/data/public/autocomplete/types.ts renamed to src/plugins/data/public/autocomplete/static.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,11 @@
1717
* under the License.
1818
*/
1919

20-
import { AutocompleteService } from './autocomplete_service';
21-
22-
/** @public **/
23-
export type AutocompleteSetup = ReturnType<AutocompleteService['setup']>;
24-
25-
/** @public **/
26-
export type AutocompleteStart = ReturnType<AutocompleteService['start']>;
27-
28-
/** @public **/
2920
export {
3021
QuerySuggestion,
22+
QuerySuggestionsTypes,
3123
QuerySuggestionsGetFn,
32-
QuerySuggestionType,
24+
QuerySuggestionsGetFnArgs,
25+
BasicQuerySuggestion,
26+
FieldQuerySuggestion,
3327
} from './providers/query_suggestion_provider';

src/plugins/data/public/index.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
*/
1919

2020
import { PluginInitializerContext } from '../../../core/public';
21-
import * as autocomplete from './autocomplete';
2221

2322
export function plugin(initializerContext: PluginInitializerContext) {
2423
return new DataPublicPlugin(initializerContext);
@@ -44,7 +43,7 @@ export {
4443
RefreshInterval,
4544
TimeRange,
4645
} from '../common';
47-
46+
export { autocomplete } from './autocomplete';
4847
export * from './field_formats';
4948
export * from './index_patterns';
5049
export * from './search';
@@ -70,5 +69,3 @@ export {
7069
// Export plugin after all other imports
7170
import { DataPublicPlugin } from './plugin';
7271
export { DataPublicPlugin as Plugin };
73-
74-
export { autocomplete };

src/plugins/data/public/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import { CoreStart } from 'src/core/public';
2121
import { IStorageWrapper } from 'src/plugins/kibana_utils/public';
2222
import { IUiActionsSetup, IUiActionsStart } from 'src/plugins/ui_actions/public';
23-
import { AutocompleteSetup, AutocompleteStart } from './autocomplete/types';
23+
import { AutocompleteSetup, AutocompleteStart } from './autocomplete';
2424
import { FieldFormatsSetup, FieldFormatsStart } from './field_formats';
2525
import { ISearchSetup, ISearchStart } from './search';
2626
import { QuerySetup, QueryStart } from './query';

src/plugins/data/public/ui/query_string_input/query_string_input.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@ const KEY_CODES = {
8989
END: 35,
9090
};
9191

92-
const recentSearchType: autocomplete.QuerySuggestionType = 'recentSearch';
93-
9492
export class QueryStringInputUI extends Component<Props, State> {
9593
public state: State = {
9694
isSuggestionsVisible: false,
@@ -193,7 +191,7 @@ export class QueryStringInputUI extends Component<Props, State> {
193191
const text = toUser(recentSearch);
194192
const start = 0;
195193
const end = query.length;
196-
return { type: recentSearchType, text, start, end };
194+
return { type: autocomplete.QuerySuggestionsTypes.RecentSearch, text, start, end };
197195
});
198196
};
199197

@@ -343,7 +341,7 @@ export class QueryStringInputUI extends Component<Props, State> {
343341
selectionEnd: start + (cursorIndex ? cursorIndex : text.length),
344342
});
345343

346-
if (type === recentSearchType) {
344+
if (type === autocomplete.QuerySuggestionsTypes.RecentSearch) {
347345
this.setState({ isSuggestionsVisible: false, index: null });
348346
this.onSubmit({ query: newQueryString, language: this.props.query.language });
349347
}

src/plugins/data/public/ui/typeahead/suggestion_component.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ const mockSuggestion: autocomplete.QuerySuggestion = {
3131
end: 0,
3232
start: 42,
3333
text: 'as promised, not helpful',
34-
type: 'value',
34+
type: autocomplete.QuerySuggestionsTypes.Value,
3535
};
3636

3737
describe('SuggestionComponent', () => {

src/plugins/data/public/ui/typeahead/suggestions_component.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ const mockSuggestions: autocomplete.QuerySuggestion[] = [
3333
end: 0,
3434
start: 42,
3535
text: 'as promised, not helpful',
36-
type: 'value',
36+
type: autocomplete.QuerySuggestionsTypes.Value,
3737
},
3838
{
3939
description: 'This is another unhelpful suggestion',
4040
end: 0,
4141
start: 42,
4242
text: 'yep',
43-
type: 'field',
43+
type: autocomplete.QuerySuggestionsTypes.Field,
4444
},
4545
];
4646

0 commit comments

Comments
 (0)