LakeQL
Overview
  • Introduction
Filtering
  • Where Interface
  • Operators
  • Combining Filters
Sorting and Paging
  • Sorting
  • Paging
  • API Reference
GitHub
LakeQL
  1. Query Builder
  2. API Reference

On this page

  1. API Reference
    1. EWhereOperator
    2. IFieldOptions
    3. ISortInput
    4. IPagingInput
    5. TField
    6. TWhere
    7. IGenerateQueryProps
    8. IGetFieldQueryProps
    9. FgetFieldQuery
    10. FnormalizeFilter
    11. FnormalizeUserQuery
    12. FgenerateQuery
    13. IFormatQueryProps
    14. FformatQuery
    15. FgetSelectFields

API Reference

Auto-generated reference for all exported types, interfaces, and functions from @lakeql/query-builder.

Logical operators for combining filter conditions.

Members

MemberValue
AND"and"
OR"or"

Comparison operators available for filtering a single field. Only one operator should be set per FieldOptions object.

String operators compare the field value against the provided string. Boolean operators (is/isNot) check for equality with true/false.

Properties

PropertyTypeModifiers
eq?string—
neq?string—
in?string—
notIn?string—
lt?string—
lte?string—
gt?string—
gte?string—
like?string—
notLike?string—
is?boolean—
isNot?boolean—

Defines the sort order for a query result.

Type Parameters

ParameterConstraintDefault
TableDefinition——

Properties

PropertyTypeModifiers
fieldSelectExpression<KyselyDatabase<TableDefinition>, "tablename">—

Column name to sort by. Constrained to valid column names from the table type.

directionstring—

Sort direction — "asc" for ascending, "desc" for descending.

Controls offset-based pagination.

Properties

PropertyTypeModifiers
limit?number—

Maximum number of rows to return.

offset?number—

Number of rows to skip before fetching.

A single field condition — a record where the key is the field name and the value is a FieldOptions object describing the comparison.

Type

Field

A recursive filter structure that can contain AND/OR groups, each holding field conditions or further nested groups.

Properties

PropertyTypeModifiers
and?Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | undefined—
or?Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | undefined—

Parameters for generating a Trino-compatible SQL query from GraphQL resolve info.

Type Parameters

ParameterConstraintDefault
TableDefinition——

Properties

PropertyTypeModifiers
catalogstring—

The Trino catalog name (e.g. “hive”).

schemastring—

The Trino schema name (e.g. “sales”).

tablestring—

The table name to query.

selectFieldsArray<SelectExpression<KyselyDatabase<TableDefinition>, "tablename">>—

The columns to select, derived from GraphQL field selections.

userQueryPartial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>—

The user-provided filter query (WHERE clause).

paging?PagingInput—

Pagination parameters (limit and offset).

sortingArray<SortInput<TableDefinition>>—

Sort order definitions.

transformFields?Record<string, string>—

Maps GraphQL field names to database column names.

dateFields?Array<string>—

Fields that should be wrapped in to_unixtime() for date conversion.

Parameters for building a single field comparison expression.

Type Parameters

ParameterConstraintDefault
TableDefinition——

Properties

PropertyTypeModifiers
ebExpressionBuilder<KyselyDatabase<TableDefinition>, "tablename">—

The Kysely expression builder for constructing SQL expressions.

fieldNamestring—

The column name to filter on.

operatorstring—

The comparison operator (eq, neq, lt, like, etc.).

valueunknown—

The value to compare against.

Builds a single field comparison expression for use in WHERE clauses.

Type Parameters

ParameterConstraintDefault
TableDefinition——

Parameters

ParameterTypeDefault Value
{ eb, fieldName, operator, value, }GetFieldQueryProps<TableDefinition>—

Returns

ExpressionWrapper<KyselyDatabase<TableDefinition>, "tablename", SqlBool>

Normalizes filter objects by ensuring each field is in its own object within and/or arrays.

Splits multi-field filter objects into separate entries so the query builder can process each field condition independently.

Parameters

ParameterTypeDefault Value
filterPartial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>—

Returns

PropertyTypeModifiers
and?Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | undefined—
or?Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | undefined—

Wraps bare field-level filters into an AND-rooted structure.

If the query already has a single and or or key at the root, it is returned as-is. Otherwise, all entries are combined under an and key.

Parameters

ParameterTypeDefault Value
userQueryPartial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>—

Returns

PropertyTypeModifiers
and?Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | undefined—
or?Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, Array<Field | Partial<Record<WhereOperator, any>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | undefined—

Generates a compiled SQL query with pagination metadata for Trino.

Returns a Kysely CompiledQuery containing the generated SQL and parameters. The query uses two CTEs internally:

  • total_count — provides total_records (total matching rows before paging)
  • records — the actual rows based on selectFields , filtering, sorting, and paging

The compiled query is executed by the Trino client which returns the row data.

Type Parameters

ParameterConstraintDefault
TableDefinition——

Parameters

ParameterTypeDefault Value
{ catalog, schema, table, selectFields, userQuery, sorting, paging, transformFields, dateFields = [], }?GenerateQueryProps<TableDefinition>{"dateFields":[]}

Returns

CompiledQuery<{ total_records: number; }>

Parameters for formatting a compiled SQL query.

Type Parameters

ParameterConstraintDefault
T——

Properties

PropertyTypeModifiers
queryCompiledQuery<T>—

The compiled Kysely query to format.

Formats a compiled SQL query for readability.

Applies uppercase keywords, PostgreSQL dialect, and interpolates parameters.

Type Parameters

ParameterConstraintDefault
T——

Parameters

ParameterTypeDefault Value
{ query }FormatQueryProps<T>—

Returns

string

Extracts selected field names from a GraphQL resolve info object.

Type Parameters

ParameterConstraintDefault
T——

Parameters

ParameterTypeDefault Value
graphqlInfoGraphQLResolveInfo—
withNodes?booleanfalse

Returns

Array<SelectExpression<KyselyDatabase<T>, "tablename">>

Next page

Overview