@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.
- package/CHANGELOG.md +99 -1
- package/README.md +47 -5
- package/package.json +23 -40
- package/src/index.d.ts +1 -0
- package/src/index.js +5 -0
- package/src/index.js.map +1 -0
- package/src/lib/constants/index.d.ts +5 -0
- package/src/lib/constants/index.js +9 -0
- package/src/lib/constants/index.js.map +1 -0
- package/src/lib/factory/index.d.ts +21 -0
- package/src/lib/factory/index.js +116 -0
- package/src/lib/factory/index.js.map +1 -0
- package/src/lib/index.d.ts +2 -0
- package/src/lib/index.js +6 -0
- package/src/lib/index.js.map +1 -0
- package/src/lib/micro-orm-json-api.module.d.ts +7 -0
- package/src/lib/micro-orm-json-api.module.js +50 -0
- package/src/lib/micro-orm-json-api.module.js.map +1 -0
- package/src/lib/mock-utils/entities/addresses.d.ts +12 -0
- package/src/lib/mock-utils/entities/addresses.js +87 -0
- package/src/lib/mock-utils/entities/addresses.js.map +1 -0
- package/src/lib/mock-utils/entities/comments.d.ts +15 -0
- package/src/lib/mock-utils/entities/comments.js +72 -0
- package/src/lib/mock-utils/entities/comments.js.map +1 -0
- package/src/lib/mock-utils/entities/index.d.ts +13 -0
- package/src/lib/mock-utils/entities/index.js +18 -0
- package/src/lib/mock-utils/entities/index.js.map +1 -0
- package/src/lib/mock-utils/entities/notes.d.ts +10 -0
- package/src/lib/mock-utils/entities/notes.js +64 -0
- package/src/lib/mock-utils/entities/notes.js.map +1 -0
- package/src/lib/mock-utils/entities/roles.d.ts +12 -0
- package/src/lib/mock-utils/entities/roles.js +80 -0
- package/src/lib/mock-utils/entities/roles.js.map +1 -0
- package/src/lib/mock-utils/entities/user-groups.d.ts +7 -0
- package/src/lib/mock-utils/entities/user-groups.js +37 -0
- package/src/lib/mock-utils/entities/user-groups.js.map +1 -0
- package/src/lib/mock-utils/entities/users.d.ts +23 -0
- package/src/lib/mock-utils/entities/users.js +166 -0
- package/src/lib/mock-utils/entities/users.js.map +1 -0
- package/src/lib/mock-utils/index.d.ts +23 -0
- package/src/lib/mock-utils/index.js +97 -0
- package/src/lib/mock-utils/index.js.map +1 -0
- package/src/lib/mock-utils/utils/index.d.ts +3 -0
- package/src/lib/mock-utils/utils/index.js +7 -0
- package/src/lib/mock-utils/utils/index.js.map +1 -0
- package/src/lib/mock-utils/utils/init-db.d.ts +3 -0
- package/src/lib/mock-utils/utils/init-db.js +38 -0
- package/src/lib/mock-utils/utils/init-db.js.map +1 -0
- package/src/lib/mock-utils/utils/provider-entities.d.ts +10 -0
- package/src/lib/mock-utils/utils/provider-entities.js +22 -0
- package/src/lib/mock-utils/utils/provider-entities.js.map +1 -0
- package/src/lib/mock-utils/utils/pull-data.d.ts +9 -0
- package/src/lib/mock-utils/utils/pull-data.js +115 -0
- package/src/lib/mock-utils/utils/pull-data.js.map +1 -0
- package/src/lib/orm-helper/index.d.ts +12 -0
- package/src/lib/orm-helper/index.js +183 -0
- package/src/lib/orm-helper/index.js.map +1 -0
- package/src/lib/orm-methods/delete-one/delete-one.d.ts +2 -0
- package/src/lib/orm-methods/delete-one/delete-one.js +16 -0
- package/src/lib/orm-methods/delete-one/delete-one.js.map +1 -0
- package/src/lib/orm-methods/delete-relationship/delete-relationship.d.ts +4 -0
- package/src/lib/orm-methods/delete-relationship/delete-relationship.js +40 -0
- package/src/lib/orm-methods/delete-relationship/delete-relationship.js.map +1 -0
- package/src/lib/orm-methods/get-all/get-all.d.ts +6 -0
- package/src/lib/orm-methods/get-all/get-all.js +65 -0
- package/src/lib/orm-methods/get-all/get-all.js.map +1 -0
- package/src/lib/orm-methods/get-all/get-query-for-count.d.ts +5 -0
- package/src/lib/orm-methods/get-all/get-query-for-count.js +43 -0
- package/src/lib/orm-methods/get-all/get-query-for-count.js.map +1 -0
- package/src/lib/orm-methods/get-one/get-one.d.ts +3 -0
- package/src/lib/orm-methods/get-one/get-one.js +26 -0
- package/src/lib/orm-methods/get-one/get-one.js.map +1 -0
- package/src/lib/orm-methods/get-relationship/get-relationship.d.ts +3 -0
- package/src/lib/orm-methods/get-relationship/get-relationship.js +24 -0
- package/src/lib/orm-methods/get-relationship/get-relationship.js.map +1 -0
- package/src/lib/orm-methods/index.d.ts +9 -0
- package/src/lib/orm-methods/index.js +13 -0
- package/src/lib/orm-methods/index.js.map +1 -0
- package/src/lib/orm-methods/patch-one/patch-one.d.ts +3 -0
- package/src/lib/orm-methods/patch-one/patch-one.js +40 -0
- package/src/lib/orm-methods/patch-one/patch-one.js.map +1 -0
- package/src/lib/orm-methods/patch-relationship/patch-relationship.d.ts +4 -0
- package/src/lib/orm-methods/patch-relationship/patch-relationship.js +23 -0
- package/src/lib/orm-methods/patch-relationship/patch-relationship.js.map +1 -0
- package/src/lib/orm-methods/post-one/post-one.d.ts +3 -0
- package/src/lib/orm-methods/post-one/post-one.js +16 -0
- package/src/lib/orm-methods/post-one/post-one.js.map +1 -0
- package/src/lib/orm-methods/post-relationship/post-relationship.d.ts +4 -0
- package/src/lib/orm-methods/post-relationship/post-relationship.js +21 -0
- package/src/lib/orm-methods/post-relationship/post-relationship.js.map +1 -0
- package/src/lib/service/index.d.ts +3 -0
- package/src/lib/service/index.js +7 -0
- package/src/lib/service/index.js.map +1 -0
- package/src/lib/service/micro-orm-util.service.d.ts +51 -0
- package/src/lib/service/micro-orm-util.service.js +554 -0
- package/src/lib/service/micro-orm-util.service.js.map +1 -0
- package/src/lib/service/microorm-service.d.ts +21 -0
- package/src/lib/service/microorm-service.js +121 -0
- package/src/lib/service/microorm-service.js.map +1 -0
- package/src/lib/service/mikro-orm-format.error.service.d.ts +11 -0
- package/src/lib/service/mikro-orm-format.error.service.js +95 -0
- package/src/lib/service/mikro-orm-format.error.service.js.map +1 -0
- package/src/lib/type.d.ts +3 -0
- package/src/lib/type.js +3 -0
- 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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"}
|
package/src/lib/type.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/type.ts"],"names":[],"mappings":""}
|