@vymalo/medusa-meilisearch
Version:
🔍 Powerful, lightning-fast search integration for MedusaJS using Meilisearch
31 lines • 2.09 kB
TypeScript
import type { Logger, ProductDTO, SearchTypes } from '@medusajs/types';
import { AbstractSearchService } from '@medusajs/utils';
import type { EnqueuedTask, Index, IndexOptions, MeiliSearch, SearchParams, SearchResponse } from 'meilisearch' with { 'resolution-mode': 'import' };
import type { Options, SearchOption } from '../types';
import type { IMeilisearchService } from '../types';
type InjectedDependencies = {
logger: Logger;
meilisearch_client: MeiliSearch;
};
export default class MeiliSearchService<P extends ProductDTO = ProductDTO, I extends Required<IndexOptions> = Required<IndexOptions>> extends AbstractSearchService implements IMeilisearchService {
static identifier: string;
static DISPLAY_NAME: string;
isDefault: boolean;
readonly defaultIndex: string;
protected readonly logger: Logger;
protected readonly client: MeiliSearch;
protected readonly settings: Options['settings'];
constructor(deps: InjectedDependencies, options: Options);
createIndex<O extends I = I>(indexName: string, options: O): Promise<EnqueuedTask>;
getIndex<T extends P = P>(indexName: string): Promise<Index<T>>;
addDocuments<T extends P = P, D extends T = T>(indexName: string, documents: D[], type: string): Promise<EnqueuedTask>;
replaceDocuments<T extends P = P, D extends T = T>(indexName: string, documents: D[], type: string): Promise<EnqueuedTask>;
deleteDocument(indexName: string, document_id: string | number): Promise<EnqueuedTask>;
deleteAllDocuments(indexName: string): Promise<EnqueuedTask>;
search<D extends P = P, S extends SearchParams = SearchParams>(indexName: string, query: string | null, options: SearchOption): Promise<SearchResponse<D, S>>;
updateSettings(indexName: string, settings: SearchTypes.IndexSettings): Promise<EnqueuedTask>;
protected upsertIndex(indexName: string, settings: SearchTypes.IndexSettings): Promise<void>;
protected getTransformedDocuments<T extends P = P, R extends T = T>(type: string, documents: R[]): Promise<T[]>;
}
export {};
//# sourceMappingURL=service.d.ts.map