Skip to content

@sourceloop/search-service / Exports / SearchQueryBuilder

Class: SearchQueryBuilder<T>

Type parameters

Name Type
T extends Model

Hierarchy

Table of contents

Constructors

Properties

Accessors

Methods

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

Query

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

undefined | Query | Queries

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


▸ 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