@@ -3,7 +3,6 @@ import { mapKeys } from 'lodash'
33import { stringify } from 'querystring'
44import {
55 Brackets ,
6- FindOperator ,
76 FindOptionsRelationByString ,
87 FindOptionsRelations ,
98 FindOptionsUtils ,
@@ -15,21 +14,23 @@ import {
1514import { WherePredicateOperator } from 'typeorm/query-builder/WhereClause'
1615import { OrmUtils } from 'typeorm/util/OrmUtils'
1716import { PaginateQuery } from './decorator'
18- import { FilterOperator , FilterSuffix , addFilter } from './filter'
17+ import { addFilter , FilterOperator , FilterSuffix } from './filter'
1918import {
20- Column ,
21- Order ,
22- RelationColumn ,
23- SortBy ,
2419 checkIsEmbedded ,
2520 checkIsRelation ,
21+ Column ,
2622 extractVirtualProperty ,
2723 fixColumnAlias ,
2824 getPropertiesByColumnName ,
2925 getQueryUrlComponents ,
3026 includesAllPrimaryKeyColumns ,
3127 isEntityKey ,
28+ isFindOperator ,
29+ isRepository ,
30+ Order ,
3231 positiveNumberOrDefault ,
32+ RelationColumn ,
33+ SortBy ,
3334} from './helper'
3435
3536const logger : Logger = new Logger ( 'nestjs-paginate' )
@@ -116,7 +117,7 @@ function flattenWhereAndTransform<T>(
116117 if ( obj . hasOwnProperty ( key ) ) {
117118 const joinedKey = parentKey ? `${ parentKey } ${ separator } ${ key } ` : key
118119
119- if ( typeof value === 'object' && value !== null && ! ( value instanceof FindOperator ) ) {
120+ if ( typeof value === 'object' && value !== null && ! isFindOperator ( value ) ) {
120121 return flattenWhereAndTransform ( queryBuilder , value as FindOptionsWhere < T > , separator , joinedKey )
121122 } else {
122123 const property = getPropertiesByColumnName ( joinedKey )
@@ -210,9 +211,9 @@ export async function paginate<T extends ObjectLiteral>(
210211
211212 let [ items , totalItems ] : [ T [ ] , number ] = [ [ ] , 0 ]
212213
213- const queryBuilder = repo instanceof Repository ? repo . createQueryBuilder ( '__root' ) : repo
214+ const queryBuilder = isRepository ( repo ) ? repo . createQueryBuilder ( '__root' ) : repo
214215
215- if ( repo instanceof Repository && ! config . relations && config . loadEagerRelations === true ) {
216+ if ( isRepository ( repo ) && ! config . relations && config . loadEagerRelations === true ) {
216217 if ( ! config . relations ) {
217218 FindOptionsUtils . joinEagerRelations ( queryBuilder , queryBuilder . alias , repo . metadata )
218219 }
@@ -254,7 +255,7 @@ export async function paginate<T extends ObjectLiteral>(
254255 createQueryBuilderRelations ( queryBuilder . alias , relations )
255256 }
256257
257- const dbType = ( repo instanceof Repository ? repo . manager : repo ) . connection . options . type
258+ const dbType = ( isRepository ( repo ) ? repo . manager : repo ) . connection . options . type
258259 const isMariaDbOrMySql = ( dbType : string ) => dbType === 'mariadb' || dbType === 'mysql'
259260 const isMMDb = isMariaDbOrMySql ( dbType )
260261
@@ -327,7 +328,7 @@ export async function paginate<T extends ObjectLiteral>(
327328 queryBuilder . select ( cols )
328329 }
329330
330- if ( config . where && repo instanceof Repository ) {
331+ if ( config . where && isRepository ( repo ) ) {
331332 const baseWhereStr = generateWhereStatement ( queryBuilder , config . where )
332333 queryBuilder . andWhere ( `(${ baseWhereStr } )` )
333334 }
0 commit comments