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