@klerick/json-api-nestjs-microorm 0.1.0-beta.1 → 0.1.0-beta.11

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 (105) hide show
  1. package/CHANGELOG.md +99 -1
  2. package/README.md +47 -5
  3. package/package.json +23 -40
  4. package/src/index.d.ts +1 -0
  5. package/src/index.js +5 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/constants/index.d.ts +5 -0
  8. package/src/lib/constants/index.js +9 -0
  9. package/src/lib/constants/index.js.map +1 -0
  10. package/src/lib/factory/index.d.ts +21 -0
  11. package/src/lib/factory/index.js +116 -0
  12. package/src/lib/factory/index.js.map +1 -0
  13. package/src/lib/index.d.ts +2 -0
  14. package/src/lib/index.js +6 -0
  15. package/src/lib/index.js.map +1 -0
  16. package/src/lib/micro-orm-json-api.module.d.ts +7 -0
  17. package/src/lib/micro-orm-json-api.module.js +50 -0
  18. package/src/lib/micro-orm-json-api.module.js.map +1 -0
  19. package/src/lib/mock-utils/entities/addresses.d.ts +12 -0
  20. package/src/lib/mock-utils/entities/addresses.js +87 -0
  21. package/src/lib/mock-utils/entities/addresses.js.map +1 -0
  22. package/src/lib/mock-utils/entities/comments.d.ts +15 -0
  23. package/src/lib/mock-utils/entities/comments.js +72 -0
  24. package/src/lib/mock-utils/entities/comments.js.map +1 -0
  25. package/src/lib/mock-utils/entities/index.d.ts +13 -0
  26. package/src/lib/mock-utils/entities/index.js +18 -0
  27. package/src/lib/mock-utils/entities/index.js.map +1 -0
  28. package/src/lib/mock-utils/entities/notes.d.ts +10 -0
  29. package/src/lib/mock-utils/entities/notes.js +64 -0
  30. package/src/lib/mock-utils/entities/notes.js.map +1 -0
  31. package/src/lib/mock-utils/entities/roles.d.ts +12 -0
  32. package/src/lib/mock-utils/entities/roles.js +80 -0
  33. package/src/lib/mock-utils/entities/roles.js.map +1 -0
  34. package/src/lib/mock-utils/entities/user-groups.d.ts +7 -0
  35. package/src/lib/mock-utils/entities/user-groups.js +37 -0
  36. package/src/lib/mock-utils/entities/user-groups.js.map +1 -0
  37. package/src/lib/mock-utils/entities/users.d.ts +23 -0
  38. package/src/lib/mock-utils/entities/users.js +166 -0
  39. package/src/lib/mock-utils/entities/users.js.map +1 -0
  40. package/src/lib/mock-utils/index.d.ts +23 -0
  41. package/src/lib/mock-utils/index.js +97 -0
  42. package/src/lib/mock-utils/index.js.map +1 -0
  43. package/src/lib/mock-utils/utils/index.d.ts +3 -0
  44. package/src/lib/mock-utils/utils/index.js +7 -0
  45. package/src/lib/mock-utils/utils/index.js.map +1 -0
  46. package/src/lib/mock-utils/utils/init-db.d.ts +3 -0
  47. package/src/lib/mock-utils/utils/init-db.js +38 -0
  48. package/src/lib/mock-utils/utils/init-db.js.map +1 -0
  49. package/src/lib/mock-utils/utils/provider-entities.d.ts +10 -0
  50. package/src/lib/mock-utils/utils/provider-entities.js +22 -0
  51. package/src/lib/mock-utils/utils/provider-entities.js.map +1 -0
  52. package/src/lib/mock-utils/utils/pull-data.d.ts +9 -0
  53. package/src/lib/mock-utils/utils/pull-data.js +115 -0
  54. package/src/lib/mock-utils/utils/pull-data.js.map +1 -0
  55. package/src/lib/orm-helper/index.d.ts +12 -0
  56. package/src/lib/orm-helper/index.js +183 -0
  57. package/src/lib/orm-helper/index.js.map +1 -0
  58. package/src/lib/orm-methods/delete-one/delete-one.d.ts +2 -0
  59. package/src/lib/orm-methods/delete-one/delete-one.js +16 -0
  60. package/src/lib/orm-methods/delete-one/delete-one.js.map +1 -0
  61. package/src/lib/orm-methods/delete-relationship/delete-relationship.d.ts +4 -0
  62. package/src/lib/orm-methods/delete-relationship/delete-relationship.js +40 -0
  63. package/src/lib/orm-methods/delete-relationship/delete-relationship.js.map +1 -0
  64. package/src/lib/orm-methods/get-all/get-all.d.ts +6 -0
  65. package/src/lib/orm-methods/get-all/get-all.js +65 -0
  66. package/src/lib/orm-methods/get-all/get-all.js.map +1 -0
  67. package/src/lib/orm-methods/get-all/get-query-for-count.d.ts +5 -0
  68. package/src/lib/orm-methods/get-all/get-query-for-count.js +43 -0
  69. package/src/lib/orm-methods/get-all/get-query-for-count.js.map +1 -0
  70. package/src/lib/orm-methods/get-one/get-one.d.ts +3 -0
  71. package/src/lib/orm-methods/get-one/get-one.js +26 -0
  72. package/src/lib/orm-methods/get-one/get-one.js.map +1 -0
  73. package/src/lib/orm-methods/get-relationship/get-relationship.d.ts +3 -0
  74. package/src/lib/orm-methods/get-relationship/get-relationship.js +24 -0
  75. package/src/lib/orm-methods/get-relationship/get-relationship.js.map +1 -0
  76. package/src/lib/orm-methods/index.d.ts +9 -0
  77. package/src/lib/orm-methods/index.js +13 -0
  78. package/src/lib/orm-methods/index.js.map +1 -0
  79. package/src/lib/orm-methods/patch-one/patch-one.d.ts +3 -0
  80. package/src/lib/orm-methods/patch-one/patch-one.js +40 -0
  81. package/src/lib/orm-methods/patch-one/patch-one.js.map +1 -0
  82. package/src/lib/orm-methods/patch-relationship/patch-relationship.d.ts +4 -0
  83. package/src/lib/orm-methods/patch-relationship/patch-relationship.js +23 -0
  84. package/src/lib/orm-methods/patch-relationship/patch-relationship.js.map +1 -0
  85. package/src/lib/orm-methods/post-one/post-one.d.ts +3 -0
  86. package/src/lib/orm-methods/post-one/post-one.js +16 -0
  87. package/src/lib/orm-methods/post-one/post-one.js.map +1 -0
  88. package/src/lib/orm-methods/post-relationship/post-relationship.d.ts +4 -0
  89. package/src/lib/orm-methods/post-relationship/post-relationship.js +21 -0
  90. package/src/lib/orm-methods/post-relationship/post-relationship.js.map +1 -0
  91. package/src/lib/service/index.d.ts +3 -0
  92. package/src/lib/service/index.js +7 -0
  93. package/src/lib/service/index.js.map +1 -0
  94. package/src/lib/service/micro-orm-util.service.d.ts +51 -0
  95. package/src/lib/service/micro-orm-util.service.js +554 -0
  96. package/src/lib/service/micro-orm-util.service.js.map +1 -0
  97. package/src/lib/service/microorm-service.d.ts +21 -0
  98. package/src/lib/service/microorm-service.js +121 -0
  99. package/src/lib/service/microorm-service.js.map +1 -0
  100. package/src/lib/service/mikro-orm-format.error.service.d.ts +11 -0
  101. package/src/lib/service/mikro-orm-format.error.service.js +95 -0
  102. package/src/lib/service/mikro-orm-format.error.service.js.map +1 -0
  103. package/src/lib/type.d.ts +3 -0
  104. package/src/lib/type.js +3 -0
  105. package/src/lib/type.js.map +1 -0
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MicroOrmService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
7
+ const json_api_nestjs_1 = require("@klerick/json-api-nestjs");
8
+ const orm_methods_1 = require("../orm-methods");
9
+ const micro_orm_util_service_1 = require("./micro-orm-util.service");
10
+ class MicroOrmService {
11
+ microOrmUtilService;
12
+ jsonApiTransformerService;
13
+ async getAll(query, transformData = true, additionalQueryParams) {
14
+ const { page } = query;
15
+ const { totalItems, items } = await orm_methods_1.getAll.call(this, query, additionalQueryParams);
16
+ if (!transformData) {
17
+ return { totalItems, items };
18
+ }
19
+ const { data, included } = this.jsonApiTransformerService.transformData(items, query);
20
+ const meta = {
21
+ totalItems: totalItems,
22
+ pageNumber: page.number,
23
+ pageSize: page.size,
24
+ };
25
+ return {
26
+ meta,
27
+ data,
28
+ ...(included ? { included } : {}),
29
+ };
30
+ }
31
+ async getOne(id, query, transformData = true, additionalQueryParams) {
32
+ const result = await orm_methods_1.getOne.call(this, id, query, additionalQueryParams);
33
+ if (!transformData) {
34
+ return result;
35
+ }
36
+ const { data, included } = this.jsonApiTransformerService.transformData(result, query);
37
+ return {
38
+ meta: {},
39
+ data,
40
+ ...(included ? { included } : {}),
41
+ };
42
+ }
43
+ async deleteOne(id) {
44
+ await orm_methods_1.deleteOne.call(this, id);
45
+ }
46
+ async postOne(inputData) {
47
+ const result = await orm_methods_1.postOne.call(this, inputData);
48
+ const { relationships } = inputData;
49
+ const fakeQuery = {
50
+ [json_api_nestjs_shared_1.QueryField.fields]: null,
51
+ [json_api_nestjs_shared_1.QueryField.include]: Object.keys(relationships || {}),
52
+ };
53
+ const resultForResponse = await orm_methods_1.getOne.call(this, result[this.microOrmUtilService.currentPrimaryColumn], fakeQuery);
54
+ const { data, included } = this.jsonApiTransformerService.transformData(resultForResponse, fakeQuery);
55
+ return {
56
+ meta: {},
57
+ data,
58
+ ...(included ? { included } : {}),
59
+ };
60
+ }
61
+ async patchOne(id, inputData) {
62
+ await orm_methods_1.patchOne.call(this, id, inputData);
63
+ const { relationships } = inputData;
64
+ const fakeQuery = {
65
+ [json_api_nestjs_shared_1.QueryField.fields]: null,
66
+ [json_api_nestjs_shared_1.QueryField.include]: Object.keys(relationships || {}),
67
+ };
68
+ const resultForResponse = await orm_methods_1.getOne.call(this, id, fakeQuery);
69
+ const { data, included } = this.jsonApiTransformerService.transformData(resultForResponse, fakeQuery);
70
+ return {
71
+ meta: {},
72
+ data,
73
+ ...(included ? { included } : {}),
74
+ };
75
+ }
76
+ async getRelationship(id, rel) {
77
+ const result = await orm_methods_1.getRelationship.call(this, id, rel);
78
+ return {
79
+ meta: {},
80
+ data: this.jsonApiTransformerService.transformRel(result, rel),
81
+ };
82
+ }
83
+ async deleteRelationship(id, rel, input) {
84
+ await orm_methods_1.deleteRelationship.call(this, id, rel, input);
85
+ }
86
+ async postRelationship(id, rel, input) {
87
+ const result = await orm_methods_1.postRelationship.call(this, id, rel, input);
88
+ return {
89
+ meta: {},
90
+ data: this.jsonApiTransformerService.transformRel(result, rel),
91
+ };
92
+ }
93
+ async patchRelationship(id, rel, input) {
94
+ const result = await orm_methods_1.patchRelationship.call(this, id, rel, input);
95
+ return {
96
+ meta: {},
97
+ data: this.jsonApiTransformerService.transformRel(result, rel),
98
+ };
99
+ }
100
+ async loadRelations(relationships) {
101
+ const result = {};
102
+ for await (const item of this.microOrmUtilService.asyncIterateFindRelationships(relationships)) {
103
+ const itemProps = json_api_nestjs_shared_1.ObjectTyped.entries(item).at(0);
104
+ if (!itemProps)
105
+ continue;
106
+ const [nameProps, data] = itemProps;
107
+ Reflect.set(result, nameProps, data);
108
+ }
109
+ return result;
110
+ }
111
+ }
112
+ exports.MicroOrmService = MicroOrmService;
113
+ tslib_1.__decorate([
114
+ (0, common_1.Inject)(micro_orm_util_service_1.MicroOrmUtilService),
115
+ tslib_1.__metadata("design:type", micro_orm_util_service_1.MicroOrmUtilService)
116
+ ], MicroOrmService.prototype, "microOrmUtilService", void 0);
117
+ tslib_1.__decorate([
118
+ (0, common_1.Inject)(json_api_nestjs_1.JsonApiTransformerService),
119
+ tslib_1.__metadata("design:type", json_api_nestjs_1.JsonApiTransformerService)
120
+ ], MicroOrmService.prototype, "jsonApiTransformerService", void 0);
121
+ //# sourceMappingURL=microorm-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microorm-service.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/service/microorm-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ErrorFormatService } from '@klerick/json-api-nestjs';
2
+ import { HttpException } from '@nestjs/common';
3
+ import { EntityManager } from '@mikro-orm/core';
4
+ export declare class MikroOrmFormatErrorService extends ErrorFormatService {
5
+ em: EntityManager;
6
+ private mainConfig;
7
+ private errorMsg;
8
+ formatError(error: unknown): HttpException;
9
+ private formatValidationError;
10
+ private prepareDataBaseError;
11
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MikroOrmFormatErrorService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const json_api_nestjs_1 = require("@klerick/json-api-nestjs");
6
+ const common_1 = require("@nestjs/common");
7
+ const core_1 = require("@mikro-orm/core");
8
+ const constants_1 = require("../constants");
9
+ const duplicateItems = (errorText, options, detail) => {
10
+ errorText = 'Duplicate value';
11
+ if (detail) {
12
+ const matches = detail.match(/(?<=\().+?(?=\))/gm);
13
+ if (matches) {
14
+ errorText = `Duplicate value in the "${matches[0]}"`;
15
+ }
16
+ }
17
+ const error = {
18
+ code: 'invalid_arguments',
19
+ message: errorText,
20
+ path: ['data', 'attributes'],
21
+ };
22
+ return new common_1.ConflictException([error], options);
23
+ };
24
+ class MikroOrmFormatErrorService extends json_api_nestjs_1.ErrorFormatService {
25
+ em;
26
+ mainConfig;
27
+ errorMsg = 'Internal Server Error';
28
+ formatError(error) {
29
+ try {
30
+ if (error instanceof core_1.ValidationError) {
31
+ return this.formatValidationError(error);
32
+ }
33
+ if (error instanceof core_1.DriverException) {
34
+ return this.prepareDataBaseError(error);
35
+ }
36
+ return super.formatError(error);
37
+ }
38
+ catch (error) {
39
+ return super.formatError(error);
40
+ }
41
+ }
42
+ formatValidationError(error) {
43
+ const { message } = error;
44
+ const entity = error.getEntity();
45
+ const errorObject = {
46
+ code: 'invalid_arguments',
47
+ message: message.split('\n').at(0) || message,
48
+ path: [],
49
+ };
50
+ if (entity) {
51
+ errorObject['path'] = ['data', 'attributes'];
52
+ }
53
+ const descriptionOrOptions = this.mainConfig.options
54
+ .debug
55
+ ? { cause: error }
56
+ : {};
57
+ return new common_1.BadRequestException([errorObject], descriptionOrOptions);
58
+ }
59
+ prepareDataBaseError(error) {
60
+ const driverName = this.em
61
+ .getPlatform()
62
+ .getConfig()
63
+ .getDriver()
64
+ .constructor.name;
65
+ if (!(driverName.startsWith('Postgre') || driverName.startsWith('PGliteDriver'))) {
66
+ return super.formatError(error);
67
+ }
68
+ const { errorCode, errorMsg, detail, table } = {
69
+ errorCode: error.code,
70
+ errorMsg: error.message,
71
+ detail: Reflect.get(error, 'detail'),
72
+ table: Reflect.get(error, 'table'),
73
+ };
74
+ const descriptionOrOptions = this.mainConfig.options
75
+ .debug
76
+ ? { cause: error }
77
+ : {};
78
+ switch (error.constructor) {
79
+ case core_1.UniqueConstraintViolationException:
80
+ return duplicateItems(errorMsg, descriptionOrOptions, detail);
81
+ default:
82
+ return super.formatError(error);
83
+ }
84
+ }
85
+ }
86
+ exports.MikroOrmFormatErrorService = MikroOrmFormatErrorService;
87
+ tslib_1.__decorate([
88
+ (0, common_1.Inject)(constants_1.CURRENT_ENTITY_MANAGER_TOKEN),
89
+ tslib_1.__metadata("design:type", core_1.EntityManager)
90
+ ], MikroOrmFormatErrorService.prototype, "em", void 0);
91
+ tslib_1.__decorate([
92
+ (0, common_1.Inject)(json_api_nestjs_1.MODULE_OPTIONS_TOKEN),
93
+ tslib_1.__metadata("design:type", Object)
94
+ ], MikroOrmFormatErrorService.prototype, "mainConfig", void 0);
95
+ //# sourceMappingURL=mikro-orm-format.error.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mikro-orm-format.error.service.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/service/mikro-orm-format.error.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type MicroOrmParam = {
2
+ arrayType?: string[];
3
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/type.ts"],"names":[],"mappings":""}