@tsproxy/js
InstantSearch-compatible searchClient adapter for the tsproxy API. Works with react-instantsearch, vue-instantsearch, or standalone.
Install
npm install @tsproxy/jsUsage
import { createSearchClient } from "@tsproxy/js";
const searchClient = createSearchClient({
url: "http://localhost:3000",
locale: "en", // optional: sends X-Locale header
cache: true, // optional: client-side result caching (default: true)
});With react-instantsearch
import { InstantSearch } from "react-instantsearch";
import { createSearchClient } from "@tsproxy/js";
const searchClient = createSearchClient({ url: "http://localhost:3000" });
<InstantSearch searchClient={searchClient} indexName="products">
{/* widgets */}
</InstantSearch>Features
- Request deduplication — identical concurrent requests are coalesced
- Result caching — configurable client-side cache
- Locale support — automatic
X-Localeheader - InstantSearch-compatible — implements the
search()andsearchForFacetValues()interface
API
createSearchClient(options)
| Option | Type | Default | Description |
|---|---|---|---|
url | string | — | Proxy server URL (required) |
locale | string | — | Locale for multilingual search |
cache | boolean | true | Enable client-side result caching |
Returns a SearchClient with:
search(requests)— execute a multi-searchsearchForFacetValues(requests)— search facet valuesclearCache()— clear the result cache
Types
import type {
SearchClient,
SearchRequest,
SearchResponse,
SearchResponseResult,
Hit,
FacetValue,
} from "@tsproxy/js";