본문으로 건너뛰기

함수: parseWhereExpression()

function parseWhereExpression<T>(expr, options): T | null;

정의 위치: packages/db/src/query/expression-helpers.ts:201

제공된 핸들러를 사용하여 WHERE 표현식을 사용자 지정 형식으로 구문 분석합니다.

TanStack DB의 where 절을 API의 필터 형식으로 변환하는 주요 헬퍼입니다. 각 연산자에 대한 핸들러를 제공하면 이 함수가 표현식 트리를 순회하고 적절한 핸들러를 호출합니다.

타입 매개변수

T

T = any

매개변수

expr

구문 분석할 WHERE 표현식입니다

BasicExpression&lt;boolean> | null | undefined

options

ParseWhereOptions&lt;T>

각 연산자에 대한 핸들러 함수가 포함된 구성입니다

반환값

T | null

사용자 지정 형식으로 구문 분석된 결과입니다

예제

// 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 }
// 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 })
}
})