export type GetApiSearchLangProvidersProviderArgs = {lang: string, provider: string, query?: string | undefined, area?: string | undefined, fields?: string | undefined, filters?: string | undefined, range?: string | undefined, full_text?: boolean | undefined, include_aggr?: boolean | undefined, page?: number | undefined, size?: number | undefined}; export type GetApiSearchLangProvidersProviderOptions = {baseUrl: string, fetch?: typeof fetch | undefined}; /** * Search * * GET /search/{lang}/providers/{provider} */ export const getApiSearchLangProvidersProvider = async (args: GetApiSearchLangProvidersProviderArgs, options: GetApiSearchLangProvidersProviderOptions) => { const {baseUrl, fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "text/html") if (args.query != null) query.append("query", String(args.query)) if (args.area != null) query.append("area", String(args.area)) if (args.fields != null) query.append("fields", String(args.fields)) if (args.filters != null) query.append("filters", String(args.filters)) if (args.range != null) query.append("range", String(args.range)) if (args.full_text != null) query.append("full_text", String(args.full_text)) if (args.include_aggr != null) query.append("include_aggr", String(args.include_aggr)) if (args.page != null) query.append("page", String(args.page)) if (args.size != null) query.append("size", String(args.size)) const url = `${baseUrl.replace(/\/+$/, '')}/search/${encodeURIComponent(String(args.lang))}/providers/${encodeURIComponent(String(args.provider))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.text() };