API reference@evolu/commonlocal‑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;
  }
>();