@lenne.tech/nest-server 8.0.2 → 8.1.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.
Files changed (148) hide show
  1. package/dist/core/common/args/pagination.args.js +1 -1
  2. package/dist/core/common/args/pagination.args.js.map +1 -1
  3. package/dist/core/common/helpers/config.helper.d.ts +2 -1
  4. package/dist/core/common/helpers/config.helper.js +11 -7
  5. package/dist/core/common/helpers/config.helper.js.map +1 -1
  6. package/dist/core/common/helpers/context.helper.d.ts +7 -1
  7. package/dist/core/common/helpers/context.helper.js +33 -29
  8. package/dist/core/common/helpers/context.helper.js.map +1 -1
  9. package/dist/core/common/helpers/db.helper.d.ts +35 -0
  10. package/dist/core/common/helpers/db.helper.js +345 -0
  11. package/dist/core/common/helpers/db.helper.js.map +1 -0
  12. package/dist/core/common/helpers/file.helper.d.ts +8 -1
  13. package/dist/core/common/helpers/file.helper.js +43 -31
  14. package/dist/core/common/helpers/file.helper.js.map +1 -1
  15. package/dist/core/common/helpers/filter.helper.d.ts +3 -0
  16. package/dist/core/common/helpers/filter.helper.js +93 -81
  17. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  18. package/dist/core/common/helpers/graphql.helper.d.ts +24 -1
  19. package/dist/core/common/helpers/graphql.helper.js +144 -96
  20. package/dist/core/common/helpers/graphql.helper.js.map +1 -1
  21. package/dist/core/common/helpers/input.helper.d.ts +29 -3
  22. package/dist/core/common/helpers/input.helper.js +222 -105
  23. package/dist/core/common/helpers/input.helper.js.map +1 -1
  24. package/dist/core/common/helpers/model.helper.d.ts +11 -0
  25. package/dist/core/common/helpers/model.helper.js +41 -29
  26. package/dist/core/common/helpers/model.helper.js.map +1 -1
  27. package/dist/core/common/helpers/service.helper.d.ts +21 -1
  28. package/dist/core/common/helpers/service.helper.js +80 -72
  29. package/dist/core/common/helpers/service.helper.js.map +1 -1
  30. package/dist/core/common/inputs/combined-filter.input.js +1 -1
  31. package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
  32. package/dist/core/common/inputs/core-input.input.js +1 -1
  33. package/dist/core/common/inputs/core-input.input.js.map +1 -1
  34. package/dist/core/common/interceptors/check-response.interceptor.js +1 -1
  35. package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
  36. package/dist/core/common/interfaces/resolve-selector.interface.d.ts +5 -0
  37. package/dist/core/common/interfaces/resolve-selector.interface.js +3 -0
  38. package/dist/core/common/interfaces/resolve-selector.interface.js.map +1 -0
  39. package/dist/core/common/interfaces/service-options.interface.d.ts +30 -0
  40. package/dist/core/common/interfaces/service-options.interface.js +3 -0
  41. package/dist/core/common/interfaces/service-options.interface.js.map +1 -0
  42. package/dist/core/common/models/core-model.model.d.ts +4 -0
  43. package/dist/core/common/models/core-model.model.js +1 -1
  44. package/dist/core/common/models/core-model.model.js.map +1 -1
  45. package/dist/core/common/pipes/check-input.pipe.js +2 -2
  46. package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
  47. package/dist/core/common/pipes/map-and-validate.pipe.js +1 -1
  48. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
  49. package/dist/core/common/services/crud.service.d.ts +13 -0
  50. package/dist/core/common/services/crud.service.js +59 -0
  51. package/dist/core/common/services/crud.service.js.map +1 -0
  52. package/dist/core/common/services/email.service.js +8 -8
  53. package/dist/core/common/services/email.service.js.map +1 -1
  54. package/dist/core/common/services/module.service.d.ts +27 -0
  55. package/dist/core/common/services/module.service.js +41 -0
  56. package/dist/core/common/services/module.service.js.map +1 -0
  57. package/dist/core/common/types/core-model-constructor.type.d.ts +21 -0
  58. package/dist/core/common/types/core-model-constructor.type.js +3 -0
  59. package/dist/core/common/types/core-model-constructor.type.js.map +1 -0
  60. package/dist/core/common/types/field-selection.type.d.ts +4 -0
  61. package/dist/core/common/types/field-selection.type.js +3 -0
  62. package/dist/core/common/types/field-selection.type.js.map +1 -0
  63. package/dist/core/common/types/string-or-object-id.type.d.ts +2 -0
  64. package/dist/core/common/types/string-or-object-id.type.js +3 -0
  65. package/dist/core/common/types/string-or-object-id.type.js.map +1 -0
  66. package/dist/core/modules/auth/core-auth.resolver.d.ts +2 -1
  67. package/dist/core/modules/auth/core-auth.resolver.js +4 -3
  68. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  69. package/dist/core/modules/auth/services/core-auth-user.service.d.ts +3 -1
  70. package/dist/core/modules/auth/services/core-auth-user.service.js.map +1 -1
  71. package/dist/core/modules/auth/services/core-auth.service.d.ts +2 -1
  72. package/dist/core/modules/auth/services/core-auth.service.js +6 -4
  73. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  74. package/dist/core/modules/user/core-user.model.js +1 -1
  75. package/dist/core/modules/user/core-user.model.js.map +1 -1
  76. package/dist/core/modules/user/core-user.service.d.ts +16 -25
  77. package/dist/core/modules/user/core-user.service.js +79 -98
  78. package/dist/core/modules/user/core-user.service.js.map +1 -1
  79. package/dist/core.module.js +1 -1
  80. package/dist/core.module.js.map +1 -1
  81. package/dist/index.d.ts +8 -1
  82. package/dist/index.js +8 -1
  83. package/dist/index.js.map +1 -1
  84. package/dist/server/modules/auth/auth.resolver.d.ts +2 -1
  85. package/dist/server/modules/auth/auth.resolver.js +4 -3
  86. package/dist/server/modules/auth/auth.resolver.js.map +1 -1
  87. package/dist/server/modules/file/file.controller.js +1 -1
  88. package/dist/server/modules/file/file.controller.js.map +1 -1
  89. package/dist/server/modules/user/avatar.controller.js +1 -1
  90. package/dist/server/modules/user/avatar.controller.js.map +1 -1
  91. package/dist/server/modules/user/user.model.d.ts +1 -0
  92. package/dist/server/modules/user/user.module.js +7 -3
  93. package/dist/server/modules/user/user.module.js.map +1 -1
  94. package/dist/server/modules/user/user.resolver.d.ts +8 -7
  95. package/dist/server/modules/user/user.resolver.js +65 -45
  96. package/dist/server/modules/user/user.resolver.js.map +1 -1
  97. package/dist/server/modules/user/user.service.d.ts +9 -18
  98. package/dist/server/modules/user/user.service.js +19 -30
  99. package/dist/server/modules/user/user.service.js.map +1 -1
  100. package/dist/test/test.helper.d.ts +1 -2
  101. package/dist/test/test.helper.js +1 -16
  102. package/dist/test/test.helper.js.map +1 -1
  103. package/dist/tsconfig.build.tsbuildinfo +1 -1
  104. package/package.json +44 -45
  105. package/src/core/common/args/pagination.args.ts +2 -2
  106. package/src/core/common/helpers/config.helper.ts +26 -6
  107. package/src/core/common/helpers/context.helper.ts +42 -33
  108. package/src/core/common/helpers/db.helper.ts +580 -0
  109. package/src/core/common/helpers/file.helper.ts +76 -49
  110. package/src/core/common/helpers/filter.helper.ts +119 -96
  111. package/src/core/common/helpers/graphql.helper.ts +219 -117
  112. package/src/core/common/helpers/input.helper.ts +296 -106
  113. package/src/core/common/helpers/model.helper.ts +102 -57
  114. package/src/core/common/helpers/service.helper.ts +149 -117
  115. package/src/core/common/inputs/combined-filter.input.ts +2 -2
  116. package/src/core/common/inputs/core-input.input.ts +2 -2
  117. package/src/core/common/interceptors/check-response.interceptor.ts +2 -2
  118. package/src/core/common/interfaces/resolve-selector.interface.ts +9 -0
  119. package/src/core/common/interfaces/service-options.interface.ts +53 -0
  120. package/src/core/common/models/core-model.model.ts +6 -2
  121. package/src/core/common/pipes/check-input.pipe.ts +4 -4
  122. package/src/core/common/pipes/map-and-validate.pipe.ts +2 -2
  123. package/src/core/common/services/crud.service.ts +105 -0
  124. package/src/core/common/services/email.service.ts +9 -9
  125. package/src/core/common/services/module.service.ts +114 -0
  126. package/src/core/common/types/core-model-constructor.type.ts +30 -0
  127. package/src/core/common/types/field-selection.type.ts +8 -0
  128. package/src/core/common/types/string-or-object-id.type.ts +3 -0
  129. package/src/core/modules/auth/core-auth.module.ts +1 -1
  130. package/src/core/modules/auth/core-auth.resolver.ts +8 -3
  131. package/src/core/modules/auth/services/core-auth-user.service.ts +7 -1
  132. package/src/core/modules/auth/services/core-auth.service.ts +14 -4
  133. package/src/core/modules/user/core-user.model.ts +2 -1
  134. package/src/core/modules/user/core-user.service.ts +131 -194
  135. package/src/core.module.ts +2 -2
  136. package/src/index.ts +8 -1
  137. package/src/main.ts +1 -1
  138. package/src/server/modules/auth/auth.resolver.ts +8 -3
  139. package/src/server/modules/file/file.controller.ts +2 -2
  140. package/src/server/modules/user/avatar.controller.ts +2 -2
  141. package/src/server/modules/user/user.module.ts +7 -3
  142. package/src/server/modules/user/user.resolver.ts +62 -37
  143. package/src/server/modules/user/user.service.ts +23 -53
  144. package/src/test/test.helper.ts +31 -30
  145. package/dist/core/modules/user/core-basic-user.service.d.ts +0 -17
  146. package/dist/core/modules/user/core-basic-user.service.js +0 -73
  147. package/dist/core/modules/user/core-basic-user.service.js.map +0 -1
  148. package/src/core/modules/user/core-basic-user.service.ts +0 -138
