Skip to content
# Class: DynamicQueryBuilder

Defined in: packages/core/src/transformers/DynamicQueryBuilder.ts:178

DynamicQueryBuilder combines SQL parsing with dynamic condition injection (filters, sorts, paging).

Key behaviours verified in packages/core/tests/transformers/DynamicQueryBuilder.test.ts:

  • Preserves the input SQL when no options are supplied.
  • Applies filter, sort, and pagination in a deterministic order.
  • Fails fast for removed SQL-result JSON shaping.

Constructors ​

Constructor ​

new DynamicQueryBuilder(resolverOrOptions?): DynamicQueryBuilder

Defined in: packages/core/src/transformers/DynamicQueryBuilder.ts:188

Creates a new DynamicQueryBuilder instance. Accepts either the legacy table resolver or an options object that can provide schema metadata.

Parameters ​

resolverOrOptions? ​

Optional resolver or configuration object

DynamicQueryBuilderOptions | (tableName) => string[]

Returns ​

DynamicQueryBuilder

Methods ​

buildQuery() ​

buildQuery(sqlContent, options): SelectQuery

Defined in: packages/core/src/transformers/DynamicQueryBuilder.ts:218

Builds a SelectQuery from SQL content with dynamic conditions. This is a pure function that does not perform any I/O operations.

Parameters ​

sqlContent ​

string

Raw SQL string to parse and modify

options ​

QueryBuildOptions = {}

Dynamic conditions to apply (filter, sort, paging)

Returns ​

SelectQuery

Modified SelectQuery with all dynamic conditions applied

Example ​

typescript
const builder = new DynamicQueryBuilder();
const query = builder.buildQuery(
  'SELECT id, name FROM users WHERE active = true',
  {
    filter: { status: 'premium' },
    sort: { created_at: { desc: true } },
    paging: { page: 2, pageSize: 10 }
  }
);

buildFilteredQuery() ​

buildFilteredQuery(sqlContent, filter): SelectQuery

Defined in: packages/core/src/transformers/DynamicQueryBuilder.ts:429

Legacy helper for binding existing named parameters without adding new runtime predicates. Dynamic WHERE-condition injection is no longer supported; use SSSQL scaffold/refresh instead.

Parameters ​

sqlContent ​

string

Raw SQL string to parse and modify

filter ​

FilterConditions

Named parameters to bind when they already exist in the SQL

Returns ​

SelectQuery

Modified SelectQuery after binding existing named parameters


buildSortedQuery() ​

buildSortedQuery(sqlContent, sort): SelectQuery

Defined in: packages/core/src/transformers/DynamicQueryBuilder.ts:441

Builds a SelectQuery with only sorting applied. Convenience method for when you only need dynamic ORDER BY clauses.

Parameters ​

sqlContent ​

string

Raw SQL string to parse and modify

sort ​

SortConditions

Sort conditions to apply

Returns ​

SelectQuery

Modified SelectQuery with sort conditions applied


buildPaginatedQuery() ​

buildPaginatedQuery(sqlContent, paging): SelectQuery

Defined in: packages/core/src/transformers/DynamicQueryBuilder.ts:451

Parameters ​

sqlContent ​

string

paging ​

PaginationOptions

Returns ​

SelectQuery


validateSql() ​

validateSql(sqlContent): boolean

Defined in: packages/core/src/transformers/DynamicQueryBuilder.ts:463

Validates SQL content by attempting to parse it. Useful for testing SQL validity without applying any modifications.

Parameters ​

sqlContent ​

string

Raw SQL string to validate

Returns ​

boolean

true if SQL is valid, throws error if invalid

Throws ​

Error if SQL cannot be parsed

Released under the MIT License.