@ackplus/nest-crud-request 1.1.1 → 1.1.5

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.
Files changed (45) hide show
  1. package/package.json +2 -2
  2. package/src/index.d.ts.map +1 -0
  3. package/src/index.js +6 -0
  4. package/src/lib/query-builder.d.ts.map +1 -0
  5. package/{dist → src}/lib/query-builder.js +13 -9
  6. package/src/lib/relation-builder.d.ts.map +1 -0
  7. package/{dist → src}/lib/relation-builder.js +5 -1
  8. package/src/lib/types.d.ts +1 -0
  9. package/src/lib/types.d.ts.map +1 -0
  10. package/src/lib/types.js +0 -1
  11. package/src/lib/utils.d.ts.map +1 -0
  12. package/{dist → src}/lib/utils.js +4 -1
  13. package/src/lib/where-builder.d.ts.map +1 -0
  14. package/{dist → src}/lib/where-builder.js +10 -6
  15. package/dist/index.d.ts.map +0 -1
  16. package/dist/index.js +0 -3
  17. package/dist/lib/query-builder.d.ts.map +0 -1
  18. package/dist/lib/relation-builder.d.ts.map +0 -1
  19. package/dist/lib/types.d.ts +0 -53
  20. package/dist/lib/types.d.ts.map +0 -1
  21. package/dist/lib/types.js +0 -31
  22. package/dist/lib/utils.d.ts.map +0 -1
  23. package/dist/lib/where-builder.d.ts.map +0 -1
  24. package/eslint.config.mjs +0 -22
  25. package/jest.config.ts +0 -10
  26. package/project.json +0 -46
  27. package/src/index.ts +0 -3
  28. package/src/lib/query-builder.ts +0 -189
  29. package/src/lib/relation-builder.ts +0 -68
  30. package/src/lib/types.js.map +0 -1
  31. package/src/lib/types.ts +0 -61
  32. package/src/lib/utils.ts +0 -11
  33. package/src/lib/where-builder.ts +0 -159
  34. package/src/test/query-builder-where.spec.ts +0 -173
  35. package/src/test/query-builder.spec.ts +0 -140
  36. package/src/test/relation-builder.spec.ts +0 -32
  37. package/src/test/where-builder-complex.spec.ts +0 -173
  38. package/tsconfig.json +0 -17
  39. package/tsconfig.lib.json +0 -10
  40. package/tsconfig.spec.json +0 -15
  41. /package/{dist → src}/index.d.ts +0 -0
  42. /package/{dist → src}/lib/query-builder.d.ts +0 -0
  43. /package/{dist → src}/lib/relation-builder.d.ts +0 -0
  44. /package/{dist → src}/lib/utils.d.ts +0 -0
  45. /package/{dist → src}/lib/where-builder.d.ts +0 -0
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@ackplus/nest-crud-request",
3
- "version": "1.1.1",
3
+ "version": "1.1.5",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
7
7
  "dependencies": {
8
8
  "tslib": "^2.3.0"
9
9
  }