@@ -1,44 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileHelper = void 0;
3
+ exports.multerOptionsForImageUpload = exports.multerFileFilter = exports.multerRandomFileName = void 0;
4
4
  const multer_1 = require("multer");
5
5
  const path_1 = require("path");
6
6
  class FileHelper {
7
7
  static multerRandomFileName(numberOfDigits = 32) {
8
- return (req, file, cb) => {
9
- const randomName = Array(numberOfDigits)
10
- .fill(null)
11
- .map(() => Math.round(Math.random() * 16).toString(16))
12
- .join('');
13
- cb(null, `${randomName}${(0, path_1.extname)(file.originalname)}`);
14
- };
8
+ return multerRandomFileName(numberOfDigits);
15
9
  }
16
10
  static multerFileFilter(fileTypeRegex = /jpeg|jpg|png/) {
17
- return (req, file, cb) => {
18
- const mimetype = fileTypeRegex.test(file.mimetype);
19
- const extName = fileTypeRegex.test((0, path_1.extname)(file.originalname).toLowerCase());
20
- if (mimetype && extName) {
21
- return cb(null, true);
22
- }
23
- cb('Error: File upload only supports the following filetypes - ' + fileTypeRegex);
24
- };
11
+ return multerFileFilter(fileTypeRegex);
25
12
  }
26
13
  static multerOptionsForImageUpload(options) {
27
- options = Object.assign({
28
- fileSize: 1024 * 1024,
29
- fileTypeRegex: /jpeg|jpg|png/,
30
- }, options);
31
- return {
32
- fileFilter: options.fileTypeRegex ? FileHelper.multerFileFilter(options.fileTypeRegex) : undefined,
33
- limits: {
34
- fileSize: options.fileSize ? options.fileSize : undefined,
35
- },
36
- storage: (0, multer_1.diskStorage)({
37
- destination: options.destination ? options.destination : undefined,
38
- filename: FileHelper.multerRandomFileName(),
39
- }),
40
- };
14
+ return multerOptionsForImageUpload(options);
41
15
  }
42
16
  }
43
- exports.FileHelper = FileHelper;
17
+ exports.default = FileHelper;
18
+ function multerRandomFileName(numberOfDigits = 32) {
19
+ return (req, file, cb) => {
20
+ const randomName = Array(numberOfDigits)
21
+ .fill(null)
22
+ .map(() => Math.round(Math.random() * 16).toString(16))
23
+ .join('');
24
+ cb(null, `${randomName}${(0, path_1.extname)(file.originalname)}`);
25
+ };
26
+ }
27
+ exports.multerRandomFileName = multerRandomFileName;
28
+ function multerFileFilter(fileTypeRegex = /jpeg|jpg|png/) {
29
+ return (req, file, cb) => {
30
+ const mimetype = fileTypeRegex.test(file.mimetype);
31
+ const extName = fileTypeRegex.test((0, path_1.extname)(file.originalname).toLowerCase());
32
+ if (mimetype && extName) {
33
+ return cb(null, true);
34
+ }
35
+ cb('Error: File upload only supports the following filetypes - ' + fileTypeRegex);
36
+ };
37
+ }
38
+ exports.multerFileFilter = multerFileFilter;
39
+ function multerOptionsForImageUpload(options) {
40
+ options = Object.assign({
41
+ fileSize: 1024 * 1024,
42
+ fileTypeRegex: /jpeg|jpg|png/,
43
+ }, options);
44
+ return {
45
+ fileFilter: options.fileTypeRegex ? multerFileFilter(options.fileTypeRegex) : undefined,
46
+ limits: {
47
+ fileSize: options.fileSize ? options.fileSize : undefined,
48
+ },
49
+ storage: (0, multer_1.diskStorage)({
50
+ destination: options.destination ? options.destination : undefined,
51
+ filename: multerRandomFileName(),
52
+ }),
53
+ };
54
+ }
55
+ exports.multerOptionsForImageUpload = multerOptionsForImageUpload;
44
56
  //# sourceMappingURL=file.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/file.helper.ts"],"names":[],"mappings":";;;AACA,mCAAqC;AACrC,+BAA+B;AAK/B,MAAa,UAAU;IAKd,MAAM,CAAC,oBAAoB,CAAC,cAAc,GAAG,EAAE;QACpD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;YAEvB,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;iBACrC,IAAI,CAAC,IAAI,CAAC;iBACV,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBACtD,IAAI,CAAC,EAAE,CAAC,CAAC;YAIZ,EAAE,CAAC,IAAI,EAAE,GAAG,UAAU,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC;IAKM,MAAM,CAAC,gBAAgB,CAAC,aAAa,GAAG,cAAc;QAC3D,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAE7E,IAAI,QAAQ,IAAI,OAAO,EAAE;gBACvB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACvB;YACD,EAAE,CAAC,6DAA6D,GAAG,aAAa,CAAC,CAAC;QACpF,CAAC,CAAC;IACJ,CAAC;IAKM,MAAM,CAAC,2BAA2B,CAAC,OAIzC;QAEC,OAAO,GAAG,MAAM,CAAC,MAAM,CACrB;YACE,QAAQ,EAAE,IAAI,GAAG,IAAI;YACrB,aAAa,EAAE,cAAc;SAC9B,EACD,OAAO,CACR,CAAC;QAEF,OAAO;YAEL,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;YAGlG,MAAM,EAAE;gBAEN,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aAC1D;YAID,OAAO,EAAE,IAAA,oBAAW,EAAC;gBAInB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;gBAGlE,QAAQ,EAAE,UAAU,CAAC,oBAAoB,EAAE;aAC5C,CAAC;SACH,CAAC;IACJ,CAAC;CACF;AA1ED,gCA0EC"}
1
+ {"version":3,"file":"file.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/file.helper.ts"],"names":[],"mappings":";;;AACA,mCAAqC;AACrC,+BAA+B;AAM/B,MAAqB,UAAU;IAKtB,MAAM,CAAC,oBAAoB,CAAC,cAAc,GAAG,EAAE;QACpD,OAAO,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAKM,MAAM,CAAC,gBAAgB,CAAC,aAAa,GAAG,cAAc;QAC3D,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAKM,MAAM,CAAC,2BAA2B,CAAC,OAIzC;QACC,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF;AA1BD,6BA0BC;AAMD,SAAgB,oBAAoB,CAAC,cAAc,GAAG,EAAE;IACtD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAEvB,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;aACrC,IAAI,CAAC,IAAI,CAAC;aACV,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACtD,IAAI,CAAC,EAAE,CAAC,CAAC;QAIZ,EAAE,CAAC,IAAI,EAAE,GAAG,UAAU,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC;AACJ,CAAC;AAZD,oDAYC;AAKD,SAAgB,gBAAgB,CAAC,aAAa,GAAG,cAAc;IAC7D,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAE7E,IAAI,QAAQ,IAAI,OAAO,EAAE;YACvB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACvB;QACD,EAAE,CAAC,6DAA6D,GAAG,aAAa,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC;AAVD,4CAUC;AAKD,SAAgB,2BAA2B,CAAC,OAI3C;IAEC,OAAO,GAAG,MAAM,CAAC,MAAM,CACrB;QACE,QAAQ,EAAE,IAAI,GAAG,IAAI;QACrB,aAAa,EAAE,cAAc;KAC9B,EACD,OAAO,CACR,CAAC;IAEF,OAAO;QAEL,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;QAGvF,MAAM,EAAE;YAEN,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC1D;QAID,OAAO,EAAE,IAAA,oBAAW,EAAC;YAInB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAGlE,QAAQ,EAAE,oBAAoB,EAAE;SACjC,CAAC;KACH,CAAC;AACJ,CAAC;AApCD,kEAoCC"}
@@ -6,3 +6,6 @@ export declare class Filter {
6
6
  static generateFilterQuery<T = any>(filter?: Partial<FilterInput>): FilterQuery<T> | any;
7
7
  static generateFindOptions<T = any>(filterArgs: Partial<FilterArgs>): QueryOptions;
8
8
  }
9
+ export declare function convertFilterArgsToQuery<T = any>(filterArgs: Partial<FilterArgs>): [FilterQuery<T>, QueryOptions];
10
+ export declare function generateFilterQuery<T = any>(filter?: Partial<FilterInput>): FilterQuery<T> | any;
11
+ export declare function generateFindOptions<T = any>(filterArgs: Partial<FilterArgs>): QueryOptions;
@@ -1,96 +1,108 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Filter = void 0;
3
+ exports.generateFindOptions = exports.generateFilterQuery = exports.convertFilterArgsToQuery = exports.Filter = void 0;
4
4
  const comparison_operator_enum_1 = require("../enums/comparison-operator.enum");
5
5
  const logical_operator_enum_1 = require("../enums/logical-operator.enum");
6
6
  class Filter {
7
7
  static convertFilterArgsToQuery(filterArgs) {
8
- return [Filter.generateFilterQuery(filterArgs.filter), Filter.generateFindOptions(filterArgs)];
8
+ return convertFilterArgsToQuery(filterArgs);
9
9
  }
10
10
  static generateFilterQuery(filter) {
11
- if (!filter) {
12
- return undefined;
13
- }
14
- const result = {};
15
- if (filter.combinedFilter) {
16
- switch (filter.combinedFilter.logicalOperator) {
17
- case logical_operator_enum_1.LogicalOperatorEnum.AND:
18
- return {
19
- $and: filter.combinedFilter.filters.map((item) => Filter.generateFilterQuery(item)),
20
- };
21
- case logical_operator_enum_1.LogicalOperatorEnum.NOR:
22
- return {
23
- $nor: filter.combinedFilter.filters.map((item) => Filter.generateFilterQuery(item)),
24
- };
25
- case logical_operator_enum_1.LogicalOperatorEnum.OR:
26
- return {
27
- $or: filter.combinedFilter.filters.map((item) => Filter.generateFilterQuery(item)),
28
- };
29
- }
30
- }
31
- if (filter.singleFilter) {
32
- const { not, options, field, value } = filter.singleFilter;
33
- switch (filter.singleFilter.operator) {
34
- case comparison_operator_enum_1.ComparisonOperatorEnum.EQ:
35
- result[field] = not ? { $ne: value } : value;
36
- break;
37
- case comparison_operator_enum_1.ComparisonOperatorEnum.GT:
38
- result[field] = not ? { $not: { $gt: value } } : { $gt: value };
39
- break;
40
- case comparison_operator_enum_1.ComparisonOperatorEnum.GTE:
41
- result[field] = not ? { $not: { $gte: value } } : { $gte: value };
42
- break;
43
- case comparison_operator_enum_1.ComparisonOperatorEnum.IN:
44
- result[field] = not ? { $nin: value } : { $in: value };
45
- break;
46
- case comparison_operator_enum_1.ComparisonOperatorEnum.LT:
47
- result[field] = not ? { $not: { $lt: value } } : { $lt: value };
48
- break;
49
- case comparison_operator_enum_1.ComparisonOperatorEnum.LTE:
50
- result[field] = not ? { $not: { $lte: value } } : { $lte: value };
51
- break;
52
- case comparison_operator_enum_1.ComparisonOperatorEnum.NE:
53
- result[field] = not ? value : { $ne: value };
54
- break;
55
- case comparison_operator_enum_1.ComparisonOperatorEnum.NIN:
56
- result[field] = not ? { $in: value } : { $nin: value };
57
- break;
58
- case comparison_operator_enum_1.ComparisonOperatorEnum.REGEX:
59
- result[field] = not
60
- ? {
61
- $not: {
62
- $regex: new RegExp(value),
63
- $options: options || '',
64
- },
65
- }
66
- : { $regex: new RegExp(value), $options: options || '' };
67
- break;
68
- }
69
- }
70
- return result;
11
+ return generateFilterQuery(filter);
71
12
  }
72
13
  static generateFindOptions(filterArgs) {
73
- if (!filterArgs) {
74
- return {};
75
- }
76
- const { limit, offset, skip, sort, take } = filterArgs;
77
- const options = {
78
- limit: limit ? limit : take,
79
- };
80
- if (skip > 0 || offset > 0) {
81
- options.skip = offset ? offset : skip;
82
- }
83
- if (!options.limit || options.limit > 100) {
84
- options.limit = 25;
14
+ return generateFindOptions(filterArgs);
15
+ }
16
+ }
17
+ exports.Filter = Filter;
18
+ function convertFilterArgsToQuery(filterArgs) {
19
+ return [generateFilterQuery(filterArgs === null || filterArgs === void 0 ? void 0 : filterArgs.filter), generateFindOptions(filterArgs)];
20
+ }
21
+ exports.convertFilterArgsToQuery = convertFilterArgsToQuery;
22
+ function generateFilterQuery(filter) {
23
+ if (!filter) {
24
+ return undefined;
25
+ }
26
+ const result = {};
27
+ if (filter.combinedFilter) {
28
+ switch (filter.combinedFilter.logicalOperator) {
29
+ case logical_operator_enum_1.LogicalOperatorEnum.AND:
30
+ return {
31
+ $and: filter.combinedFilter.filters.map((item) => generateFilterQuery(item)),
32
+ };
33
+ case logical_operator_enum_1.LogicalOperatorEnum.NOR:
34
+ return {
35
+ $nor: filter.combinedFilter.filters.map((item) => generateFilterQuery(item)),
36
+ };
37
+ case logical_operator_enum_1.LogicalOperatorEnum.OR:
38
+ return {
39
+ $or: filter.combinedFilter.filters.map((item) => generateFilterQuery(item)),
40
+ };
85
41
  }
86
- if (sort) {
87
- options.sort = {};
88
- sort.forEach((item) => {
89
- options.sort[item.field] = item.order;
90
- });
42
+ }
43
+ if (filter.singleFilter) {
44
+ const { not, options, field, value } = filter.singleFilter;
45
+ switch (filter.singleFilter.operator) {
46
+ case comparison_operator_enum_1.ComparisonOperatorEnum.EQ:
47
+ result[field] = not ? { $ne: value } : value;
48
+ break;
49
+ case comparison_operator_enum_1.ComparisonOperatorEnum.GT:
50
+ result[field] = not ? { $not: { $gt: value } } : { $gt: value };
51
+ break;
52
+ case comparison_operator_enum_1.ComparisonOperatorEnum.GTE:
53
+ result[field] = not ? { $not: { $gte: value } } : { $gte: value };
54
+ break;
55
+ case comparison_operator_enum_1.ComparisonOperatorEnum.IN:
56
+ result[field] = not ? { $nin: value } : { $in: value };
57
+ break;
58
+ case comparison_operator_enum_1.ComparisonOperatorEnum.LT:
59
+ result[field] = not ? { $not: { $lt: value } } : { $lt: value };
60
+ break;
61
+ case comparison_operator_enum_1.ComparisonOperatorEnum.LTE:
62
+ result[field] = not ? { $not: { $lte: value } } : { $lte: value };
63
+ break;
64
+ case comparison_operator_enum_1.ComparisonOperatorEnum.NE:
65
+ result[field] = not ? value : { $ne: value };
66
+ break;
67
+ case comparison_operator_enum_1.ComparisonOperatorEnum.NIN:
68
+ result[field] = not ? { $in: value } : { $nin: value };
69
+ break;
70
+ case comparison_operator_enum_1.ComparisonOperatorEnum.REGEX:
71
+ result[field] = not
72
+ ? {
73
+ $not: {
74
+ $regex: new RegExp(value),
75
+ $options: options || '',
76
+ },
77
+ }
78
+ : { $regex: new RegExp(value), $options: options || '' };
79
+ break;
91
80
  }
92
- return options;
93
81
  }
82
+ return result;
94
83
  }
95
- exports.Filter = Filter;
84
+ exports.generateFilterQuery = generateFilterQuery;
85
+ function generateFindOptions(filterArgs) {
86
+ if (!filterArgs) {
87
+ return {};
88
+ }
89
+ const { limit, offset, skip, sort, take } = filterArgs;
90
+ const options = {
91
+ limit: limit ? limit : take,
92
+ };
93
+ if (skip > 0 || offset > 0) {
94
+ options.skip = offset ? offset : skip;
95
+ }
96
+ if (!options.limit || options.limit > 100) {
97
+ options.limit = 25;
98
+ }
99
+ if (sort) {
100
+ options.sort = {};
101
+ sort.forEach((item) => {
102
+ options.sort[item.field] = item.order;
103
+ });
104
+ }
105
+ return options;
106
+ }
107
+ exports.generateFindOptions = generateFindOptions;
96
108
  //# sourceMappingURL=filter.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/filter.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/filter.helper.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export interface GraphQLFieldsConfig {
4
4
  excludedFields: string[];
5
5
  }
6
6
  export declare type ValueNodeWithValueField = VariableNode | IntValueNode | FloatValueNode | StringValueNode | BooleanValueNode | EnumValueNode;
7
- export declare class GraphQLHelper {
7
+ export default class GraphQLHelper {
8
8
  static isFieldNode(ast: SelectionNode): ast is FieldNode;
9
9
  static isValueNodeWithValueField(value: ValueNode): value is ValueNodeWithValueField;
10
10
  static isListValueNode(value: ValueNode): value is ListValueNode;
@@ -29,3 +29,26 @@ export declare class GraphQLHelper {
29
29
  static isInGraphQLResolveInfo(path: any, info: GraphQLResolveInfo, config?: Partial<GraphQLFieldsConfig>): boolean;
30
30
  static isInFields(path: any, fields: any): boolean;
31
31
  }
32
+ export declare function isFieldNode(ast: SelectionNode): ast is FieldNode;
33
+ export declare function isValueNodeWithValueField(value: ValueNode): value is ValueNodeWithValueField;
34
+ export declare function isListValueNode(value: ValueNode): value is ListValueNode;
35
+ export declare function getASTSelections(ast: FieldNode): readonly SelectionNode[];
36
+ export declare function getAST(ast: any, info: any): any;
37
+ export declare function getArguments(ast: FieldNode): {
38
+ [x: string]: {
39
+ kind: import("graphql").Kind.VARIABLE | import("graphql").Kind.INT | import("graphql").Kind.FLOAT | import("graphql").Kind.STRING | import("graphql").Kind.BOOLEAN | import("graphql").Kind.NULL | import("graphql").Kind.ENUM | import("graphql").Kind.LIST | import("graphql").Kind.OBJECT;
40
+ value: any;
41
+ };
42
+ }[];
43
+ export declare function getDirectiveValue(directive: DirectiveNode, info: GraphQLResolveInfo): unknown;
44
+ export declare function getDirectiveResults(ast: SelectionNode, info: GraphQLResolveInfo): {
45
+ shouldInclude: unknown;
46
+ shouldSkip: boolean;
47
+ } | {
48
+ shouldSkip: unknown;
49
+ shouldInclude: boolean;
50
+ };
51
+ export declare function flattenAST(ast: FieldNode, info: GraphQLResolveInfo, obj?: any, config?: Partial<GraphQLFieldsConfig>): any;
52
+ export declare function getFields(info: GraphQLResolveInfo, obj?: Record<string, any>, config?: Partial<GraphQLFieldsConfig>): any;
53
+ export declare function isInGraphQLResolveInfo(path: any, info: GraphQLResolveInfo, config?: Partial<GraphQLFieldsConfig>): boolean;
54
+ export declare function isInFields(path: any, fields: any): boolean;
@@ -1,126 +1,174 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GraphQLHelper = void 0;
3
+ exports.isInFields = exports.isInGraphQLResolveInfo = exports.getFields = exports.flattenAST = exports.getDirectiveResults = exports.getDirectiveValue = exports.getArguments = exports.getAST = exports.getASTSelections = exports.isListValueNode = exports.isValueNodeWithValueField = exports.isFieldNode = void 0;
4
4
  const _ = require("lodash");
5
5
  class GraphQLHelper {
6
6
  static isFieldNode(ast) {
7
- return ast.kind === 'Field';
7
+ return isFieldNode(ast);
8
8
  }
9
9
  static isValueNodeWithValueField(value) {
10
- return value.kind !== 'NullValue' && value.kind !== 'ListValue' && value.kind !== 'ObjectValue';
10
+ return isValueNodeWithValueField(value);
11
11
  }
12
12
  static isListValueNode(value) {
13
- return value.kind === 'ListValue';
13
+ return isListValueNode(value);
14
14
  }
15
15
  static getSelections(ast) {
16
- if (ast && ast.selectionSet && ast.selectionSet.selections && ast.selectionSet.selections.length) {
17
- return ast.selectionSet.selections;
18
- }
19
- return [];
16
+ return getASTSelections(ast);
20
17
  }
21
18
  static getAST(ast, info) {
22
- if (ast.kind === 'FragmentSpread') {
23
- const fragmentName = ast.name.value;
24
- return info.fragments[fragmentName];
25
- }
26
- return ast;
19
+ return getAST(ast, info);
27
20
  }
28
21
  static getArguments(ast) {
29
- var _a;
30
- return (_a = ast.arguments) === null || _a === void 0 ? void 0 : _a.map((argument) => {
31
- const valueNode = argument.value;
32
- const argumentValue = !GraphQLHelper.isListValueNode(valueNode)
33
- ? valueNode.value
34
- : valueNode.values.map((value) => value.value);
35
- return {
36
- [argument.name.value]: {
37
- kind: argument.value.kind,
38
- value: argumentValue,
39
- },
40
- };
41
- });
22
+ return getArguments(ast);
42
23
  }
43
24
  static getDirectiveValue(directive, info) {
44
- var _a;
45
- const arg = (_a = directive.arguments) === null || _a === void 0 ? void 0 : _a[0];
46
- if (!arg) {
47
- return;
48
- }
49
- if (arg.value.kind !== 'Variable') {
50
- const valueNode = arg.value;
51
- return GraphQLHelper.isValueNodeWithValueField(valueNode) ? !!valueNode.value : false;
52
- }
53
- return info.variableValues[arg.value.name.value];
25
+ return getDirectiveValue(directive, info);
54
26
  }
55
27
  static getDirectiveResults(ast, info) {
56
- var _a;
57
- const directiveResult = {
58
- shouldInclude: true,
59
- shouldSkip: false,
60
- };
61
- return (_a = ast.directives) === null || _a === void 0 ? void 0 : _a.reduce((result, directive) => {
62
- switch (directive.name.value) {
63
- case 'include':
64
- return Object.assign(Object.assign({}, result), { shouldInclude: GraphQLHelper.getDirectiveValue(directive, info) });
65
- case 'skip':
66
- return Object.assign(Object.assign({}, result), { shouldSkip: GraphQLHelper.getDirectiveValue(directive, info) });
67
- default:
68
- return result;
69
- }
70
- }, directiveResult);
28
+ return getDirectiveResults(ast, info);
71
29
  }
72
30
  static flattenAST(ast, info, obj = {}, config = {}) {
73
- config = Object.assign({
74
- processArguments: false,
75
- excludedFields: [],
76
- }, config);
77
- return GraphQLHelper.getSelections(ast).reduce((flattened, a) => {
78
- if (a.directives && a.directives.length) {
79
- const { shouldInclude, shouldSkip } = GraphQLHelper.getDirectiveResults(a, info);
80
- if (shouldSkip || !shouldInclude) {
81
- return flattened;
82
- }
83
- }
84
- if (GraphQLHelper.isFieldNode(a)) {
85
- const name = a.name.value;
86
- if (config.excludedFields.indexOf(name) !== -1) {
87
- return flattened;
88
- }
89
- if (flattened[name] && flattened[name] !== '__arguments') {
90
- Object.assign(flattened[name], GraphQLHelper.flattenAST(a, info, flattened[name]));
91
- }
92
- else {
93
- flattened[name] = GraphQLHelper.flattenAST(a, info);
94
- }
95
- if (config.processArguments) {
96
- if (a.arguments && a.arguments.length) {
97
- Object.assign(flattened[name], {
98
- __arguments: GraphQLHelper.getArguments(a),
99
- });
100
- }
101
- }
102
- }
103
- else {
104
- flattened = GraphQLHelper.flattenAST(GraphQLHelper.getAST(a, info), info, flattened);
105
- }
106
- return flattened;
107
- }, obj);
31
+ return flattenAST(ast, info, obj, config);
108
32
  }
109
33
  static getFields(info, obj = {}, config = {}) {
110
- if (!info || (!info.fieldNodes && !info.fieldASTs)) {
111
- return {};
112
- }
113
- const fields = info.fieldNodes || info.fieldASTs;
114
- return (fields.reduce((o, ast) => {
115
- return GraphQLHelper.flattenAST(ast, info, o, config);
116
- }, obj) || {});
34
+ return getFields(info, obj, config);
117
35
  }
118
36
  static isInGraphQLResolveInfo(path, info, config = {}) {
119
- return _.has(GraphQLHelper.getFields(info, config), path);
37
+ return isInGraphQLResolveInfo(path, info, config);
120
38
  }
121
39
  static isInFields(path, fields) {
122
- return _.has(fields, path);
40
+ return isInFields(path, fields);
41
+ }
42
+ }
43
+ exports.default = GraphQLHelper;
44
+ function isFieldNode(ast) {
45
+ return ast.kind === 'Field';
46
+ }
47
+ exports.isFieldNode = isFieldNode;
48
+ function isValueNodeWithValueField(value) {
49
+ return value.kind !== 'NullValue' && value.kind !== 'ListValue' && value.kind !== 'ObjectValue';
50
+ }
51
+ exports.isValueNodeWithValueField = isValueNodeWithValueField;
52
+ function isListValueNode(value) {
53
+ return value.kind === 'ListValue';
54
+ }
55
+ exports.isListValueNode = isListValueNode;
56
+ function getASTSelections(ast) {
57
+ if (ast && ast.selectionSet && ast.selectionSet.selections && ast.selectionSet.selections.length) {
58
+ return ast.selectionSet.selections;
59
+ }
60
+ return [];
61
+ }
62
+ exports.getASTSelections = getASTSelections;
63
+ function getAST(ast, info) {
64
+ if (ast.kind === 'FragmentSpread') {
65
+ const fragmentName = ast.name.value;
66
+ return info.fragments[fragmentName];
123
67
  }
68
+ return ast;
69
+ }
70
+ exports.getAST = getAST;
71
+ function getArguments(ast) {
72
+ var _a;
73
+ return (_a = ast.arguments) === null || _a === void 0 ? void 0 : _a.map((argument) => {
74
+ const valueNode = argument.value;
75
+ const argumentValue = !isListValueNode(valueNode)
76
+ ? valueNode.value
77
+ : valueNode.values.map((value) => value.value);
78
+ return {
79
+ [argument.name.value]: {
80
+ kind: argument.value.kind,
81
+ value: argumentValue,
82
+ },
83
+ };
84
+ });
85
+ }
86
+ exports.getArguments = getArguments;
87
+ function getDirectiveValue(directive, info) {
88
+ var _a;
89
+ const arg = (_a = directive.arguments) === null || _a === void 0 ? void 0 : _a[0];
90
+ if (!arg) {
91
+ return;
92
+ }
93
+ if (arg.value.kind !== 'Variable') {
94
+ const valueNode = arg.value;
95
+ return isValueNodeWithValueField(valueNode) ? !!valueNode.value : false;
96
+ }
97
+ return info.variableValues[arg.value.name.value];
98
+ }
99
+ exports.getDirectiveValue = getDirectiveValue;
100
+ function getDirectiveResults(ast, info) {
101
+ var _a;
102
+ const directiveResult = {
103
+ shouldInclude: true,
104
+ shouldSkip: false,
105
+ };
106
+ return (_a = ast.directives) === null || _a === void 0 ? void 0 : _a.reduce((result, directive) => {
107
+ switch (directive.name.value) {
108
+ case 'include':
109
+ return Object.assign(Object.assign({}, result), { shouldInclude: getDirectiveValue(directive, info) });
110
+ case 'skip':
111
+ return Object.assign(Object.assign({}, result), { shouldSkip: getDirectiveValue(directive, info) });
112
+ default:
113
+ return result;
114
+ }
115
+ }, directiveResult);
116
+ }
117
+ exports.getDirectiveResults = getDirectiveResults;
118
+ function flattenAST(ast, info, obj = {}, config = {}) {
119
+ config = Object.assign({
120
+ processArguments: false,
121
+ excludedFields: [],
122
+ }, config);
123
+ return getASTSelections(ast).reduce((flattened, a) => {
124
+ if (a.directives && a.directives.length) {
125
+ const { shouldInclude, shouldSkip } = getDirectiveResults(a, info);
126
+ if (shouldSkip || !shouldInclude) {
127
+ return flattened;
128
+ }
129
+ }
130
+ if (isFieldNode(a)) {
131
+ const name = a.name.value;
132
+ if (config.excludedFields.indexOf(name) !== -1) {
133
+ return flattened;
134
+ }
135
+ if (flattened[name] && flattened[name] !== '__arguments') {
136
+ Object.assign(flattened[name], flattenAST(a, info, flattened[name]));
137
+ }
138
+ else {
139
+ flattened[name] = flattenAST(a, info);
140
+ }
141
+ if (config.processArguments) {
142
+ if (a.arguments && a.arguments.length) {
143
+ Object.assign(flattened[name], {
144
+ __arguments: getArguments(a),
145
+ });
146
+ }
147
+ }
148
+ }
149
+ else {
150
+ flattened = flattenAST(getAST(a, info), info, flattened);
151
+ }
152
+ return flattened;
153
+ }, obj);
154
+ }
155
+ exports.flattenAST = flattenAST;
156
+ function getFields(info, obj = {}, config = {}) {
157
+ if (!info || (!info.fieldNodes && !info.fieldASTs)) {
158
+ return {};
159
+ }
160
+ const fields = info.fieldNodes || info.fieldASTs;
161
+ return (fields.reduce((o, ast) => {
162
+ return flattenAST(ast, info, o, config);
163
+ }, obj) || {});
164
+ }
165
+ exports.getFields = getFields;
166
+ function isInGraphQLResolveInfo(path, info, config = {}) {
167
+ return _.has(getFields(info, config), path);
168
+ }
169
+ exports.isInGraphQLResolveInfo = isInGraphQLResolveInfo;
170
+ function isInFields(path, fields) {
171
+ return _.has(fields, path);
124
172
  }
125
- exports.GraphQLHelper = GraphQLHelper;
173
+ exports.isInFields = isInFields;
126
174
  //# sourceMappingURL=graphql.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/graphql.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/graphql.helper.ts"],"names":[],"mappings":"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"}