@tanstack/db
Version:
A reactive client store for building super fast apps on sync
24 lines (22 loc) • 786 B
text/typescript
import { codedMessage, devBuild } from '../../error-message.js'
import type {
BaseQueryBuilder,
InitialQueryBuilder,
QueryBuilder,
} from './index.js'
import type { QueryIR } from '../ir.js'
// Keep IR access independent of Collection construction at runtime.
export function getQueryIR(
builder: BaseQueryBuilder | QueryBuilder<any> | InitialQueryBuilder,
): QueryIR {
const value: unknown = builder
if (value === undefined || value === null) {
const received = value === null ? `null` : `undefined`
throw new Error(
devBuild() && process.env.NODE_ENV !== `production`
? `Query must resolve to a QueryBuilder; received ${received}.`
: codedMessage(237, { received }),
)
}
return (builder as unknown as BaseQueryBuilder)._getQuery()
}