DB Docs
API Reference
- Core API Reference
- Collection
- createCollection
- liveQueryCollectionOptions
- createLiveQueryCollection
- createOptimisticAction
- createTransaction
- Electric DB Collection
- electricCollectionOptions
- Query DB Collection
- queryCollectionOptions
- RxDB DB Collection
- rxdbCollectionOptions
- PowerSync Collection
- powerSyncCollectionOptions
- createIndexedDB
- indexedDBCollectionOptions
- React Hooks
- useLiveQuery
AI/LLM: This documentation page is available in plain markdown format at/db/latest/docs/reference/functions/parseWhereExpression.md
parseWhereExpression
ts
function parseWhereExpression<T>(expr, options): T | null;Defined in: packages/db/src/query/expression-helpers.ts:204
Parses a WHERE expression into a custom format using provided handlers.
This is the main helper for converting TanStack DB where clauses into your API's filter format. You provide handlers for each operator, and this function traverses the expression tree and calls the appropriate handlers.
Type Parameters#
T#
T = any
Parameters#
expr#
The WHERE expression to parse
BasicExpression<boolean> | null | undefined
options#
Configuration with handler functions for each operator
Returns#
T | null
The parsed result in your custom format
Examples#
ts
// REST API with query parameters
const filters = parseWhereExpression(where, {
handlers: {
eq: (field, value) => ({ [field.join('.')]: value }),
lt: (field, value) => ({ [`${field.join('.')}_lt`]: value }),
gt: (field, value) => ({ [`${field.join('.')}_gt`]: value }),
and: (...filters) => Object.assign({}, ...filters),
or: (...filters) => ({ $or: filters })
}
})
// Returns: { category: 'electronics', price_lt: 100 }ts
// GraphQL where clause
const where = parseWhereExpression(whereExpr, {
handlers: {
eq: (field, value) => ({ [field.join('_')]: { _eq: value } }),
lt: (field, value) => ({ [field.join('_')]: { _lt: value } }),
and: (...filters) => ({ _and: filters })
}
})