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 ​
Modified SelectQuery with all dynamic conditions applied
Example ​
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 ​
Named parameters to bind when they already exist in the SQL
Returns ​
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 ​
Sort conditions to apply
Returns ​
Modified SelectQuery with sort conditions applied
buildPaginatedQuery() ​
buildPaginatedQuery(
sqlContent,paging):SelectQuery
Defined in: packages/core/src/transformers/DynamicQueryBuilder.ts:451
Parameters ​
sqlContent ​
string
paging ​
Returns ​
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