API Reference
Configuration

Configuration Reference

tsproxy.config.ts

import { defineConfig } from "@tsproxy/api";
 
export default defineConfig({
  typesense: { ... },
  server: { ... },
  cache: { ... },
  queue: { ... },
  rateLimit: { ... },
  collections: { ... },
});

typesense

FieldTypeDefaultDescription
hoststring"localhost"Typesense host
portnumber8108Typesense port
protocol"http" | "https""http"Connection protocol
apiKeystringTypesense API key

server

FieldTypeDefaultDescription
portnumber3000Proxy server port
apiKeystringAPI key for ingest endpoints

cache

FieldTypeDefaultDescription
ttlnumber60Cache TTL in seconds
maxSizenumber1000Maximum cached entries

queue

FieldTypeDefaultDescription
concurrencynumber5Max concurrent Typesense writes
maxSizenumber10000Max queued tasks before rejecting
redis{ host?, port? }Redis config (enables BullMQ)

rateLimit

FieldTypeDefaultDescription
searchnumber100Search requests/min per IP
ingestnumber30Ingest requests/min per IP

collections

collections: {
  [collectionName: string]: {
    fields: Record<string, FieldConfig>;
    locales?: string[];
    defaultSortBy?: string;
    tokenSeparators?: string[];
    symbolsToIndex?: string[];
    enableNestedFields?: boolean;
  }
}

FieldConfig

FieldTypeDescription
typestringTypesense field type ("string", "float", "int64", "bool", etc.)
searchablebooleanInclude in query_by
facetbooleanEnable faceting
sortablebooleanEnable sorting
optionalbooleanAllow null/missing values
localestringStemming locale
infixbooleanEnable infix search
compute(doc, locale?) => valueComputed field transform