nestjs-paginate 4.3.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,9 @@
1
1
  import { CatEntity } from './cat.entity';
2
+ import { SizeEmbed } from './size.embed';
2
3
  export declare class CatToyEntity {
3
4
  id: number;
4
5
  name: string;
6
+ size: SizeEmbed;
5
7
  cat: CatEntity;
6
8
  createdAt: string;
7
9
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CatToyEntity = void 0;
13
13
  const typeorm_1 = require("typeorm");
14
14
  const cat_entity_1 = require("./cat.entity");
15
+ const size_embed_1 = require("./size.embed");
15
16
  let CatToyEntity = class CatToyEntity {
16
17
  };
17
18
  __decorate([
@@ -22,6 +23,10 @@ __decorate([
22
23
  (0, typeorm_1.Column)(),
23
24
  __metadata("design:type", String)
24
25
  ], CatToyEntity.prototype, "name", void 0);
26
+ __decorate([
27
+ (0, typeorm_1.Column)(() => size_embed_1.SizeEmbed),
28
+ __metadata("design:type", size_embed_1.SizeEmbed)
29
+ ], CatToyEntity.prototype, "size", void 0);
25
30
  __decorate([
26
31
  (0, typeorm_1.ManyToOne)(() => cat_entity_1.CatEntity, (cat) => cat.toys),
27
32
  (0, typeorm_1.JoinColumn)(),
@@ -1 +1 @@
1
- {"version":3,"file":"cat-toy.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat-toy.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAyG;AACzG,6CAAwC;AAGjC,IAAM,YAAY,GAAlB,MAAM,YAAY;CAaxB,CAAA;AAZG;IAAC,IAAA,gCAAsB,GAAE;;wCACf;AAEV;IAAC,IAAA,gBAAM,GAAE;;0CACG;AAEZ;IAAC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,sBAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7C,IAAA,oBAAU,GAAE;8BACR,sBAAS;yCAAA;AAEd;IAAC,IAAA,0BAAgB,GAAE;;+CACF;AAZR,YAAY;IADxB,IAAA,gBAAM,GAAE;GACI,YAAY,CAaxB;AAbY,oCAAY"}
1
+ {"version":3,"file":"cat-toy.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat-toy.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAyG;AACzG,6CAAwC;AACxC,6CAAwC;AAGjC,IAAM,YAAY,GAAlB,MAAM,YAAY;CAgBxB,CAAA;AAfG;IAAC,IAAA,gCAAsB,GAAE;;wCACf;AAEV;IAAC,IAAA,gBAAM,GAAE;;0CACG;AAEZ;IAAC,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,sBAAS,CAAC;8BAClB,sBAAS;0CAAA;AAEf;IAAC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,sBAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7C,IAAA,oBAAU,GAAE;8BACR,sBAAS;yCAAA;AAEd;IAAC,IAAA,0BAAgB,GAAE;;+CACF;AAfR,YAAY;IADxB,IAAA,gBAAM,GAAE;GACI,YAAY,CAgBxB;AAhBY,oCAAY"}
@@ -1,10 +1,12 @@
1
1
  import { CatToyEntity } from './cat-toy.entity';
2
2
  import { CatHomeEntity } from './cat-home.entity';
3
+ import { SizeEmbed } from './size.embed';
3
4
  export declare class CatEntity {
4
5
  id: number;
5
6
  name: string;
6
7
  color: string;
7
8
  age: number | null;
9
+ size: SizeEmbed;
8
10
  toys: CatToyEntity[];
9
11
  home: CatHomeEntity;
10
12
  createdAt: string;
@@ -13,6 +13,7 @@ exports.CatEntity = void 0;
13
13
  const typeorm_1 = require("typeorm");
14
14
  const cat_toy_entity_1 = require("./cat-toy.entity");
15
15
  const cat_home_entity_1 = require("./cat-home.entity");
16
+ const size_embed_1 = require("./size.embed");
16
17
  let CatEntity = class CatEntity {
17
18
  };
18
19
  __decorate([
@@ -31,6 +32,10 @@ __decorate([
31
32
  (0, typeorm_1.Column)({ nullable: true }),
32
33
  __metadata("design:type", Number)
33
34
  ], CatEntity.prototype, "age", void 0);
35
+ __decorate([
36
+ (0, typeorm_1.Column)(() => size_embed_1.SizeEmbed),
37
+ __metadata("design:type", size_embed_1.SizeEmbed)
38
+ ], CatEntity.prototype, "size", void 0);
34
39
  __decorate([
35
40
  (0, typeorm_1.OneToMany)(() => cat_toy_entity_1.CatToyEntity, (catToy) => catToy.cat),
36
41
  __metadata("design:type", Array)
@@ -1 +1 @@
1
- {"version":3,"file":"cat.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCASgB;AAChB,qDAA+C;AAC/C,uDAAiD;AAG1C,IAAM,SAAS,GAAf,MAAM,SAAS;CAyBrB,CAAA;AAxBG;IAAC,IAAA,gCAAsB,GAAE;;qCACf;AAEV;IAAC,IAAA,gBAAM,GAAE;;uCACG;AAEZ;IAAC,IAAA,gBAAM,GAAE;;wCACI;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACT;AAElB;IAAC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,6BAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;;uCAClC;AAEpB;IAAC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,+BAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3E,IAAA,oBAAU,GAAE;8BACP,+BAAa;uCAAA;AAEnB;IAAC,IAAA,0BAAgB,GAAE;;4CACF;AAEjB;IAAC,IAAA,0BAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACnB;AAxBT,SAAS;IADrB,IAAA,gBAAM,GAAE;GACI,SAAS,CAyBrB;AAzBY,8BAAS"}
1
+ {"version":3,"file":"cat.entity.js","sourceRoot":"","sources":["../../src/__tests__/cat.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCASgB;AAChB,qDAA+C;AAC/C,uDAAiD;AACjD,6CAAwC;AAGjC,IAAM,SAAS,GAAf,MAAM,SAAS;CA4BrB,CAAA;AA3BG;IAAC,IAAA,gCAAsB,GAAE;;qCACf;AAEV;IAAC,IAAA,gBAAM,GAAE;;uCACG;AAEZ;IAAC,IAAA,gBAAM,GAAE;;wCACI;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACT;AAElB;IAAC,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,sBAAS,CAAC;8BAClB,sBAAS;uCAAA;AAEf;IAAC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,6BAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;;uCAClC;AAEpB;IAAC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,+BAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3E,IAAA,oBAAU,GAAE;8BACP,+BAAa;uCAAA;AAEnB;IAAC,IAAA,0BAAgB,GAAE;;4CACF;AAEjB;IAAC,IAAA,0BAAgB,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACnB;AA3BT,SAAS;IADrB,IAAA,gBAAM,GAAE;GACI,SAAS,CA4BrB;AA5BY,8BAAS"}
@@ -0,0 +1,5 @@
1
+ export declare class SizeEmbed {
2
+ height: number;
3
+ width: number;
4
+ length: number;
5
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SizeEmbed = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ class SizeEmbed {
15
+ }
16
+ __decorate([
17
+ (0, typeorm_1.Column)(),
18
+ __metadata("design:type", Number)
19
+ ], SizeEmbed.prototype, "height", void 0);
20
+ __decorate([
21
+ (0, typeorm_1.Column)(),
22
+ __metadata("design:type", Number)
23
+ ], SizeEmbed.prototype, "width", void 0);
24
+ __decorate([
25
+ (0, typeorm_1.Column)(),
26
+ __metadata("design:type", Number)
27
+ ], SizeEmbed.prototype, "length", void 0);
28
+ exports.SizeEmbed = SizeEmbed;
29
+ //# sourceMappingURL=size.embed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"size.embed.js","sourceRoot":"","sources":["../../src/__tests__/size.embed.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAgC;AAEhC,MAAa,SAAS;CASrB;AARG;IAAC,IAAA,gBAAM,GAAE;;yCACK;AAEd;IAAC,IAAA,gBAAM,GAAE;;wCACI;AAEb;IAAC,IAAA,gBAAM,GAAE;;yCACK;AARlB,8BASC"}
package/lib/paginate.js CHANGED
@@ -182,7 +182,7 @@ async function paginate(query, repo, config) {
182
182
  nullSort = config.nullSort === 'last' ? 'NULLS LAST' : 'NULLS FIRST';
183
183
  }
184
184
  for (const order of sortBy) {
185
- if (order[0].split('.').length > 1) {
185
+ if (queryBuilder.expressionMap.mainAlias.metadata.hasRelationWithPropertyPath(order[0].split('.')[0])) {
186
186
  queryBuilder.addOrderBy(`${queryBuilder.alias}_${order[0]}`, order[1], nullSort);
187
187
  }
188
188
  else {
@@ -210,9 +210,12 @@ async function paginate(query, repo, config) {
210
210
  for (const column of searchBy) {
211
211
  const propertyPath = column.split('.');
212
212
  if (propertyPath.length > 1) {
213
+ const alias = queryBuilder.expressionMap.mainAlias.metadata.hasRelationWithPropertyPath(propertyPath[0])
214
+ ? `${qb.alias}_${column}`
215
+ : `${qb.alias}.${column}`;
213
216
  const condition = {
214
217
  operator: 'ilike',
215
- parameters: [`${qb.alias}_${column}`, `:${column}`],
218
+ parameters: [alias, `:${column}`],
216
219
  };
217
220
  qb.orWhere(qb['createWhereConditionExpression'](condition), {
218
221
  [column]: `%${query.search}%`,
@@ -235,19 +238,22 @@ async function paginate(query, repo, config) {
235
238
  const condition = qb['getWherePredicateCondition'](column, filter[column]);
236
239
  let parameters = { [column]: filter[column].value };
237
240
  // TODO: refactor below
241
+ const alias = queryBuilder.expressionMap.mainAlias.metadata.hasRelationWithPropertyPath(propertyPath[0])
242
+ ? `${qb.alias}_${column}`
243
+ : `${qb.alias}.${column}`;
238
244
  switch (condition.operator) {
239
245
  case 'between':
240
- condition.parameters = [`${qb.alias}_${column}`, `:${column}_from`, `:${column}_to`];
246
+ condition.parameters = [alias, `:${column}_from`, `:${column}_to`];
241
247
  parameters = {
242
248
  [column + '_from']: filter[column].value[0],
243
249
  [column + '_to']: filter[column].value[1],
244
250
  };
245
251
  break;
246
252
  case 'in':
247
- condition.parameters = [`${qb.alias}_${column}`, `:...${column}`];
253
+ condition.parameters = [alias, `:...${column}`];
248
254
  break;
249
255
  default:
250
- condition.parameters = [`${qb.alias}_${column}`, `:${column}`];
256
+ condition.parameters = [alias, `:${column}`];
251
257
  break;
252
258
  }
253
259
  qb.andWhere(qb['createWhereConditionExpression'](condition), parameters);
@@ -1 +1 @@
1
- {"version":3,"file":"paginate.js","sourceRoot":"","sources":["../src/paginate.ts"],"names":[],"mappings":";;;AAAA,qCAgBgB;AAEhB,2CAA4D;AAC5D,mCAAwC;AACxC,6CAAuC;AAIvC,MAAa,SAAS;CAmBrB;AAnBD,8BAmBC;AAkBD,IAAY,cAUX;AAVD,WAAY,cAAc;IACtB,4BAAU,CAAA;IACV,4BAAU,CAAA;IACV,8BAAY,CAAA;IACZ,4BAAU,CAAA;IACV,gCAAc,CAAA;IACd,4BAAU,CAAA;IACV,8BAAY,CAAA;IACZ,8BAAY,CAAA;IACZ,8BAAY,CAAA;AAChB,CAAC,EAVW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAUzB;AAED,SAAgB,UAAU,CAAC,KAAc;IACrC,OAAO,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAY,CAAC,CAAA;AACxD,CAAC;AAFD,gCAEC;AAEY,QAAA,wBAAwB,GAAG,IAAI,GAAG,CAA2D;IACtG,CAAC,cAAc,CAAC,EAAE,EAAE,eAAK,CAAC;IAC1B,CAAC,cAAc,CAAC,EAAE,EAAE,kBAAQ,CAAC;IAC7B,CAAC,cAAc,CAAC,GAAG,EAAE,yBAAe,CAAC;IACrC,CAAC,cAAc,CAAC,EAAE,EAAE,YAAE,CAAC;IACvB,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAM,CAAC;IAC7B,CAAC,cAAc,CAAC,EAAE,EAAE,kBAAQ,CAAC;IAC7B,CAAC,cAAc,CAAC,GAAG,EAAE,yBAAe,CAAC;IACrC,CAAC,cAAc,CAAC,GAAG,EAAE,iBAAO,CAAC;IAC7B,CAAC,cAAc,CAAC,GAAG,EAAE,aAAG,CAAC;CAC5B,CAAC,CAAA;AAEF,SAAgB,eAAe,CAAC,GAAW;IACvC,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAEtC,IAAI,OAAO,EAAE;QACT,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;KACtF;SAAM;QACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACnB;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1C,OAAO,EAAE,CAAA;KACZ;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,IAAI,EAAE;YACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACvB;KACJ;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,IAAI,EAAE;YACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SACvB;aAAM;YACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,CAAA;SAC1C;KACJ;IAED,OAAO,MAAM,CAAA;AACjB,CAAC;AA1BD,0CA0BC;AAED,SAAS,WAAW,CAAI,KAAoB,EAAE,MAAyB;IACnE,MAAM,MAAM,GAAmD,EAAE,CAAA;IACjE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;QAC5C,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,CAAC,EAAE;YACvC,SAAQ;SACX;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAClC,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAC1D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;YAC1B,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,SAAQ;aACX;YACD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAA;YAEhC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACrD,SAAQ;aACX;YACD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACpD,SAAQ;aACX;YACD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;gBACjB,QAAQ,GAAG,EAAE;oBACT,KAAK,cAAc,CAAC,GAAG;wBACnB,MAAM,CAAC,MAAM,CAAC,GAAG,gCAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;wBACvE,MAAK;oBACT,KAAK,cAAc,CAAC,EAAE;wBAClB,MAAM,CAAC,MAAM,CAAC,GAAG,gCAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;wBACpE,MAAK;oBACT;wBACI,MAAM,CAAC,MAAM,CAAC,GAAG,gCAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;wBACzD,MAAK;iBACZ;aACJ;YACD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;gBACjB,MAAM,CAAC,MAAM,CAAC,GAAG,gCAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;aACrE;SACJ;KACJ;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAC1B,KAAoB,EACpB,IAA2C,EAC3C,MAAyB;;IAEzB,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAA;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAA;IACxF,MAAM,MAAM,GAAG,EAAe,CAAA;IAC9B,MAAM,QAAQ,GAAgB,EAAE,CAAA;IAChC,IAAI,IAAI,CAAA;IAER,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;IAC7C,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACpB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,WAAW,GAAG,GAAG,CAAC,MAAM,CAAA;QACxB,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAA;KAC3B;SAAM;QACH,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;KACzB;IAED,IAAI,MAAM,CAAC,YAAY,EAAE;QACrB,IAAI,GAAG,SAAS,CAAA;KACnB;SAAM,IAAI,MAAM,CAAC,MAAM,EAAE;QACtB,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;KACnC;SAAM;QACH,IAAI,GAAG,WAAW,GAAG,SAAS,CAAA;KACjC;IAED,SAAS,WAAW,CAAC,aAA0B,EAAE,MAAc;QAC3D,OAAO,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;IACpD,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,oCAA2B,EAAE,CAAA;IAE9E,IAAI,KAAK,CAAC,MAAM,EAAE;QACd,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;YAC9B,IAAI,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBACrF,MAAM,CAAC,IAAI,CAAC,KAAiB,CAAC,CAAA;aACjC;SACJ;KACJ;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAChB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;KACjF;IAED,IAAI,MAAM,CAAC,iBAAiB,EAAE;QAC1B,IAAI,KAAK,CAAC,QAAQ,EAAE;YAChB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACjC,IAAI,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE;oBAC/C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;iBACxB;aACJ;SACJ;aAAM;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;SAC7C;KACJ;IAED,IAAI,IAAI,GAAG,CAAC;QAAE,IAAI,GAAG,CAAC,CAAA;IAEtB,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAEhD,IAAI,YAAmC,CAAA;IAEvC,IAAI,IAAI,YAAY,oBAAU,EAAE;QAC5B,YAAY,GAAG,IAAI;aACd,kBAAkB,CAAC,GAAG,CAAC;aACvB,IAAI,CAAC,KAAK,CAAC;aACX,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;KAChC;SAAM;QACH,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;KAC3D;IAED,IAAI,MAAA,MAAM,CAAC,SAAS,0CAAE,MAAM,EAAE;QAC1B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAClC,YAAY,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC,KAAK,IAAI,QAAQ,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAA;QAC5G,CAAC,CAAC,CAAA;KACL;IAED,IAAI,QAAQ,GAA6C,SAAS,CAAA;IAClE,IAAI,MAAM,CAAC,QAAQ,EAAE;QACjB,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAA;KACvE;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QACxB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,YAAY,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;SACnF;aAAM;YACH,YAAY,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;SACnF;KACJ;IAED,IAAI,CAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,MAAM,IAAG,CAAC,EAAE;QAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACnB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACpC,OAAO,GAAG,YAAY,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,CAAA;aAClD;YAED,OAAO,GAAG,YAAY,CAAC,KAAK,IAAI,GAAG,EAAE,CAAA;QACzC,CAAC,CAAC,CAAA;QACF,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;KACpC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE;QACd,YAAY,CAAC,QAAQ,CAAC,IAAI,kBAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KACzE;IAED,IAAI,MAAM,CAAC,WAAW,EAAE;QACpB,YAAY,CAAC,WAAW,EAAE,CAAA;KAC7B;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE;QACjC,YAAY,CAAC,QAAQ,CACjB,IAAI,kBAAQ,CAAC,CAAC,EAAyB,EAAE,EAAE;YACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;gBAC3B,MAAM,YAAY,GAAI,MAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAClD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,MAAM,SAAS,GAA2B;wBACtC,QAAQ,EAAE,OAAO;wBACjB,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;qBACtD,CAAA;oBACD,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC,SAAS,CAAC,EAAE;wBACxD,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG;qBAChC,CAAC,CAAA;iBACL;qBAAM;oBACH,EAAE,CAAC,OAAO,CAAC;wBACP,CAAC,MAAM,CAAC,EAAE,IAAA,eAAK,EAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;qBACvC,CAAC,CAAA;iBACL;aACJ;QACL,CAAC,CAAC,CACL,CAAA;KACJ;IAED,IAAI,KAAK,CAAC,MAAM,EAAE;QACd,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACzC,YAAY,CAAC,QAAQ,CACjB,IAAI,kBAAQ,CAAC,CAAC,EAAyB,EAAE,EAAE;YACvC,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;gBACzB,MAAM,YAAY,GAAI,MAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAClD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,MAAM,SAAS,GAAG,EAAE,CAAC,4BAA4B,CAAC,CAC9C,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,CACS,CAAA;oBAC3B,IAAI,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;oBACnD,uBAAuB;oBACvB,QAAQ,SAAS,CAAC,QAAQ,EAAE;wBACxB,KAAK,SAAS;4BACV,SAAS,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,OAAO,EAAE,IAAI,MAAM,KAAK,CAAC,CAAA;4BACpF,UAAU,GAAG;gCACT,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gCAC3C,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;6BAC5C,CAAA;4BACD,MAAK;wBACT,KAAK,IAAI;4BACL,SAAS,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,MAAM,EAAE,EAAE,OAAO,MAAM,EAAE,CAAC,CAAA;4BACjE,MAAK;wBACT;4BACI,SAAS,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC,CAAA;4BAC9D,MAAK;qBACZ;oBACD,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAA;iBAC3E;qBAAM;oBACH,EAAE,CAAC,QAAQ,CAAC;wBACR,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;qBAC3B,CAAC,CAAA;iBACL;aACJ;QACL,CAAC,CAAC,CACL,CAAA;KACJ;IAED,CAAC;IAAA,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;IAE3D,IAAI,UAAU,GAAG,UAAU,GAAG,KAAK,CAAA;IACnC,IAAI,UAAU,GAAG,KAAK;QAAE,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAE1D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChF,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEjE,MAAM,aAAa,GACf,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAErG,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM;QAC5B,CAAC,CAAC,GAAG;YACH,IAAA,uBAAS,EACL,IAAA,gBAAO,EAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,EACzD,GAAG,EACH,GAAG,EACH,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CACvC;QACH,CAAC,CAAC,EAAE,CAAA;IAER,MAAM,OAAO,GAAG,UAAU,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,EAAE,CAAA;IAE3F,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAA;IAEtE,MAAM,OAAO,GAAiB;QAC1B,IAAI,EAAE,KAAK;QACX,IAAI,EAAE;YACF,YAAY,EAAE,KAAK;YACnB,UAAU;YACV,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,UAAU;YACtB,MAAM;YACN,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC7C,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB;QACD,KAAK,EAAE;YACH,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3C,QAAQ,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;YACxD,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC;YACxB,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;YAC7D,IAAI,EAAE,IAAI,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC;SAC9E;KACJ,CAAA;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,EAAK,EAAE,OAAO,CAAC,CAAA;AACrD,CAAC;AA/ND,4BA+NC"}
1
+ {"version":3,"file":"paginate.js","sourceRoot":"","sources":["../src/paginate.ts"],"names":[],"mappings":"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"}
@@ -27,17 +27,17 @@ describe('paginate', () => {
27
27
  catToyRepo = connection.getRepository(cat_toy_entity_1.CatToyEntity);
28
28
  catHomeRepo = connection.getRepository(cat_home_entity_1.CatHomeEntity);
29
29
  cats = await catRepo.save([
30
- catRepo.create({ name: 'Milo', color: 'brown', age: 6 }),
31
- catRepo.create({ name: 'Garfield', color: 'ginger', age: 5 }),
32
- catRepo.create({ name: 'Shadow', color: 'black', age: 4 }),
33
- catRepo.create({ name: 'George', color: 'white', age: 3 }),
34
- catRepo.create({ name: 'Leche', color: 'white', age: null }),
30
+ catRepo.create({ name: 'Milo', color: 'brown', age: 6, size: { height: 25, width: 10, length: 40 } }),
31
+ catRepo.create({ name: 'Garfield', color: 'ginger', age: 5, size: { height: 30, width: 15, length: 45 } }),
32
+ catRepo.create({ name: 'Shadow', color: 'black', age: 4, size: { height: 25, width: 10, length: 50 } }),
33
+ catRepo.create({ name: 'George', color: 'white', age: 3, size: { height: 35, width: 12, length: 40 } }),
34
+ catRepo.create({ name: 'Leche', color: 'white', age: null, size: { height: 10, width: 5, length: 15 } }),
35
35
  ]);
36
36
  catToys = await catToyRepo.save([
37
- catToyRepo.create({ name: 'Fuzzy Thing', cat: cats[0] }),
38
- catToyRepo.create({ name: 'Stuffed Mouse', cat: cats[0] }),
39
- catToyRepo.create({ name: 'Mouse', cat: cats[0] }),
40
- catToyRepo.create({ name: 'String', cat: cats[1] }),
37
+ catToyRepo.create({ name: 'Fuzzy Thing', cat: cats[0], size: { height: 10, width: 10, length: 10 } }),
38
+ catToyRepo.create({ name: 'Stuffed Mouse', cat: cats[0], size: { height: 5, width: 5, length: 12 } }),
39
+ catToyRepo.create({ name: 'Mouse', cat: cats[0], size: { height: 6, width: 4, length: 13 } }),
40
+ catToyRepo.create({ name: 'String', cat: cats[1], size: { height: 1, width: 1, length: 50 } }),
41
41
  ]);
42
42
  catHomes = await catHomeRepo.save([
43
43
  catHomeRepo.create({ name: 'Box', cat: cats[0] }),
@@ -524,7 +524,7 @@ describe('paginate', () => {
524
524
  relations: ['cat'],
525
525
  sortableColumns: ['id', 'name'],
526
526
  filterableColumns: {
527
- createdAt: [paginate_1.FilterOperator.BTW],
527
+ 'cat.age': [paginate_1.FilterOperator.BTW],
528
528
  },
529
529
  };
530
530
  const query = {
@@ -537,9 +537,381 @@ describe('paginate', () => {
537
537
  expect(result.meta.filter).toStrictEqual({
538
538
  'cat.age': '$btw:6,10',
539
539
  });
540
- expect(result.data).toStrictEqual([catHomes[0], catHomes[1]]);
540
+ expect(result.data).toStrictEqual([catHomes[0]]);
541
541
  expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.age=$btw:6,10');
542
542
  });
543
+ it('should return result based on sort on embedded entity', async () => {
544
+ const config = {
545
+ sortableColumns: ['id', 'name', 'size.height', 'size.length', 'size.width'],
546
+ searchableColumns: ['name'],
547
+ };
548
+ const query = {
549
+ path: '',
550
+ sortBy: [
551
+ ['size.height', 'ASC'],
552
+ ['size.length', 'ASC'],
553
+ ],
554
+ };
555
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
556
+ const orderedCats = [cats[4], cats[0], cats[2], cats[1], cats[3]];
557
+ expect(result.data).toStrictEqual(orderedCats);
558
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=size.height:ASC&sortBy=size.length:ASC');
559
+ });
560
+ it('should return result based on sort on embedded entity when other relations loaded', async () => {
561
+ const config = {
562
+ sortableColumns: ['id', 'name', 'size.height', 'size.length', 'size.width'],
563
+ searchableColumns: ['name'],
564
+ relations: ['home', 'toys'],
565
+ };
566
+ const query = {
567
+ path: '',
568
+ sortBy: [
569
+ ['size.height', 'DESC'],
570
+ ['size.length', 'DESC'],
571
+ ],
572
+ };
573
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
574
+ const copyCats = cats.map((cat) => {
575
+ const copy = (0, lodash_1.clone)(cat);
576
+ copy.home = null;
577
+ copy.toys = [];
578
+ return copy;
579
+ });
580
+ const copyHomes = catHomes.map((home) => {
581
+ const copy = (0, lodash_1.clone)(home);
582
+ delete copy.cat;
583
+ return copy;
584
+ });
585
+ copyCats[0].home = copyHomes[0];
586
+ copyCats[1].home = copyHomes[1];
587
+ const copyToys = catToys.map((toy) => {
588
+ const copy = (0, lodash_1.clone)(toy);
589
+ delete copy.cat;
590
+ return copy;
591
+ });
592
+ copyCats[0].toys = [copyToys[0], copyToys[1], copyToys[2]];
593
+ copyCats[1].toys = [copyToys[3]];
594
+ const orderedCats = [copyCats[3], copyCats[1], copyCats[2], copyCats[0], copyCats[4]];
595
+ expect(result.data).toStrictEqual(orderedCats);
596
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=size.height:DESC&sortBy=size.length:DESC');
597
+ });
598
+ it('should return result based on sort on embedded entity on one-to-many relation', async () => {
599
+ const config = {
600
+ sortableColumns: ['id', 'name', 'toys.size.height', 'toys.size.length', 'toys.size.width'],
601
+ searchableColumns: ['name'],
602
+ relations: ['toys'],
603
+ };
604
+ const query = {
605
+ path: '',
606
+ sortBy: [
607
+ ['id', 'DESC'],
608
+ ['toys.size.height', 'ASC'],
609
+ ['toys.size.length', 'ASC'],
610
+ ],
611
+ };
612
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
613
+ const toy0 = (0, lodash_1.clone)(catToys[0]);
614
+ delete toy0.cat;
615
+ const toy1 = (0, lodash_1.clone)(catToys[1]);
616
+ delete toy1.cat;
617
+ const toy2 = (0, lodash_1.clone)(catToys[2]);
618
+ delete toy2.cat;
619
+ const toy3 = (0, lodash_1.clone)(catToys[3]);
620
+ delete toy3.cat;
621
+ const orderedCats = [
622
+ Object.assign((0, lodash_1.clone)(cats[4]), { toys: [] }),
623
+ Object.assign((0, lodash_1.clone)(cats[3]), { toys: [] }),
624
+ Object.assign((0, lodash_1.clone)(cats[2]), { toys: [] }),
625
+ Object.assign((0, lodash_1.clone)(cats[1]), { toys: [toy3] }),
626
+ Object.assign((0, lodash_1.clone)(cats[0]), { toys: [toy1, toy2, toy0] }),
627
+ ];
628
+ expect(result.data).toStrictEqual(orderedCats);
629
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:DESC&sortBy=toys.size.height:ASC&sortBy=toys.size.length:ASC');
630
+ });
631
+ it('should return result based on sort on embedded entity on many-to-one relation', async () => {
632
+ const config = {
633
+ sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
634
+ searchableColumns: ['name'],
635
+ relations: ['cat'],
636
+ };
637
+ const query = {
638
+ path: '',
639
+ sortBy: [
640
+ ['cat.size.height', 'DESC'],
641
+ ['cat.size.length', 'DESC'],
642
+ ['name', 'ASC'],
643
+ ],
644
+ };
645
+ const result = await (0, paginate_1.paginate)(query, catToyRepo, config);
646
+ const orderedToys = [catToys[3], catToys[0], catToys[2], catToys[1]];
647
+ expect(result.data).toStrictEqual(orderedToys);
648
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.size.height:DESC&sortBy=cat.size.length:DESC&sortBy=name:ASC');
649
+ });
650
+ it('should return result based on sort on embedded entity on one-to-one relation', async () => {
651
+ const config = {
652
+ sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
653
+ searchableColumns: ['name'],
654
+ relations: ['cat'],
655
+ };
656
+ const query = {
657
+ path: '',
658
+ sortBy: [['cat.size.height', 'DESC']],
659
+ };
660
+ const result = await (0, paginate_1.paginate)(query, catHomeRepo, config);
661
+ const orderedHomes = [catHomes[1], catHomes[0]];
662
+ expect(result.data).toStrictEqual(orderedHomes);
663
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.size.height:DESC');
664
+ });
665
+ it('should return result based on search on embedded entity', async () => {
666
+ const config = {
667
+ sortableColumns: ['id', 'name', 'size.height', 'size.length', 'size.width'],
668
+ searchableColumns: ['size.height'],
669
+ };
670
+ const query = {
671
+ path: '',
672
+ search: '10',
673
+ };
674
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
675
+ expect(result.data).toStrictEqual([cats[4]]);
676
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=10');
677
+ });
678
+ it('should return result based on search term on embedded entity when other relations loaded', async () => {
679
+ const config = {
680
+ sortableColumns: ['id', 'name', 'size.height', 'size.length', 'size.width'],
681
+ searchableColumns: ['size.height'],
682
+ relations: ['home', 'toys'],
683
+ };
684
+ const query = {
685
+ path: '',
686
+ search: '10',
687
+ };
688
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
689
+ expect(result.meta.search).toStrictEqual('10');
690
+ const copyCat = (0, lodash_1.clone)(cats[4]);
691
+ copyCat.home = null;
692
+ copyCat.toys = [];
693
+ expect(result.data).toStrictEqual([copyCat]);
694
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=10');
695
+ });
696
+ it('should return result based on search term on embedded entity on many-to-one relation', async () => {
697
+ const config = {
698
+ sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
699
+ searchableColumns: ['cat.size.height'],
700
+ relations: ['cat'],
701
+ };
702
+ const query = {
703
+ path: '',
704
+ search: '30',
705
+ };
706
+ const result = await (0, paginate_1.paginate)(query, catToyRepo, config);
707
+ expect(result.meta.search).toStrictEqual('30');
708
+ expect(result.data).toStrictEqual([catToys[3]]);
709
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=30');
710
+ });
711
+ it('should return result based on search term on embedded entity on one-to-many relation', async () => {
712
+ const config = {
713
+ sortableColumns: ['id', 'name', 'toys.size.height', 'toys.size.length', 'toys.size.width'],
714
+ searchableColumns: ['toys.size.height'],
715
+ relations: ['toys'],
716
+ };
717
+ const query = {
718
+ path: '',
719
+ search: '1',
720
+ };
721
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
722
+ const toy0 = (0, lodash_1.clone)(catToys[0]);
723
+ delete toy0.cat;
724
+ const toy3 = (0, lodash_1.clone)(catToys[3]);
725
+ delete toy3.cat;
726
+ expect(result.data).toStrictEqual([
727
+ Object.assign((0, lodash_1.clone)(cats[0]), { toys: [toy0] }),
728
+ Object.assign((0, lodash_1.clone)(cats[1]), { toys: [toy3] }),
729
+ ]);
730
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=1');
731
+ });
732
+ it('should return result based on search term on embedded entity on one-to-one relation', async () => {
733
+ const config = {
734
+ sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
735
+ searchableColumns: ['cat.size.height'],
736
+ relations: ['cat'],
737
+ };
738
+ const query = {
739
+ path: '',
740
+ search: '30',
741
+ };
742
+ const result = await (0, paginate_1.paginate)(query, catHomeRepo, config);
743
+ expect(result.data).toStrictEqual([catHomes[1]]);
744
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&search=30');
745
+ });
746
+ it('should return result based on sort and search on embedded many-to-one relation', async () => {
747
+ const config = {
748
+ sortableColumns: ['id', 'name', 'cat.size.height', 'cat.size.length', 'cat.size.width'],
749
+ searchableColumns: ['cat.size.width'],
750
+ relations: ['cat'],
751
+ };
752
+ const query = {
753
+ path: '',
754
+ search: '1',
755
+ sortBy: [['cat.size.height', 'DESC']],
756
+ };
757
+ const result = await (0, paginate_1.paginate)(query, catToyRepo, config);
758
+ expect(result.meta.search).toStrictEqual('1');
759
+ expect(result.data).toStrictEqual([catToys[3], catToys[0], catToys[1], catToys[2]]);
760
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=cat.size.height:DESC&search=1');
761
+ });
762
+ it('should return result based on filter on embedded entity', async () => {
763
+ const config = {
764
+ sortableColumns: ['id', 'name', 'size.height', 'size.length', 'size.width'],
765
+ searchableColumns: ['size.height'],
766
+ filterableColumns: {
767
+ 'size.height': [paginate_1.FilterOperator.NOT],
768
+ },
769
+ };
770
+ const query = {
771
+ path: '',
772
+ filter: {
773
+ 'size.height': '$not:25',
774
+ },
775
+ };
776
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
777
+ expect(result.data).toStrictEqual([cats[1], cats[3], cats[4]]);
778
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.size.height=$not:25');
779
+ });
780
+ it('should return result based on filter on embedded entity when other relations loaded', async () => {
781
+ const config = {
782
+ sortableColumns: ['id', 'name', 'size.height', 'size.length', 'size.width'],
783
+ searchableColumns: ['size.height'],
784
+ filterableColumns: {
785
+ 'size.height': [paginate_1.FilterOperator.NOT],
786
+ },
787
+ relations: ['home'],
788
+ };
789
+ const query = {
790
+ path: '',
791
+ filter: {
792
+ 'size.height': '$not:25',
793
+ },
794
+ };
795
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
796
+ const home = (0, lodash_1.clone)(catHomes[1]);
797
+ delete home.cat;
798
+ const copyCats = [
799
+ Object.assign((0, lodash_1.clone)(cats[1]), { home: home }),
800
+ Object.assign((0, lodash_1.clone)(cats[3]), { home: null }),
801
+ Object.assign((0, lodash_1.clone)(cats[4]), { home: null }),
802
+ ];
803
+ expect(result.data).toStrictEqual(copyCats);
804
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.size.height=$not:25');
805
+ });
806
+ it('should return result based on filter on embedded on many-to-one relation', async () => {
807
+ const config = {
808
+ relations: ['cat'],
809
+ sortableColumns: ['id', 'name'],
810
+ filterableColumns: {
811
+ 'cat.size.height': [paginate_1.FilterOperator.NOT],
812
+ },
813
+ };
814
+ const query = {
815
+ path: '',
816
+ filter: {
817
+ 'cat.size.height': '$not:25',
818
+ },
819
+ };
820
+ const result = await (0, paginate_1.paginate)(query, catToyRepo, config);
821
+ expect(result.meta.filter).toStrictEqual({
822
+ 'cat.size.height': '$not:25',
823
+ });
824
+ expect(result.data).toStrictEqual([catToys[3]]);
825
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.size.height=$not:25');
826
+ });
827
+ it('should return result based on filter on embedded on one-to-many relation', async () => {
828
+ const config = {
829
+ relations: ['toys'],
830
+ sortableColumns: ['id', 'name'],
831
+ filterableColumns: {
832
+ 'toys.size.height': [paginate_1.FilterOperator.EQ],
833
+ },
834
+ };
835
+ const query = {
836
+ path: '',
837
+ filter: {
838
+ 'toys.size.height': '$eq:1',
839
+ },
840
+ };
841
+ const result = await (0, paginate_1.paginate)(query, catRepo, config);
842
+ const cat2 = (0, lodash_1.clone)(cats[1]);
843
+ const catToys3 = (0, lodash_1.clone)(catToys[3]);
844
+ delete catToys3.cat;
845
+ cat2.toys = [catToys3];
846
+ expect(result.meta.filter).toStrictEqual({
847
+ 'toys.size.height': '$eq:1',
848
+ });
849
+ expect(result.data).toStrictEqual([cat2]);
850
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.toys.size.height=$eq:1');
851
+ });
852
+ it('should return result based on filter on embedded on one-to-one relation', async () => {
853
+ const config = {
854
+ relations: ['cat'],
855
+ sortableColumns: ['id', 'name'],
856
+ filterableColumns: {
857
+ 'cat.size.height': [paginate_1.FilterOperator.EQ],
858
+ },
859
+ };
860
+ const query = {
861
+ path: '',
862
+ filter: {
863
+ 'cat.size.height': '$eq:30',
864
+ },
865
+ };
866
+ const result = await (0, paginate_1.paginate)(query, catHomeRepo, config);
867
+ expect(result.meta.filter).toStrictEqual({
868
+ 'cat.size.height': '$eq:30',
869
+ });
870
+ expect(result.data).toStrictEqual([catHomes[1]]);
871
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.size.height=$eq:30');
872
+ });
873
+ it('should return result based on $in filter on embedded on one-to-one relation', async () => {
874
+ const config = {
875
+ relations: ['cat'],
876
+ sortableColumns: ['id', 'name'],
877
+ filterableColumns: {
878
+ 'cat.size.height': [paginate_1.FilterOperator.IN],
879
+ },
880
+ };
881
+ const query = {
882
+ path: '',
883
+ filter: {
884
+ 'cat.size.height': '$in:10,30,35',
885
+ },
886
+ };
887
+ const result = await (0, paginate_1.paginate)(query, catHomeRepo, config);
888
+ expect(result.meta.filter).toStrictEqual({
889
+ 'cat.size.height': '$in:10,30,35',
890
+ });
891
+ expect(result.data).toStrictEqual([catHomes[1]]);
892
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.size.height=$in:10,30,35');
893
+ });
894
+ it('should return result based on $btw filter on embedded on one-to-one relation', async () => {
895
+ const config = {
896
+ relations: ['cat'],
897
+ sortableColumns: ['id', 'name'],
898
+ filterableColumns: {
899
+ 'cat.size.height': [paginate_1.FilterOperator.BTW],
900
+ },
901
+ };
902
+ const query = {
903
+ path: '',
904
+ filter: {
905
+ 'cat.size.height': '$btw:18,33',
906
+ },
907
+ };
908
+ const result = await (0, paginate_1.paginate)(query, catHomeRepo, config);
909
+ expect(result.meta.filter).toStrictEqual({
910
+ 'cat.size.height': '$btw:18,33',
911
+ });
912
+ expect(result.data).toStrictEqual([catHomes[0], catHomes[1]]);
913
+ expect(result.links.current).toBe('?page=1&limit=20&sortBy=id:ASC&filter.cat.size.height=$btw:18,33');
914
+ });
543
915
  it('should return result based on where array and filter', async () => {
544
916
  const config = {
545
917
  sortableColumns: ['id'],