@sourceloop/search-service / Exports / SearchQueryBuilder
Class: SearchQueryBuilder<T>¶
Type parameters¶
| Name | Type |
|---|---|
T |
extends Model |
Hierarchy¶
-
SearchQueryBuilder
Table of contents¶
Constructors¶
Properties¶
Accessors¶
Methods¶
- _formatColumnSameInDb
- _isQuery
- build
- buildClauseFromExpress
- buildColumnValueForExpression
- buildExpression
- buildStatement
- getColumnListFromArray
- getColumnListFromArrayOrMap
- getColumnListFromMap
- getColumnName
- getModelName
- getSchemaName
- getTableName
- handleAndOr
- handleKeys
- handleObjectValue
- isDateType
- isNumberType
- isStringType
- limit
- order
- paramString
- paramsBuild
- parseIdPlaceholder
- queryBuild
- search
- toArrayPropTypes
- toColumnValue
- toDateType
- whereBuild
Constructors¶
constructor¶
• new SearchQueryBuilder<T>(query, schema?)
Type parameters¶
| Name | Type |
|---|---|
T |
extends Model<T> |
Parameters¶
| Name | Type |
|---|---|
query |
DataObject<SearchQuery> |
schema? |
string |
Defined in¶
services/search-service/src/classes/base/query.builder.ts:46
Properties¶
_placeholderIndex¶
• Protected _placeholderIndex: number = 0
Defined in¶
services/search-service/src/classes/base/query.builder.ts:35
baseQueryList¶
• Protected baseQueryList: Query[]
Defined in¶
services/search-service/src/classes/base/query.builder.ts:29
idType¶
• Protected Optional idType: string = 'uuid'
Defined in¶
services/search-service/src/classes/base/query.builder.ts:34
limitQuery¶
• Protected limitQuery: string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:30
modelNameMap¶
• Protected modelNameMap: Map<string, string>
Defined in¶
services/search-service/src/classes/base/query.builder.ts:36
orderQuery¶
• Protected orderQuery: string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:31
query¶
• Protected query: DataObject<SearchQuery>
Defined in¶
services/search-service/src/classes/base/query.builder.ts:32
schema¶
• Protected Optional schema: string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:33
unionString¶
• Abstract unionString: string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:56
Accessors¶
placeholder¶
• Protected get placeholder(): string
Returns¶
string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:37
• Protected set placeholder(val): void
Parameters¶
| Name | Type |
|---|---|
val |
string | number |
Returns¶
void
Defined in¶
services/search-service/src/classes/base/query.builder.ts:41
Methods¶
_formatColumnSameInDb¶
▸ Private _formatColumnSameInDb(modelColumn, dbColumn): string | keyof T
Parameters¶
| Name | Type |
|---|---|
modelColumn |
keyof T |
dbColumn |
string |
Returns¶
string | keyof T
Defined in¶
services/search-service/src/classes/base/query.builder.ts:620
_isQuery¶
▸ Private _isQuery(query): query is Query
Parameters¶
| Name | Type |
|---|---|
query |
ShortHandEqualType | Query |
Returns¶
query is Query
Defined in¶
services/search-service/src/classes/base/query.builder.ts:616
build¶
▸ build(models, ignoredColumns?, type?, idType?): Object
Parameters¶
| Name | Type |
|---|---|
models |
(typeof Model | SearchableModel<T, typeof Model>)[] |
ignoredColumns? |
Exclude<keyof T, "getId" | "getIdObject" | "toJSON" | "toObject">[] |
type? |
typeof Model |
idType? |
string |
Returns¶
Object
| Name | Type |
|---|---|
params |
AnyObject | (string | AnyObject)[] |
query |
string |
Defined in¶
services/search-service/src/classes/base/query.builder.ts:58
buildClauseFromExpress¶
▸ buildClauseFromExpress(values, separator, grouping, getPlaceholder): Query
The function buildClauseFromExpress constructs a SQL clause from an array of values, a separator,
and other parameters.
Parameters¶
| Name | Type | Description |
|---|---|---|
values |
ShortHandEqualType | Query | (ShortHandEqualType | Query)[] |
The values parameter in the buildClauseFromExpress function can be one of the following types: |
separator |
string |
The separator parameter is a string that will be used to separate the values in the resulting clause. |
grouping |
boolean |
The grouping parameter in the buildClauseFromExpress function is a boolean flag that determines whether the generated SQL clause should be wrapped in parentheses for grouping purposes. If grouping is set to true, the SQL clause will be enclosed in parentheses. If grouping |
getPlaceholder |
() => string |
The buildClauseFromExpress function takes in four parameters: |
Returns¶
The buildClauseFromExpress function returns an object with sql and params
properties. The sql property contains the generated SQL clause based on the input values,
separator, and grouping settings. The params property contains an array of parameters used in the
SQL clause.
Defined in¶
services/search-service/src/classes/base/query.builder.ts:568
buildColumnValueForExpression¶
▸ buildColumnValueForExpression(expressionValue, p): any[]
Parameters¶
| Name | Type |
|---|---|
expressionValue |
PredicateValueType<ShortHandEqualType> |
p |
PropertyDefinition |
Returns¶
any[]
Defined in¶
services/search-service/src/classes/base/query.builder.ts:376
buildExpression¶
▸ buildExpression(columnName, prop, operator, value, model): Object
Parameters¶
| Name | Type |
|---|---|
columnName |
keyof T |
prop |
PropertyDefinition |
operator |
string |
value |
ShortHandEqualType | Query | (ShortHandEqualType | Query)[] |
model |
typeof Model |
Returns¶
Object
| Name | Type |
|---|---|
params |
ShortHandEqualType[] |
sql |
string |
Defined in¶
services/search-service/src/classes/base/query.builder.ts:487
buildStatement¶
▸ Private buildStatement<K>(expression, columnName, propSchema, key, model): undefined | Query
Type parameters¶
| Name | Type |
|---|---|
K |
extends never |
Parameters¶
| Name | Type |
|---|---|
expression |
SearchWhereFilter<T>[K] |
columnName |
string |
propSchema |
PropertyDefinition |
key |
K |
model |
typeof Model |
Returns¶
undefined | Query
Defined in¶
services/search-service/src/classes/base/query.builder.ts:292
getColumnListFromArray¶
▸ getColumnListFromArray(model, columns, filter): Object
Parameters¶
| Name | Type |
|---|---|
model |
typeof Model |
columns |
keyof T[] |
filter |
keyof T[] |
Returns¶
Object
| Name | Type |
|---|---|
columnList |
string |
selectors |
string |
Defined in¶
services/search-service/src/classes/base/query.builder.ts:181
getColumnListFromArrayOrMap¶
▸ getColumnListFromArrayOrMap(model, columns, filter): Object
Parameters¶
| Name | Type |
|---|---|
model |
typeof Model |
columns |
keyof T[] | ColumnMap<T> |
filter |
keyof T[] |
Returns¶
Object
| Name | Type |
|---|---|
columnList |
string |
selectors |
string |
Defined in¶
services/search-service/src/classes/base/query.builder.ts:134
getColumnListFromMap¶
▸ getColumnListFromMap(model, columns, filter): Object
Parameters¶
| Name | Type |
|---|---|
model |
typeof Model |
columns |
ColumnMap<T> |
filter |
keyof T[] |
Returns¶
Object
| Name | Type |
|---|---|
columnList |
string |
selectors |
string |
Defined in¶
services/search-service/src/classes/base/query.builder.ts:146
getColumnName¶
▸ getColumnName(model, name): any
Parameters¶
| Name | Type |
|---|---|
model |
typeof Model |
name |
keyof T |
Returns¶
any
Defined in¶
services/search-service/src/classes/base/query.builder.ts:399
getModelName¶
▸ getModelName(model): string
Parameters¶
| Name | Type |
|---|---|
model |
typeof Model |
Returns¶
string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:611
getSchemaName¶
▸ getSchemaName(model): string
Parameters¶
| Name | Type |
|---|---|
model |
typeof Model |
Returns¶
string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:607
getTableName¶
▸ getTableName(model): string
Parameters¶
| Name | Type |
|---|---|
model |
typeof Model |
Returns¶
string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:603
handleAndOr¶
▸ handleAndOr<S>(where, key, model): undefined | Query
Type parameters¶
| Name | Type |
|---|---|
S |
extends typeof Model |
Parameters¶
| Name | Type |
|---|---|
where |
SearchWhereFilter<AnyObject> |
key |
never |
model |
S |
Returns¶
undefined | Query
Defined in¶
services/search-service/src/classes/base/query.builder.ts:320
handleKeys¶
▸ handleKeys(model, key, where): undefined | Query | Queries
Parameters¶
| Name | Type |
|---|---|
model |
typeof Model |
key |
never |
where |
SearchWhereFilter<AnyObject> |
Returns¶
Defined in¶
services/search-service/src/classes/base/query.builder.ts:269
handleObjectValue¶
▸ handleObjectValue<S>(expression, p, key, model): undefined | Query
Type parameters¶
| Name | Type |
|---|---|
S |
extends typeof Model |
Parameters¶
| Name | Type |
|---|---|
expression |
PredicateComparison<ShortHandEqualType> |
p |
PropertyDefinition |
key |
never |
model |
S |
Returns¶
undefined | Query
Defined in¶
services/search-service/src/classes/base/query.builder.ts:351
isDateType¶
▸ isDateType(type): boolean
Parameters¶
| Name | Type |
|---|---|
type |
PropertyType |
Returns¶
boolean
Defined in¶
services/search-service/src/classes/base/query.builder.ts:445
isNumberType¶
▸ isNumberType(type, val): boolean
Parameters¶
| Name | Type |
|---|---|
type |
PropertyType |
val |
PredicateValueType<ShortHandEqualType> |
Returns¶
boolean
Defined in¶
services/search-service/src/classes/base/query.builder.ts:451
isStringType¶
▸ isStringType(type, val): boolean
Parameters¶
| Name | Type |
|---|---|
type |
PropertyType |
val |
PredicateValueType<ShortHandEqualType> |
Returns¶
boolean
Defined in¶
services/search-service/src/classes/base/query.builder.ts:438
limit¶
▸ limit(): void
Returns¶
void
Defined in¶
services/search-service/src/classes/base/query.builder.ts:77
order¶
▸ order(columns): void
Parameters¶
| Name | Type |
|---|---|
columns |
keyof T[] |
Returns¶
void
Defined in¶
services/search-service/src/classes/base/query.builder.ts:104
paramString¶
▸ paramString(index): string
Parameters¶
| Name | Type |
|---|---|
index |
number |
Returns¶
string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:210
paramsBuild¶
▸ paramsBuild(param): AnyObject | (string | AnyObject)[]
Parameters¶
| Name | Type |
|---|---|
param |
string |
Returns¶
AnyObject | (string | AnyObject)[]
Defined in¶
services/search-service/src/classes/base/query.builder.ts:202
parseIdPlaceholder¶
▸ parseIdPlaceholder(prop): string
Parameters¶
| Name | Type |
|---|---|
prop |
PropertyDefinition |
Returns¶
string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:391
queryBuild¶
▸ queryBuild(models, ignoredColumns?, type?): string
Parameters¶
| Name | Type |
|---|---|
models |
(typeof Model | SearchableModel<T, typeof Model>)[] |
ignoredColumns? |
keyof T[] |
type? |
typeof Model |
Returns¶
string
Defined in¶
services/search-service/src/classes/base/query.builder.ts:214
search¶
▸ Abstract search(model, columns, ignoredColumns): void
Parameters¶
| Name | Type |
|---|---|
model |
typeof Model |
columns |
keyof T[] | ColumnMap<T> |
ignoredColumns |
keyof T[] |
Returns¶
void
Defined in¶
services/search-service/src/classes/base/query.builder.ts:50
toArrayPropTypes¶
▸ toArrayPropTypes<R>(prop, val): any
Type parameters¶
| Name |
|---|
R |
Parameters¶
| Name | Type |
|---|---|
prop |
PropertyDefinition |
val |
R | R[] |
Returns¶
any
Defined in¶
services/search-service/src/classes/base/query.builder.ts:471
toColumnValue¶
▸ toColumnValue(prop, val): any
Parameters¶
| Name | Type |
|---|---|
prop |
PropertyDefinition |
val |
PredicateValueType<ShortHandEqualType> |
Returns¶
any
Defined in¶
services/search-service/src/classes/base/query.builder.ts:406
toDateType¶
▸ toDateType(val): Object
Parameters¶
| Name | Type |
|---|---|
val |
string | Date |
Returns¶
Object
| Name | Type |
|---|---|
params |
string[] |
sql |
string |
Defined in¶
services/search-service/src/classes/base/query.builder.ts:458
whereBuild¶
▸ whereBuild<S>(model, where?): Object
Type parameters¶
| Name | Type |
|---|---|
S |
extends typeof Model |
Parameters¶
| Name | Type |
|---|---|
model |
S |
where? |
SearchWhereFilter<AnyObject> |
Returns¶
Object
| Name | Type |
|---|---|
params |
ShortHandEqualType[] |
sql |
string |
Defined in¶
services/search-service/src/classes/base/query.builder.ts:255