Packages
@tsproxy/js

@tsproxy/js

InstantSearch-compatible searchClient adapter for the tsproxy API. Works with react-instantsearch, vue-instantsearch, or standalone.

Install

npm install @tsproxy/js

Usage

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-Locale header
  • InstantSearch-compatible — implements the search() and searchForFacetValues() interface

API

createSearchClient(options)

OptionTypeDefaultDescription
urlstringProxy server URL (required)
localestringLocale for multilingual search
cachebooleantrueEnable client-side result caching

Returns a SearchClient with:

  • search(requests) — execute a multi-search
  • searchForFacetValues(requests) — search facet values
  • clearCache() — clear the result cache

Types

import type {
  SearchClient,
  SearchRequest,
  SearchResponse,
  SearchResponseResult,
  Hit,
  FacetValue,
} from "@tsproxy/js";