typesense
Version:
Javascript Library for Typesense
43 lines (42 loc) • 1.67 kB
TypeScript
import ApiCall from "./ApiCall";
import type { CollectionFieldSchema, CollectionSchema } from "./Collection";
export interface BaseCollectionCreateSchema {
name: string;
default_sorting_field?: string;
symbols_to_index?: string[];
token_separators?: string[];
enable_nested_fields?: boolean;
metadata?: object;
voice_query_model?: {
model_name?: string;
};
synonym_sets?: string[];
curation_sets?: string[];
}
interface CollectionCreateSchemaWithSrc extends Pick<BaseCollectionCreateSchema, "name"> {
fields?: CollectionFieldSchema[];
}
interface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {
fields: CollectionFieldSchema[];
}
/**
* Defines the schema for creating a collection in Typesense.
*
* If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.
* Otherwise, `fields` will be required.
*/
export type CollectionCreateSchema<Options extends CollectionCreateOptions = CollectionCreateOptions> = Options["src_name"] extends string ? CollectionCreateSchemaWithSrc : CollectionCreateSchemaWithoutSrc;
export interface CollectionCreateOptions {
src_name?: string;
}
export interface CollectionsRetrieveOptions {
exclude_fields?: string;
}
export default class Collections {
private apiCall;
constructor(apiCall: ApiCall);
create<const Options extends CollectionCreateOptions>(schema: CollectionCreateSchema<Options>, options?: Options): Promise<CollectionSchema>;
retrieve(options?: CollectionsRetrieveOptions): Promise<CollectionSchema[]>;
static get RESOURCEPATH(): string;
}
export {};