diff --git a/packages/switch/src/index.ts b/packages/switch/src/index.ts index 01c81bf3..95779aba 100644 --- a/packages/switch/src/index.ts +++ b/packages/switch/src/index.ts @@ -2,9 +2,15 @@ import type { AnyOrama, Results, SearchParams, Nullable } from '@orama/orama' import { search } from '@orama/orama' import { OramaClient, ClientSearchParams } from '@oramacloud/client' -type OramaSwitchClient = AnyOrama | OramaClient +export type OramaSwitchClient = AnyOrama | OramaClient -type ClientType = 'oss' | 'cloud' +export type ClientType = 'oss' | 'cloud' + +export type SearchConfig = { + abortController?: AbortController + fresh?: boolean + debounce?: number +} export class Switch { client: OramaSwitchClient @@ -27,10 +33,11 @@ export class Switch { } async search( - params: T extends OramaClient ? ClientSearchParams : SearchParams + params: T extends OramaClient ? ClientSearchParams : SearchParams, + config?: SearchConfig ): Promise>> { if (this.isCloud) { - return (this.client as OramaClient).search(params as T extends OramaClient ? ClientSearchParams : never) + return (this.client as OramaClient).search(params as T extends OramaClient ? ClientSearchParams : never, config) } else { return search(this.client as AnyOrama, params as SearchParams) as Promise>> }