UNPKG

@travetto/model-query

Version:

Datastore abstraction for advanced query support.

31 lines (29 loc) 1.36 kB
import { Class } from '@travetto/runtime'; import { ModelType } from '@travetto/model'; import { PageableModelQuery } from '../model/query.ts'; import { ModelQuerySupport } from './query.ts'; import { ValidStringFields } from '../model/where-clause.ts'; /** * The contract for a model service with suggesting support * @concrete */ export interface ModelQuerySuggestSupport extends ModelQuerySupport { /** * Suggest instances for a given cls and a given field (allows for duplicates with as long as they have different ids) * * @param cls The model class to suggest on * @param field The field to suggest on * @param prefix The search prefix for the given field * @param query A query to filter the search on, in addition to the prefix */ suggest<T extends ModelType>(cls: Class<T>, field: ValidStringFields<T>, prefix?: string, query?: PageableModelQuery<T>): Promise<T[]>; /** * Suggest distinct values for a given cls and a given field * * @param cls The model class to suggest on * @param field The field to suggest on * @param prefix The search prefix for the given field * @param query A query to filter the search on, in addition to the prefix */ suggestValues<T extends ModelType>(cls: Class<T>, field: ValidStringFields<T>, prefix?: string, query?: PageableModelQuery<T>): Promise<string[]>; }