Type check

Starting from version 1.2.0 you can now get type checks when writing queries!

Just define your table schema as a typescript type and reference it when calling any function.


This is available to all methods, including Insert, Delete, Update and Raw when calling with returning.

const qb = new D1QB(env.DB)

type Employee = {
  name: string
  role: string
  level: number

// Generated query: SELECT * FROM employees WHERE active = ?1 LIMIT 1
const employeeList = await qb
    tableName: 'employees',
    where: {
      conditions: 'active = ?1',
      params: [true],

// You will get type checks on each row, like: