-
Notifications
You must be signed in to change notification settings - Fork 224
Description
We're migrating from v4 to v5, using algoliasearch in combination with AlgoliaSearchHelper
Previously, we used it like this:
import { algoliasearch } from 'algoliasearch'
import algoliasearchHelper from 'algoliasearch-helper'
const client = algoliasearch('id', 'apiKey', {
headers: { 'X-Algolia-UserToken': 'token' }
})
const helper = algoliasearchHelper(client, 'index', { ...options })
We've encountered two problems:
1) Setting headers during client creation
Previously, we passed the headers directly when creating the client. Now, the TypeScript types indicate this might not be possible:
Object literal may only specify known properties, and 'headers' does not exist in type 'Partial<Omit<CreateClientOptions, "apiKey" | "appId">>'.ts(2353)
Is this correct? If so, what's the recommended way to set headers?
We've only found this article on Request Options which mentions setting headers via searchSingleIndex
. However, we're not using that method in our case.
2) Type incompatibility between Algoliasearch client and SearchClient
The client created (typeof Algoliasearch
) seems to be incompatible with the type that algoliasearchHelper expects (typeof SearchClient
)
const helper = algoliasearchHelper(client, 'index', { ...options })
// ^
// Argument of type 'Algoliasearch' is not assignable to parameter of type 'SearchClient'.
// Types of property 'searchForFacetValues' are incompatible.
// Type '({ indexName, facetName, searchForFacetValuesRequest }: SearchForFacetValuesProps, requestOptions?: RequestOptions | undefined) => Promise<SearchForFacetValuesResponse>' is not assignable to type 'undefined'.
// ts(2345)