10
- }
10
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/nest-crud-request/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
package/src/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./lib/query-builder"), exports);
5
+ tslib_1.__exportStar(require("./lib/where-builder"), exports);
6
+ tslib_1.__exportStar(require("./lib/types"), exports);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/nest-crud-request/src/lib/query-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElE,OAAO,EAAgB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,YAAY,CAAoC;IAExD,OAAO,CAAC,eAAe,CAA0C;gBAErD,OAAO,CAAC,EAAE,mBAAmB;IAMzC,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAO9C,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,UAAQ,GAAG,IAAI;IAc9D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAa1C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAY7C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAKnF,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKtC,KAAK,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK3C,QAAQ,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK9C,OAAO,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK7C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAQ1D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOlC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAK1C,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAK1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKlC,QAAQ,CAAC,uBAAuB,UAAQ;;;;;;;;;;;IAoDxC,MAAM;CAKT"}
@@ -1,10 +1,13 @@
1
- import { RelationBuilder } from './relation-builder';
2
- import { deepMerge } from './utils';
3
- import { WhereBuilder } from './where-builder';
4
- export class QueryBuilder {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryBuilder = void 0;
4
+ const relation_builder_1 = require("./relation-builder");
5
+ const utils_1 = require("./utils");
6
+ const where_builder_1 = require("./where-builder");
7
+ class QueryBuilder {
5
8
  options = {};
6
- whereBuilder = new WhereBuilder();
7
- relationBuilder = new RelationBuilder();
9
+ whereBuilder = new where_builder_1.WhereBuilder();
10
+ relationBuilder = new relation_builder_1.RelationBuilder();
8
11
  constructor(options) {
9
12
  if (options) {
10
13
  this.setOptions(options);
@@ -12,14 +15,14 @@ export class QueryBuilder {
12
15
  }
13
16
  setOptions(options) {
14
17
  this.options = options;
15
- this.whereBuilder = new WhereBuilder(options.where);
16
- this.relationBuilder = new RelationBuilder(options.relations);
18
+ this.whereBuilder = new where_builder_1.WhereBuilder(options.where);
19
+ this.relationBuilder = new relation_builder_1.RelationBuilder(options.relations);
17
20
  return this;
18
21
  }
19
22
  mergeOptions(options, deep = false) {
20
23
  let updatedOptions = {};
21
24
  if (deep) {
22
- updatedOptions = deepMerge(this.options, options);
25
+ updatedOptions = (0, utils_1.deepMerge)(this.options, options);
23
26
  }
24
27
  else {
25
28
  updatedOptions = {
@@ -167,3 +170,4 @@ export class QueryBuilder {
167
170
  return JSON.stringify(obj);
168
171
  }
169
172
  }
173
+ exports.QueryBuilder = QueryBuilder;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/nest-crud-request/src/lib/relation-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/E,qBAAa,eAAe;IAExB,OAAO,CAAC,SAAS,CAAsB;gBAE3B,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM;IAOhD,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAe9C,KAAK,IAAI,IAAI;IAKb,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAgB3E,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK9B,YAAY,IAAI,OAAO;IAIvB,QAAQ,IAAI,cAAc;IAI1B,MAAM,IAAI,MAAM;CAInB"}
@@ -1,4 +1,7 @@
1
- export class RelationBuilder {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RelationBuilder = void 0;
4
+ class RelationBuilder {
2
5
  relations = {};
3
6
  constructor(relations) {
4
7
  if (relations) {
@@ -56,3 +59,4 @@ export class RelationBuilder {
56
59
  return JSON.stringify(this.relations);
57
60
  }
58
61
  }
62
+ exports.RelationBuilder = RelationBuilder;
@@ -50,3 +50,4 @@ export type RelationObjectValue = {
50
50
  };
51
51
  export type RelationObject = Record<string, RelationObjectValue | boolean>;
52
52
  export type RelationOptions = string | string[] | RelationObject;
53
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/nest-crud-request/src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IACrC,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oBAAY,wBAAwB;IAChC,GAAG,SAAS;IACZ,EAAE,QAAQ;CACb;AAED,oBAAY,iBAAiB;IACzB,EAAE,QAAQ;IACV,MAAM,QAAQ;IACd,EAAE,QAAQ;IACV,QAAQ,SAAS;IACjB,EAAE,QAAQ;IACV,QAAQ,SAAS;IACjB,EAAE,QAAQ;IACV,MAAM,WAAW;IACjB,IAAI,UAAU;IACd,QAAQ,aAAa;IACrB,KAAK,WAAW;IAChB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,WAAW,eAAe;IAC1B,OAAO,aAAa;IACpB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACxB;AAED,oBAAY,kBAAkB;IAC1B,GAAG,QAAQ;IACX,IAAI,SAAS;CAChB;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;IACnC,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC;AAGvD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,CAAC"}
package/src/lib/types.js CHANGED
@@ -32,4 +32,3 @@ var OrderDirectionEnum;
32
32
  OrderDirectionEnum["ASC"] = "ASC";
33
33
  OrderDirectionEnum["DESC"] = "DESC";
34
34
  })(OrderDirectionEnum || (exports.OrderDirectionEnum = OrderDirectionEnum = {}));
35
- //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../packages/nest-crud-request/src/lib/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAUvD"}
@@ -1,4 +1,7 @@
1
- export function deepMerge(target, source) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepMerge = deepMerge;
4
+ function deepMerge(target, source) {
2
5
  for (const key in source) {
3
6
  if (source[key] instanceof Object && key in target) {
4
7
  Object.assign(source[key], deepMerge(target[key], source[key]));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"where-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/nest-crud-request/src/lib/where-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGtE,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC,CAAC;AAEjJ,qBAAa,YAAY;IAErB,OAAO,CAAC,WAAW,CAA2B;gBAElC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAIhD,OAAO,CAAC,UAAU;IAIlB,KAAK,IAAI,IAAI;IAKb,KAAK,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK3C,QAAQ,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK9C,OAAO,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK7C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAehC,aAAa,IAAI,OAAO;IAIxB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI/B,MAAM,IAAI,MAAM;IAIhB,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,eAAe;CA0B1B"}
@@ -1,5 +1,8 @@
1
- import { WhereLogicalOperatorEnum, WhereOperatorEnum } from './types';
2
- export class WhereBuilder {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhereBuilder = void 0;
4
+ const types_1 = require("./types");
5
+ class WhereBuilder {
3
6
  whereObject = {};
4
7
  constructor(where) {
5
8
  this.whereObject = typeof where === 'string' ? JSON.parse(where) : where || {};
@@ -16,11 +19,11 @@ export class WhereBuilder {
16
19
  return this;
17
20
  }
18
21
  andWhere(...args) {
19
- this.parseCondition(WhereLogicalOperatorEnum.AND, ...args);
22
+ this.parseCondition(types_1.WhereLogicalOperatorEnum.AND, ...args);
20
23
  return this;
21
24
  }
22
25
  orWhere(...args) {
23
- this.parseCondition(WhereLogicalOperatorEnum.OR, ...args);
26
+ this.parseCondition(types_1.WhereLogicalOperatorEnum.OR, ...args);
24
27
  return this;
25
28
  }
26
29
  removeWhere(field) {
@@ -80,14 +83,14 @@ export class WhereBuilder {
80
83
  this.updateCondition({ [field]: value }, type);
81
84
  }
82
85
  else {
83
- this.updateCondition({ [field]: { [WhereOperatorEnum.EQ]: value } }, type);
86
+ this.updateCondition({ [field]: { [types_1.WhereOperatorEnum.EQ]: value } }, type);
84
87
  }
85
88
  }
86
89
  else if (this.isOperator(value)) {
87
90
  this.updateCondition({ [field]: { [value]: true } }, type);
88
91
  }
89
92
  else {
90
- this.updateCondition({ [field]: { [WhereOperatorEnum.EQ]: value } }, type);
93
+ this.updateCondition({ [field]: { [types_1.WhereOperatorEnum.EQ]: value } }, type);
91
94
  }
92
95
  }
93
96
  else {
@@ -144,3 +147,4 @@ export class WhereBuilder {
144
147
  }
145
148
  }
146
149
  }
150
+ exports.WhereBuilder = WhereBuilder;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
package/dist/index.js DELETED
@@ -1,3 +0,0 @@
1
- export * from './lib/query-builder';
2
- export * from './lib/where-builder';
3
- export * from './lib/types';
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/lib/query-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElE,OAAO,EAAgB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,qBAAa,YAAY;IAErB,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,YAAY,CAAoC;IAExD,OAAO,CAAC,eAAe,CAA0C;gBAErD,OAAO,CAAC,EAAE,mBAAmB;IAMzC,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAO9C,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,UAAQ,GAAG,IAAI;IAc9D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAa1C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAY7C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAKnF,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKtC,KAAK,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK3C,QAAQ,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK9C,OAAO,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK7C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAQ1D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOlC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAK1C,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAK1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAKlC,QAAQ,CAAC,uBAAuB,UAAQ;;;;;;;;;;;IAoDxC,MAAM;CAKT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"relation-builder.d.ts","sourceRoot":"","sources":["../../src/lib/relation-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/E,qBAAa,eAAe;IAExB,OAAO,CAAC,SAAS,CAAsB;gBAE3B,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM;IAOhD,YAAY,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAe9C,KAAK,IAAI,IAAI;IAKb,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAgB3E,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK9B,YAAY,IAAI,OAAO;IAIvB,QAAQ,IAAI,cAAc;IAI1B,MAAM,IAAI,MAAM;CAInB"}
@@ -1,53 +0,0 @@
1
- export interface QueryBuilderOptions {
2
- [key: string]: any;
3
- select?: string[] | string;
4
- relations?: RelationOptions | string;
5
- where?: WhereOptions | string;
6
- order?: Record<string, OrderDirectionEnum> | string;
7
- skip?: number;
8
- take?: number;
9
- withDeleted?: boolean;
10
- onlyDeleted?: boolean;
11
- }
12
- export declare enum WhereLogicalOperatorEnum {
13
- AND = "$and",
14
- OR = "$or"
15
- }
16
- export declare enum WhereOperatorEnum {
17
- EQ = "$eq",
18
- NOT_EQ = "$ne",
19
- GT = "$gt",
20
- GT_OR_EQ = "$gte",
21
- LT = "$lt",
22
- LT_OR_EQ = "$lte",
23
- IN = "$in",
24
- NOT_IN = "$notIn",
25
- LIKE = "$like",
26
- NOT_LIKE = "$notLike",
27
- ILIKE = "$iLike",
28
- NOT_ILIKE = "$notIlike",
29
- IS_NULL = "$isNull",
30
- IS_NOT_NULL = "$isNotNull",
31
- BETWEEN = "$between",
32
- NOT_BETWEEN = "$notBetween",
33
- IS_TRUE = "$isTrue",
34
- IS_FALSE = "$isFalse"
35
- }
36
- export declare enum OrderDirectionEnum {
37
- ASC = "ASC",
38
- DESC = "DESC"
39
- }
40
- export type WhereObject = {
41
- [key: string]: any;
42
- $and?: WhereObject | WhereObject[];
43
- $or?: WhereObject | WhereObject[];
44
- };
45
- export type WhereOptions = WhereObject | WhereObject[];
46
- export type RelationObjectValue = {
47
- select?: string[];
48
- where?: WhereObject | WhereObject[];
49
- joinType?: 'left' | 'inner';
50
- };
51
- export type RelationObject = Record<string, RelationObjectValue | boolean>;
52
- export type RelationOptions = string | string[] | RelationObject;
53
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IACrC,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAAC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oBAAY,wBAAwB;IAChC,GAAG,SAAS;IACZ,EAAE,QAAQ;CACb;AAED,oBAAY,iBAAiB;IACzB,EAAE,QAAQ;IACV,MAAM,QAAQ;IACd,EAAE,QAAQ;IACV,QAAQ,SAAS;IACjB,EAAE,QAAQ;IACV,QAAQ,SAAS;IACjB,EAAE,QAAQ;IACV,MAAM,WAAW;IACjB,IAAI,UAAU;IACd,QAAQ,aAAa;IACrB,KAAK,WAAW;IAChB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,WAAW,eAAe;IAC1B,OAAO,aAAa;IACpB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACxB;AAED,oBAAY,kBAAkB;IAC1B,GAAG,QAAQ;IACX,IAAI,SAAS;CAChB;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;IACnC,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC;AAGvD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,CAAC"}
package/dist/lib/types.js DELETED
@@ -1,31 +0,0 @@
1
- export var WhereLogicalOperatorEnum;
2
- (function (WhereLogicalOperatorEnum) {
3
- WhereLogicalOperatorEnum["AND"] = "$and";
4
- WhereLogicalOperatorEnum["OR"] = "$or";
5
- })(WhereLogicalOperatorEnum || (WhereLogicalOperatorEnum = {}));
6
- export var WhereOperatorEnum;
7
- (function (WhereOperatorEnum) {
8
- WhereOperatorEnum["EQ"] = "$eq";
9
- WhereOperatorEnum["NOT_EQ"] = "$ne";
10
- WhereOperatorEnum["GT"] = "$gt";
11
- WhereOperatorEnum["GT_OR_EQ"] = "$gte";
12
- WhereOperatorEnum["LT"] = "$lt";
13
- WhereOperatorEnum["LT_OR_EQ"] = "$lte";
14
- WhereOperatorEnum["IN"] = "$in";
15
- WhereOperatorEnum["NOT_IN"] = "$notIn";
16
- WhereOperatorEnum["LIKE"] = "$like";
17
- WhereOperatorEnum["NOT_LIKE"] = "$notLike";
18
- WhereOperatorEnum["ILIKE"] = "$iLike";
19
- WhereOperatorEnum["NOT_ILIKE"] = "$notIlike";
20
- WhereOperatorEnum["IS_NULL"] = "$isNull";
21
- WhereOperatorEnum["IS_NOT_NULL"] = "$isNotNull";
22
- WhereOperatorEnum["BETWEEN"] = "$between";
23
- WhereOperatorEnum["NOT_BETWEEN"] = "$notBetween";
24
- WhereOperatorEnum["IS_TRUE"] = "$isTrue";
25
- WhereOperatorEnum["IS_FALSE"] = "$isFalse";
26
- })(WhereOperatorEnum || (WhereOperatorEnum = {}));
27
- export var OrderDirectionEnum;
28
- (function (OrderDirectionEnum) {
29
- OrderDirectionEnum["ASC"] = "ASC";
30
- OrderDirectionEnum["DESC"] = "DESC";
31
- })(OrderDirectionEnum || (OrderDirectionEnum = {}));
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAUvD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"where-builder.d.ts","sourceRoot":"","sources":["../../src/lib/where-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGtE,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC,CAAC;AAEjJ,qBAAa,YAAY;IAErB,OAAO,CAAC,WAAW,CAA2B;gBAElC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAIhD,OAAO,CAAC,UAAU;IAIlB,KAAK,IAAI,IAAI;IAKb,KAAK,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK3C,QAAQ,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK9C,OAAO,CAAC,GAAG,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAK7C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAehC,aAAa,IAAI,OAAO;IAIxB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI/B,MAAM,IAAI,MAAM;IAIhB,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,eAAe;CA0B1B"}
package/eslint.config.mjs DELETED
@@ -1,22 +0,0 @@
1
- import baseConfig from '../../eslint.base.config';
2
-
3
- export default [
4
- ...baseConfig,
5
- {
6
- files: ['**/*.json'],
7
- rules: {
8
- '@nx/dependency-checks': [
9
- 'error',
10
- {
11
- ignoredFiles: ['{projectRoot}/eslint.config.{js,cjs,mjs,ts,cts,mts}'],
12
- },
13
- ],
14
- },
15
- languageOptions: {
16
- parser: await import('jsonc-eslint-parser'),
17
- },
18
- },
19
- {
20
- ignores: ['**/out-tsc'],
21
- },
22
- ];
package/jest.config.ts DELETED
@@ -1,10 +0,0 @@
1
- export default {
2
- displayName: 'nest-crud-request',
3
- preset: '../../jest.preset.js',
4
- testEnvironment: 'node',
5
- transform: {
6
- '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '<rootDir>/tsconfig.spec.json' }],
7
- },
8
- moduleFileExtensions: ['ts', 'js', 'html'],
9
- coverageDirectory: '../../coverage/packages/nest-crud-request',
10
- };
package/project.json DELETED
@@ -1,46 +0,0 @@
1
- {
2
- "name": "nest-crud-request",
3
- "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
- "sourceRoot": "packages/nest-crud-request/src",
5
- "projectType": "library",
6
- "release": {
7
- "version": {
8
- "manifestRootsToUpdate": [
9
- "dist/{projectRoot}"
10
- ],
11
- "currentVersionResolver": "git-tag",
12
- "fallbackCurrentVersionResolver": "disk"
13
- }
14
- },
15
- "tags": [],
16
- "targets": {
17
- "build": {
18
- "executor": "@nx/js:tsc",
19
- "outputs": [
20
- "{options.outputPath}"
21
- ],
22
- "options": {
23
- "outputPath": "dist/packages/nest-crud-request",
24
- "main": "packages/nest-crud-request/src/index.ts",
25
- "tsConfig": "packages/nest-crud-request/tsconfig.lib.json",
26
- "assets": [
27
- "packages/nest-crud-request/*.md"
28
- ]
29
- }
30
- },
31
- "nx-release-publish": {
32
- "options": {
33
- "packageRoot": "dist/{projectRoot}"
34
- }
35
- },
36
- "test": {
37
- "executor": "@nx/jest:jest",
38
- "outputs": [
39
- "{workspaceRoot}/coverage/{projectRoot}"
40
- ],
41
- "options": {
42
- "jestConfig": "packages/nest-crud-request/jest.config.ts"
43
- }
44
- }
45
- }
46
- }
package/src/index.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './lib/query-builder';
2
- export * from './lib/where-builder';
3
- export * from './lib/types';
@@ -1,189 +0,0 @@
1
- import { RelationBuilder } from './relation-builder';
2
- import { QueryBuilderOptions, OrderDirectionEnum } from './types';
3
- import { deepMerge } from './utils';
4
- import { WhereBuilder, WhereBuilderCondition } from './where-builder';
5
-
6
-
7
- export class QueryBuilder {
8
-
9
- private options: QueryBuilderOptions = {};
10
-
11
- private whereBuilder: WhereBuilder = new WhereBuilder();
12
-
13
- private relationBuilder: RelationBuilder = new RelationBuilder();
14
-
15
- constructor(options?: QueryBuilderOptions) {
16
- if (options) {
17
- this.setOptions(options);
18
- }
19
- }
20
-
21
- setOptions(options: QueryBuilderOptions): this {
22
- this.options = options;
23
- this.whereBuilder = new WhereBuilder(options.where);
24
- this.relationBuilder = new RelationBuilder(options.relations);
25
- return this;
26
- }
27
-
28
- mergeOptions(options: QueryBuilderOptions, deep = false): this {
29
- let updatedOptions = {};
30
- if (deep) {
31
- updatedOptions = deepMerge(this.options, options);
32
- } else {
33
- updatedOptions = {
34
- ...this.options,
35
- ...options,
36
- };
37
- }
38
- this.setOptions(updatedOptions);
39
- return this;
40
- }
41
-
42
- addSelect(fields: string | string[]): this {
43
- // Ensure select is always an array
44
- if (!this.options.select || typeof this.options.select === 'string') {
45
- this.options.select = [];
46
- }
47
- if (Array.isArray(fields)) {
48
- this.options.select.push(...fields);
49
- } else {
50
- this.options.select.push(fields);
51
- }
52
- return this;
53
- }
54
-
55
- removeSelect(fields: string | string[]): this {
56
- // Ensure select is an array before filtering
57
- if (this.options.select && Array.isArray(this.options.select)) {
58
- if (Array.isArray(fields)) {
59
- this.options.select = this.options.select.filter(field => !fields.includes(field));
60
- } else {
61
- this.options.select = this.options.select.filter(field => field !== fields);
62
- }
63
- }
64
- return this;
65
- }
66
-
67
- addRelation(relation: string, select?: string[], where?: Record<string, any>): this {
68
- this.relationBuilder.add(relation, select, where);
69
- return this;
70
- }
71
-
72
- removeRelation(relation: string): this {
73
- this.relationBuilder.remove(relation);
74
- return this;
75
- }
76
-
77
- where(...args: WhereBuilderCondition): this {
78
- this.whereBuilder.where(...args);
79
- return this;
80
- }
81
-
82
- andWhere(...args: WhereBuilderCondition): this {
83
- this.whereBuilder.andWhere(...args);
84
- return this;
85
- }
86
-
87
- orWhere(...args: WhereBuilderCondition): this {
88
- this.whereBuilder.orWhere(...args);
89
- return this;
90
- }
91
-
92
- addOrder(orderBy: string, order: OrderDirectionEnum): this {
93
- if (!this.options.order) {
94
- this.options.order = {};
95
- }
96
- this.options.order[orderBy] = order;
97
- return this;
98
- }
99
-
100
- removeOrder(orderBy: string): this {
101
- if (this.options.order) {
102
- delete this.options.order[orderBy];
103
- }
104
- return this;
105
- }
106
-
107
- setSkip(skip: number): this {
108
- this.options.skip = skip;
109
- return this;
110
- }
111
-
112
- setTake(take: number): this {
113
- this.options.take = take;
114
- return this;
115
- }
116
-
117
- setWithDeleted(withDeleted: boolean): this {
118
- this.options.withDeleted = withDeleted;
119
- return this;
120
- }
121
-
122
- setOnlyDeleted(onlyDeleted: boolean): this {
123
- this.options.onlyDeleted = onlyDeleted;
124
- return this;
125
- }
126
-
127
- set(key: string, value: any): this {
128
- this.options[key] = value;
129
- return this;
130
- }
131
-
132
- toObject(constrainToNestedObject = false) {
133
- const options = {
134
- ...this.options,
135
- };
136
-
137
- // Convert where conditions to JSON string
138
- if (this.whereBuilder.hasConditions()) {
139
- if (constrainToNestedObject) {
140
- options.where = this.whereBuilder.toObject();
141
- } else {
142
- options.where = JSON.stringify(this.whereBuilder.toObject());
143
- }
144
- } else {
145
- delete options.where;
146
- }
147
-
148
- // Convert relations to JSON string
149
- if (this.relationBuilder.hasRelations()) {
150
- if (constrainToNestedObject) {
151
- options.relations = this.relationBuilder.toObject();
152
- } else {
153
- options.relations = JSON.stringify(this.relationBuilder.toObject());
154
- }
155
- } else {
156
- delete options.relations;
157
- }
158
-
159
- // Convert order to JSON string if it exists
160
- if (options.order && Object.keys(options.order).length > 0) {
161
- if (constrainToNestedObject) {
162
- options.order = options.order;
163
- } else {
164
- options.order = JSON.stringify(options.order);
165
- }
166
- } else {
167
- delete options.order;
168
- }
169
-
170
- // Convert select to JSON string if it exists
171
- if (options.select && options.select.length > 0) {
172
- if (constrainToNestedObject) {
173
- options.select = options.select;
174
- } else {
175
- options.select = JSON.stringify(options.select);
176
- }
177
- } else {
178
- delete options.select;
179
- }
180
-
181
- return options;
182
- }
183
-
184
- toJson() {
185
- const obj = this.toObject(true);
186
- return JSON.stringify(obj);
187
- }
188
-
189
- }
@@ -1,68 +0,0 @@
1
- import { RelationObject, RelationObjectValue, RelationOptions } from './types';
2
-
3
-
4
- export class RelationBuilder {
5
-
6
- private relations: RelationObject = {};
7
-
8
- constructor(relations?: RelationOptions | string) {
9
- if (relations) {
10
- const relationOptions = typeof relations === 'string' ? JSON.parse(relations) : relations;
11
- this.setRelations(relationOptions);
12
- }
13
- }
14
-
15
- setRelations(relations: RelationOptions): this {
16
- if (relations) {
17
- if (Array.isArray(relations)) {
18
- relations.forEach(relation => {
19
- this.add(relation);
20
- });
21
- } else if (typeof relations === 'string') {
22
- this.add(relations);
23
- } else {
24
- this.relations = relations;
25
- }
26
- }
27
- return this;
28
- }
29
-
30
- clear(): this {
31
- this.relations = {};
32
- return this;
33
- }
34
-
35
- add(relation: string, select?: string[], where?: Record<string, any>): this {
36
- if (!select && !where) {
37
- this.relations[relation] = true;
38
- } else {
39
- const obj: any = {};
40
- if (select) {
41
- obj.select = select;
42
- }
43
- if (where) {
44
- obj.where = where;
45
- }
46
- this.relations[relation] = obj;
47
- }
48
- return this;
49
- }
50
-
51
- remove(relation: string): this {
52
- delete this.relations[relation];
53
- return this;
54
- }
55
-
56
- hasRelations(): boolean {
57
- return Object.keys(this.relations).length > 0;
58
- }
59
-
60
- toObject(): RelationObject {
61
- return this.relations;
62
- }
63
-
64
- toJson(): string {
65
- return JSON.stringify(this.relations);
66
- }
67
-
68
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":";;;AAYA,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAChC,wCAAY,CAAA;IACZ,sCAAU,CAAA;AACd,CAAC,EAHW,wBAAwB,wCAAxB,wBAAwB,QAGnC;AAED,IAAY,iBAmBX;AAnBD,WAAY,iBAAiB;IACzB,+BAAU,CAAA;IACV,mCAAc,CAAA;IACd,+BAAU,CAAA;IACV,sCAAiB,CAAA;IACjB,+BAAU,CAAA;IACV,sCAAiB,CAAA;IACjB,+BAAU,CAAA;IACV,sCAAiB,CAAA;IACjB,mCAAc,CAAA;IACd,0CAAqB,CAAA;IACrB,qCAAgB,CAAA;IAChB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,+CAA0B,CAAA;IAC1B,yCAAoB,CAAA;IACpB,gDAA2B,CAAA;IAC3B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;AACzB,CAAC,EAnBW,iBAAiB,iCAAjB,iBAAiB,QAmB5B;AAED,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,iCAAW,CAAA;IACX,mCAAa,CAAA;AACjB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B"}