API reference › @evolu/common › local‑first/Schema › createQueryBuilder
function createQueryBuilder<S>(_schema: S): CreateQuery<S>;
Defined in: packages/common/src/local-first/Schema.ts:813
Creates a query builder from a EvoluSchema.
Supports Kysely relation-style query composition (nested objects/arrays via JSON subqueries), such as evoluJsonObjectFrom and evoluJsonArrayFrom. These helpers are Evolu's safer SQLite variants of the Kysely relations recipe.
Example
import {
assertType,
createQueryBuilder,
testEvoluSchema,
type TestTodoId,
NonEmptyTrimmedString100,
SqliteBoolean,
} from "@evolu/common";
// Create one typed builder per schema and reuse it for every query.
const createQuery = createQueryBuilder(testEvoluSchema);
const todosQuery = createQuery((db) =>
db.selectFrom("todo").select(["id", "title", "isCompleted"]),
);
assertType<
typeof todosQuery.Row,
{
id: TestTodoId;
title: NonEmptyTrimmedString100 | null;
isCompleted: SqliteBoolean | null;
}
>();