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

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 (101) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/package.json +27 -32
  3. package/src/index.d.ts +1 -0
  4. package/src/index.js +5 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/constants/index.d.ts +5 -0
  7. package/src/lib/constants/index.js +9 -0
  8. package/src/lib/constants/index.js.map +1 -0
  9. package/src/lib/factory/index.d.ts +21 -0
  10. package/src/lib/factory/index.js +118 -0
  11. package/src/lib/factory/index.js.map +1 -0
  12. package/src/lib/index.d.ts +2 -0
  13. package/src/lib/index.js +6 -0
  14. package/src/lib/index.js.map +1 -0
  15. package/src/lib/micro-orm-json-api.module.d.ts +7 -0
  16. package/src/lib/micro-orm-json-api.module.js +46 -0
  17. package/src/lib/micro-orm-json-api.module.js.map +1 -0
  18. package/src/lib/mock-utils/entities/addresses.d.ts +12 -0
  19. package/src/lib/mock-utils/entities/addresses.js +83 -0
  20. package/src/lib/mock-utils/entities/addresses.js.map +1 -0
  21. package/src/lib/mock-utils/entities/comments.d.ts +15 -0
  22. package/src/lib/mock-utils/entities/comments.js +70 -0
  23. package/src/lib/mock-utils/entities/comments.js.map +1 -0
  24. package/src/lib/mock-utils/entities/index.d.ts +13 -0
  25. package/src/lib/mock-utils/entities/index.js +18 -0
  26. package/src/lib/mock-utils/entities/index.js.map +1 -0
  27. package/src/lib/mock-utils/entities/notes.d.ts +8 -0
  28. package/src/lib/mock-utils/entities/notes.js +60 -0
  29. package/src/lib/mock-utils/entities/notes.js.map +1 -0
  30. package/src/lib/mock-utils/entities/roles.d.ts +12 -0
  31. package/src/lib/mock-utils/entities/roles.js +78 -0
  32. package/src/lib/mock-utils/entities/roles.js.map +1 -0
  33. package/src/lib/mock-utils/entities/user-groups.d.ts +7 -0
  34. package/src/lib/mock-utils/entities/user-groups.js +37 -0
  35. package/src/lib/mock-utils/entities/user-groups.js.map +1 -0
  36. package/src/lib/mock-utils/entities/users.d.ts +23 -0
  37. package/src/lib/mock-utils/entities/users.js +158 -0
  38. package/src/lib/mock-utils/entities/users.js.map +1 -0
  39. package/src/lib/mock-utils/index.d.ts +23 -0
  40. package/src/lib/mock-utils/index.js +100 -0
  41. package/src/lib/mock-utils/index.js.map +1 -0
  42. package/src/lib/mock-utils/utils/index.d.ts +3 -0
  43. package/src/lib/mock-utils/utils/index.js +7 -0
  44. package/src/lib/mock-utils/utils/index.js.map +1 -0
  45. package/src/lib/mock-utils/utils/init-db.d.ts +5 -0
  46. package/src/lib/mock-utils/utils/init-db.js +57 -0
  47. package/src/lib/mock-utils/utils/init-db.js.map +1 -0
  48. package/src/lib/mock-utils/utils/provider-entities.d.ts +10 -0
  49. package/src/lib/mock-utils/utils/provider-entities.js +22 -0
  50. package/src/lib/mock-utils/utils/provider-entities.js.map +1 -0
  51. package/src/lib/mock-utils/utils/pull-data.d.ts +9 -0
  52. package/src/lib/mock-utils/utils/pull-data.js +115 -0
  53. package/src/lib/mock-utils/utils/pull-data.js.map +1 -0
  54. package/src/lib/orm-helper/index.d.ts +11 -0
  55. package/src/lib/orm-helper/index.js +146 -0
  56. package/src/lib/orm-helper/index.js.map +1 -0
  57. package/src/lib/orm-methods/delete-one/delete-one.d.ts +2 -0
  58. package/src/lib/orm-methods/delete-one/delete-one.js +16 -0
  59. package/src/lib/orm-methods/delete-one/delete-one.js.map +1 -0
  60. package/src/lib/orm-methods/delete-relationship/delete-relationship.d.ts +4 -0
  61. package/src/lib/orm-methods/delete-relationship/delete-relationship.js +40 -0
  62. package/src/lib/orm-methods/delete-relationship/delete-relationship.js.map +1 -0
  63. package/src/lib/orm-methods/get-all/get-all.d.ts +6 -0
  64. package/src/lib/orm-methods/get-all/get-all.js +61 -0
  65. package/src/lib/orm-methods/get-all/get-all.js.map +1 -0
  66. package/src/lib/orm-methods/get-all/get-query-for-count.d.ts +5 -0
  67. package/src/lib/orm-methods/get-all/get-query-for-count.js +43 -0
  68. package/src/lib/orm-methods/get-all/get-query-for-count.js.map +1 -0
  69. package/src/lib/orm-methods/get-one/get-one.d.ts +3 -0
  70. package/src/lib/orm-methods/get-one/get-one.js +23 -0
  71. package/src/lib/orm-methods/get-one/get-one.js.map +1 -0
  72. package/src/lib/orm-methods/get-relationship/get-relationship.d.ts +3 -0
  73. package/src/lib/orm-methods/get-relationship/get-relationship.js +24 -0
  74. package/src/lib/orm-methods/get-relationship/get-relationship.js.map +1 -0
  75. package/src/lib/orm-methods/index.d.ts +9 -0
  76. package/src/lib/orm-methods/index.js +13 -0
  77. package/src/lib/orm-methods/index.js.map +1 -0
  78. package/src/lib/orm-methods/patch-one/patch-one.d.ts +3 -0
  79. package/src/lib/orm-methods/patch-one/patch-one.js +40 -0
  80. package/src/lib/orm-methods/patch-one/patch-one.js.map +1 -0
  81. package/src/lib/orm-methods/patch-relationship/patch-relationship.d.ts +4 -0
  82. package/src/lib/orm-methods/patch-relationship/patch-relationship.js +23 -0
  83. package/src/lib/orm-methods/patch-relationship/patch-relationship.js.map +1 -0
  84. package/src/lib/orm-methods/post-one/post-one.d.ts +3 -0
  85. package/src/lib/orm-methods/post-one/post-one.js +16 -0
  86. package/src/lib/orm-methods/post-one/post-one.js.map +1 -0
  87. package/src/lib/orm-methods/post-relationship/post-relationship.d.ts +4 -0
  88. package/src/lib/orm-methods/post-relationship/post-relationship.js +21 -0
  89. package/src/lib/orm-methods/post-relationship/post-relationship.js.map +1 -0
  90. package/src/lib/service/index.d.ts +1 -0
  91. package/src/lib/service/index.js +5 -0
  92. package/src/lib/service/index.js.map +1 -0
  93. package/src/lib/service/micro-orm-util.service.d.ts +47 -0
  94. package/src/lib/service/micro-orm-util.service.js +550 -0
  95. package/src/lib/service/micro-orm-util.service.js.map +1 -0
  96. package/src/lib/service/microorm-service.d.ts +17 -0
  97. package/src/lib/service/microorm-service.js +102 -0
  98. package/src/lib/service/microorm-service.js.map +1 -0
  99. package/src/lib/type.d.ts +3 -0
  100. package/src/lib/type.js +3 -0
  101. package/src/lib/type.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-entities.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/mock-utils/utils/provider-entities.ts"],"names":[],"mappings":";;AAWA,sCAkBC;AA3BD,0CAOqB;AAErB,SAAgB,aAAa,CAAC,MAAqB,EAAE,OAAe;IAClE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAgB,OAAO,CAAC,CAAC;IAE9C,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAC;IAC/C,MAAM,mBAAmB,GAAG,EAAE,CAAC,aAAa,CAAC,oBAAS,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAC;IAChD,MAAM,mBAAmB,GAAG,EAAE,CAAC,aAAa,CAAC,qBAAU,CAAC,CAAC;IAEzD,OAAO;QACL,cAAc;QACd,mBAAmB;QACnB,eAAe;QACf,kBAAkB;QAClB,eAAe;QACf,mBAAmB;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { EntityManager } from '@mikro-orm/core';
2
+ import { Addresses, Comments, Notes, Roles, UserGroups, Users } from '../entities';
3
+ export declare function pullAddress(): Promise<Addresses>;
4
+ export declare function pullComment(): Promise<Comments>;
5
+ export declare function pullNote(): Promise<Notes>;
6
+ export declare function pullRole(): Promise<Roles>;
7
+ export declare function pullUser(): Promise<Users>;
8
+ export declare function pullUserGroup(): Promise<UserGroups>;
9
+ export declare function pullAllData(em: EntityManager): Promise<Users>;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pullAddress = pullAddress;
4
+ exports.pullComment = pullComment;
5
+ exports.pullNote = pullNote;
6
+ exports.pullRole = pullRole;
7
+ exports.pullUser = pullUser;
8
+ exports.pullUserGroup = pullUserGroup;
9
+ exports.pullAllData = pullAllData;
10
+ const faker_1 = require("@faker-js/faker");
11
+ const entities_1 = require("../entities");
12
+ async function pullAddress() {
13
+ const address = new entities_1.Addresses();
14
+ address.city = faker_1.faker.location.city();
15
+ address.country = faker_1.faker.location.country();
16
+ address.arrayField = [
17
+ faker_1.faker.string.alphanumeric(5),
18
+ faker_1.faker.string.alphanumeric(5),
19
+ ];
20
+ address.state = faker_1.faker.location.state();
21
+ return address;
22
+ }
23
+ async function pullComment() {
24
+ const comment = new entities_1.Comments();
25
+ comment.text = faker_1.faker.lorem.paragraph(faker_1.faker.number.int(5));
26
+ comment.kind = entities_1.CommentKind.Comment;
27
+ return comment;
28
+ }
29
+ async function pullNote() {
30
+ const note = new entities_1.Notes();
31
+ note.text = faker_1.faker.lorem.paragraph(faker_1.faker.number.int(5));
32
+ return note;
33
+ }
34
+ async function pullRole() {
35
+ const role = new entities_1.Roles();
36
+ role.key = faker_1.faker.string.alphanumeric(5);
37
+ role.name = faker_1.faker.word.words();
38
+ return role;
39
+ }
40
+ async function pullUser() {
41
+ const user = new entities_1.Users();
42
+ user.firstName = faker_1.faker.person.firstName();
43
+ user.lastName = faker_1.faker.person.lastName();
44
+ user.isActive = faker_1.faker.datatype.boolean();
45
+ user.login = faker_1.faker.internet.userName({
46
+ lastName: user.lastName,
47
+ firstName: user.firstName,
48
+ });
49
+ user.testReal = [faker_1.faker.number.float({ fractionDigits: 4 })];
50
+ user.testArrayNull = null;
51
+ user.testDate = faker_1.faker.date.anytime();
52
+ return user;
53
+ }
54
+ async function pullUserGroup() {
55
+ const userGroup = new entities_1.UserGroups();
56
+ userGroup.label = faker_1.faker.string.alphanumeric(5);
57
+ return userGroup;
58
+ }
59
+ async function pullAllData(em) {
60
+ const user = await pullUser();
61
+ const address1 = await pullAddress();
62
+ const address2 = await pullAddress();
63
+ const note1 = await pullNote();
64
+ const note2 = await pullNote();
65
+ const note3 = await pullNote();
66
+ const comment1 = await pullComment();
67
+ const comment2 = await pullComment();
68
+ const comment3 = await pullComment();
69
+ const comment4 = await pullComment();
70
+ const userGroup1 = await pullUserGroup();
71
+ const userGroup2 = await pullUserGroup();
72
+ const userGroup3 = await pullUserGroup();
73
+ const role1 = await pullRole();
74
+ const role2 = await pullRole();
75
+ const role3 = await pullRole();
76
+ const roleX1 = await pullRole();
77
+ const roleX2 = await pullRole();
78
+ const roleX3 = await pullRole();
79
+ const managerUser = await pullUser();
80
+ user.addresses = address1;
81
+ address1.user = user;
82
+ user.notes.add(note1, note2, note3);
83
+ user.comments.add(comment1, comment2, comment3, comment4);
84
+ user.userGroup = userGroup1;
85
+ user.roles.add(roleX1, roleX2, roleX3);
86
+ user.manager = managerUser;
87
+ managerUser.addresses = address2;
88
+ managerUser.userGroup = userGroup3;
89
+ managerUser.roles.add(role1, role2);
90
+ await em.persistAndFlush([
91
+ user,
92
+ address1,
93
+ address2,
94
+ note1,
95
+ note2,
96
+ note3,
97
+ comment1,
98
+ comment2,
99
+ comment3,
100
+ comment4,
101
+ userGroup1,
102
+ userGroup2,
103
+ userGroup3,
104
+ role1,
105
+ role2,
106
+ role3,
107
+ roleX1,
108
+ roleX2,
109
+ roleX3,
110
+ managerUser,
111
+ ]);
112
+ await em.flush();
113
+ return user;
114
+ }
115
+ //# sourceMappingURL=pull-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-data.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/mock-utils/utils/pull-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { EntityMetadata } from '@mikro-orm/core';
2
+ import { EntityParam, PrepareParams } from '@klerick/json-api-nestjs';
3
+ import { MicroOrmParam } from '../type';
4
+ export declare const getRelation: <E extends object>(entityMetadata: EntityMetadata<E>) => EntityParam<E>["relations"];
5
+ export declare const getProps: <E extends object>(entityMetadata: EntityMetadata<E>) => EntityParam<E>["props"];
6
+ export declare const getPropsType: <E extends object>(entityMetadata: EntityMetadata<E>, config?: PrepareParams<MicroOrmParam>["options"]["arrayType"]) => EntityParam<E>["propsType"];
7
+ export declare const getPropsNullable: <E extends object>(entityMetadata: EntityMetadata<E>) => EntityParam<E>["propsNullable"];
8
+ export declare const getPrimaryColumnName: <E extends object>(entityMetadata: EntityMetadata<E>) => EntityParam<E>["primaryColumnName"];
9
+ export declare const getPrimaryColumnType: <E extends object>(entityMetadata: EntityMetadata<E>) => EntityParam<E>["primaryColumnType"];
10
+ export declare const getRelationProperty: <E extends object>(entityMetadata: EntityMetadata<E>) => EntityParam<E>["relationProperty"];
11
+ export declare const getArrayType: <E extends object>(repository: EntityMetadata<E>, config?: PrepareParams<MicroOrmParam>["options"]["arrayType"]) => EntityParam<E>["propsArrayType"];
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getArrayType = exports.getRelationProperty = exports.getPrimaryColumnType = exports.getPrimaryColumnName = exports.getPropsNullable = exports.getPropsType = exports.getProps = exports.getRelation = void 0;
4
+ const json_api_nestjs_1 = require("@klerick/json-api-nestjs");
5
+ const constants_1 = require("../constants");
6
+ const getRelation = (entityMetadata) => entityMetadata.relations.map((i) => i.name);
7
+ exports.getRelation = getRelation;
8
+ const getProps = (entityMetadata) => {
9
+ const relations = (0, exports.getRelation)(entityMetadata);
10
+ return entityMetadata.props
11
+ .map((i) => i.name)
12
+ .filter((i) => !relations.includes(i));
13
+ };
14
+ exports.getProps = getProps;
15
+ const getPropsType = (entityMetadata, config = constants_1.DEFAULT_ARRAY_TYPE) => {
16
+ const field = (0, exports.getProps)(entityMetadata);
17
+ const result = {};
18
+ for (const item of field) {
19
+ const props = entityMetadata.properties[item];
20
+ let typeProps = json_api_nestjs_1.TypeField.string;
21
+ if (config.includes(props['type'])) {
22
+ result[item] = json_api_nestjs_1.TypeField.array;
23
+ continue;
24
+ }
25
+ switch (props.runtimeType) {
26
+ case 'Date':
27
+ typeProps = json_api_nestjs_1.TypeField.date;
28
+ break;
29
+ case 'number':
30
+ typeProps = json_api_nestjs_1.TypeField.number;
31
+ break;
32
+ case 'boolean':
33
+ typeProps = json_api_nestjs_1.TypeField.boolean;
34
+ break;
35
+ case 'object':
36
+ typeProps = json_api_nestjs_1.TypeField.object;
37
+ break;
38
+ default:
39
+ typeProps = json_api_nestjs_1.TypeField.string;
40
+ }
41
+ result[item] = typeProps;
42
+ }
43
+ return result;
44
+ };
45
+ exports.getPropsType = getPropsType;
46
+ const getPropsNullable = (entityMetadata) => {
47
+ return (0, exports.getProps)(entityMetadata)
48
+ .map((i) => {
49
+ // @ts-ignore
50
+ const props = entityMetadata.properties[i];
51
+ return props.nullable || props.default !== undefined ? i : false;
52
+ })
53
+ .filter((i) => !!i);
54
+ };
55
+ exports.getPropsNullable = getPropsNullable;
56
+ const getPrimaryColumnName = (entityMetadata) => entityMetadata
57
+ .getPrimaryProp()
58
+ .name.toString();
59
+ exports.getPrimaryColumnName = getPrimaryColumnName;
60
+ const getPrimaryColumnType = (entityMetadata) => {
61
+ return (entityMetadata.getPrimaryProp().runtimeType === 'number'
62
+ ? json_api_nestjs_1.TypeField.number
63
+ : json_api_nestjs_1.TypeField.string);
64
+ };
65
+ exports.getPrimaryColumnType = getPrimaryColumnType;
66
+ const getRelationProperty = (entityMetadata) => {
67
+ return entityMetadata.relations.reduce((acum, item) => {
68
+ // @ts-expect-error its dynamic creater
69
+ acum[item.name] = {
70
+ entityClass: item.entity(),
71
+ nullable: item.kind === 'm:n' || item.kind === '1:m'
72
+ ? false
73
+ : !!item.nullable,
74
+ isArray: item.kind === 'm:n' || item.kind === '1:m',
75
+ };
76
+ return acum;
77
+ }, {});
78
+ };
79
+ exports.getRelationProperty = getRelationProperty;
80
+ const getArrayType = (repository, config = constants_1.DEFAULT_ARRAY_TYPE) => {
81
+ return Object.entries((0, exports.getPropsType)(repository, config))
82
+ .filter(([name, type]) => type === json_api_nestjs_1.TypeField.array)
83
+ .reduce((acum, [name]) => {
84
+ const fieldType = Reflect.get(repository.properties, name)
85
+ .columnTypes.at(0)
86
+ ?.replace('[]', '');
87
+ if (!fieldType) {
88
+ throw new Error('Metadata not found for field ' + name);
89
+ }
90
+ switch (fieldType) {
91
+ case 'number':
92
+ case 'bigint':
93
+ case 'smallint':
94
+ case 'smalldecimal':
95
+ case 'decimal':
96
+ case 'double':
97
+ case 'tinyint':
98
+ case 'mediumint':
99
+ case 'int':
100
+ case 'float':
101
+ case 'dec':
102
+ case 'fixed':
103
+ case 'numeric':
104
+ case 'real':
105
+ case 'int2':
106
+ case 'int4':
107
+ case 'int8':
108
+ case 'integer':
109
+ acum[name] = json_api_nestjs_1.TypeField.number;
110
+ break;
111
+ case 'character varying':
112
+ case 'varying character':
113
+ case 'char varying':
114
+ case 'nvarchar':
115
+ case 'national varchar':
116
+ case 'character':
117
+ case 'native character':
118
+ case 'varchar':
119
+ case 'char':
120
+ case 'nchar':
121
+ case 'national char':
122
+ case 'varchar2':
123
+ case 'nvarchar2':
124
+ case 'alphanum':
125
+ case 'shorttext':
126
+ case 'raw':
127
+ case 'binary':
128
+ case 'varbinary':
129
+ case 'string':
130
+ acum[name] = json_api_nestjs_1.TypeField.string;
131
+ break;
132
+ case 'date':
133
+ case 'timetz':
134
+ case 'timestamptz':
135
+ case 'timestamp with local time zone':
136
+ case 'smalldatetime':
137
+ acum[name] = json_api_nestjs_1.TypeField.date;
138
+ break;
139
+ case 'boolean':
140
+ acum[name] = json_api_nestjs_1.TypeField.boolean;
141
+ }
142
+ return acum;
143
+ }, {});
144
+ };
145
+ exports.getArrayType = getArrayType;
146
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-helper/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { MicroOrmService } from '../../service';
2
+ export declare function deleteOne<E extends object, IdKey extends string>(this: MicroOrmService<E, IdKey>, id: number | string): Promise<void>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteOne = deleteOne;
4
+ async function deleteOne(id) {
5
+ const data = await this.microOrmUtilService
6
+ .queryBuilder()
7
+ .where({
8
+ [this.microOrmUtilService.currentPrimaryColumn]: id,
9
+ })
10
+ .getSingleResult();
11
+ if (!data)
12
+ return void 0;
13
+ await this.microOrmUtilService.entityManager.removeAndFlush(data);
14
+ return void 0;
15
+ }
16
+ //# sourceMappingURL=delete-one.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-one.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/delete-one/delete-one.ts"],"names":[],"mappings":";;AAEA,8BAgBC;AAhBM,KAAK,UAAU,SAAS,CAE7B,EAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB;SACxC,YAAY,EAAE;SACd,KAAK,CAAC;QACL,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,EAAE;KACpD,CAAC;SACD,eAAe,EAAE,CAAC;IAErB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,CAAC;IAEzB,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAElE,OAAO,KAAK,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { RelationKeys } from '@klerick/json-api-nestjs-shared';
2
+ import { PostRelationshipData } from '@klerick/json-api-nestjs';
3
+ import { MicroOrmService } from '../../service';
4
+ export declare function deleteRelationship<E extends object, IdKey extends string, Rel extends RelationKeys<E, IdKey>>(this: MicroOrmService<E, IdKey>, id: number | string, rel: Rel, input: PostRelationshipData): Promise<void>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteRelationship = deleteRelationship;
4
+ const common_1 = require("@nestjs/common");
5
+ async function deleteRelationship(id, rel, input) {
6
+ const idsResult = await this.microOrmUtilService.validateRelationInputData(rel, input);
7
+ const currentEntityRef = await this.microOrmUtilService
8
+ .queryBuilder()
9
+ .where({
10
+ [this.microOrmUtilService.currentPrimaryColumn]: id,
11
+ })
12
+ .getSingleResult();
13
+ if (!currentEntityRef) {
14
+ const error = {
15
+ code: 'invalid_arguments',
16
+ message: `Resource '${this.microOrmUtilService.currentAlias}' with id '${id}' does not exist`,
17
+ path: ['fields'],
18
+ };
19
+ throw new common_1.NotFoundException([error]);
20
+ }
21
+ await this.microOrmUtilService.entityManager.populate(currentEntityRef, [
22
+ rel,
23
+ ]);
24
+ if (Array.isArray(idsResult)) {
25
+ const relEntity = this.microOrmUtilService.getRelation(rel).entity();
26
+ const relRef = idsResult.map((i) => this.microOrmUtilService.entityManager.getReference(relEntity, i));
27
+ currentEntityRef[rel].remove(...relRef);
28
+ }
29
+ else {
30
+ if (
31
+ // @ts-ignore
32
+ currentEntityRef[rel][this.microOrmUtilService.getPrimaryNameFor(rel)] ==
33
+ idsResult) {
34
+ // @ts-ignore
35
+ currentEntityRef[rel] = null;
36
+ }
37
+ }
38
+ await this.microOrmUtilService.entityManager.flush();
39
+ }
40
+ //# sourceMappingURL=delete-relationship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-relationship.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/delete-relationship/delete-relationship.ts"],"names":[],"mappings":";;AASA,gDAoDC;AA7DD,2CAAmD;AAS5C,KAAK,UAAU,kBAAkB,CAMtC,EAAmB,EACnB,GAAQ,EACR,KAA2B;IAE3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CACxE,GAAU,EACV,KAAK,CACN,CAAC;IACF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB;SACpD,YAAY,EAAE;SACd,KAAK,CAAC;QACL,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,EAAE;KACpD,CAAC;SACD,eAAe,EAAE,CAAC;IAErB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,aAAa,IAAI,CAAC,mBAAmB,CAAC,YAAY,cAAc,EAAE,kBAAkB;YAC7F,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC;QACF,MAAM,IAAI,0BAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,EAAE;QACtE,GAAU;KACX,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAU,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,CAAQ,CAAC,CACzE,CAAC;QACD,gBAAgB,CAAC,GAAG,CAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN;QACE,aAAa;QACb,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACtE,SAAS,EACT,CAAC;YACD,aAAa;YACb,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACvD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Query } from '@klerick/json-api-nestjs';
2
+ import { MicroOrmService } from '../../service';
3
+ export declare function getAll<E extends object, IdKey extends string>(this: MicroOrmService<E, IdKey>, query: Query<E, IdKey>): Promise<{
4
+ totalItems: number;
5
+ items: E[];
6
+ }>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAll = getAll;
4
+ const core_1 = require("@mikro-orm/core");
5
+ const get_query_for_count_1 = require("./get-query-for-count");
6
+ async function getAll(query) {
7
+ const { page } = query;
8
+ const countSubQuery = get_query_for_count_1.getQueryForCount.call(this, ...[query]);
9
+ const skip = (page.number - 1) * page.size;
10
+ const paginationQuery = countSubQuery
11
+ .clone()
12
+ .select(this.microOrmUtilService.currentPrimaryColumn)
13
+ .limit(page.size, skip);
14
+ const collectIdsAlias = 'CollectIds';
15
+ const queryIdsQuery = this.microOrmUtilService
16
+ .queryBuilder(collectIdsAlias)
17
+ .select(this.microOrmUtilService.currentPrimaryColumn)
18
+ .join(paginationQuery, this.microOrmUtilService.currentAlias, {
19
+ [`${collectIdsAlias}.${this.microOrmUtilService.currentPrimaryColumn}`]: this.microOrmUtilService
20
+ .getKnex()
21
+ .ref(`${this.microOrmUtilService.currentAlias}.${this.microOrmUtilService.currentPrimaryColumn}`),
22
+ });
23
+ const queryCount = this.microOrmUtilService
24
+ .queryBuilder()
25
+ .from(countSubQuery
26
+ .clone()
27
+ .select(this.microOrmUtilService.currentPrimaryColumn))
28
+ .count(this.microOrmUtilService.currentPrimaryColumn, true);
29
+ const resCount = await queryCount.execute('get');
30
+ const count = resCount ? +resCount.count : 0;
31
+ if (count === 0) {
32
+ return {
33
+ totalItems: count,
34
+ items: [],
35
+ };
36
+ }
37
+ const resIds = await queryIdsQuery
38
+ .distinct()
39
+ .setFlag(core_1.QueryFlag.DISABLE_PAGINATE)
40
+ .execute('all');
41
+ const idsArray = resIds.map((r) => r[this.microOrmUtilService.currentPrimaryColumn]);
42
+ const resultQueryBuilder = this.microOrmUtilService.queryBuilder().where({
43
+ [this.microOrmUtilService.currentPrimaryColumn]: {
44
+ $in: idsArray,
45
+ },
46
+ });
47
+ const sortObject = (0, get_query_for_count_1.getSortObject)(query);
48
+ const resultList = await this.microOrmUtilService
49
+ .prePareQueryBuilder(resultQueryBuilder, query)
50
+ .orderBy(Object.keys(sortObject).length > 0
51
+ ? sortObject
52
+ : {
53
+ [this.microOrmUtilService.currentPrimaryColumn]: 'ASC',
54
+ })
55
+ .getResult();
56
+ return {
57
+ totalItems: count,
58
+ items: resultList.map((i) => (0, core_1.wrap)(i).toJSON()),
59
+ };
60
+ }
61
+ //# sourceMappingURL=get-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-all.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/get-all/get-all.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Query } from '@klerick/json-api-nestjs';
2
+ import type { QBQueryOrderMap } from '@mikro-orm/core';
3
+ import { MicroOrmService } from '../../service';
4
+ export declare function getSortObject<E extends object, IdKey extends string>(query: Query<E, IdKey>): QBQueryOrderMap<E>;
5
+ export declare function getQueryForCount<E extends object, IdKey extends string>(this: MicroOrmService<E, IdKey>, query: Query<E, IdKey>): import("@mikro-orm/knex").QueryBuilder<E, string, never, never>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSortObject = getSortObject;
4
+ exports.getQueryForCount = getQueryForCount;
5
+ const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
6
+ function getSortObject(query) {
7
+ const { sort } = query;
8
+ const sortObject = {};
9
+ if (!sort)
10
+ return sortObject;
11
+ const { target = {}, ...relation } = sort;
12
+ for (const [filed, sortType] of json_api_nestjs_shared_1.ObjectTyped.entries(target)) {
13
+ Reflect.set(sortObject, filed, sortType);
14
+ }
15
+ for (const [relationName, orderConfig = {}] of json_api_nestjs_shared_1.ObjectTyped.entries(relation)) {
16
+ const name = relationName;
17
+ sortObject[name] = {};
18
+ for (const [field, sortType] of json_api_nestjs_shared_1.ObjectTyped.entries(orderConfig)) {
19
+ sortObject[name][field] = sortType;
20
+ }
21
+ }
22
+ return sortObject;
23
+ }
24
+ function getQueryForCount(query) {
25
+ const querySelect = this.microOrmUtilService.queryBuilder();
26
+ const sortObject = getSortObject(query);
27
+ querySelect.orderBy(Object.keys(sortObject).length > 0
28
+ ? sortObject
29
+ : {
30
+ [this.microOrmUtilService.currentPrimaryColumn]: 'ASC',
31
+ });
32
+ const expressionArrayForTarget = this.microOrmUtilService.getFilterExpressionForTarget(query);
33
+ const expressionArrayForRelation = this.microOrmUtilService.getFilterExpressionForRelation(query);
34
+ const resultExpression = [
35
+ ...expressionArrayForTarget,
36
+ ...expressionArrayForRelation,
37
+ ];
38
+ for (const expression of resultExpression) {
39
+ querySelect.andWhere(expression);
40
+ }
41
+ return querySelect;
42
+ }
43
+ //# sourceMappingURL=get-query-for-count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-query-for-count.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/get-all/get-query-for-count.ts"],"names":[],"mappings":";;AAMA,sCAsBC;AAED,4CA4BC;AA1DD,4EAA8D;AAM9D,SAAgB,aAAa,CAC3B,KAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,UAAU,CAAC;IAE7B,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAW,CAAC;IACjD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,oCAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,MAAM,CAAC,YAAY,EAAE,WAAW,GAAG,EAAE,CAAC,IAAI,oCAAW,CAAC,OAAO,CAChE,QAAQ,CACT,EAAE,CAAC;QACF,MAAM,IAAI,GAAG,YAAuC,CAAC;QACrD,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,oCAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACjE,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,gBAAgB,CAE9B,KAAsB;IAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACxC,WAAW,CAAC,OAAO,CACjB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;QAChC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC;YACE,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,KAAK;SACvD,CACN,CAAC;IAEF,MAAM,wBAAwB,GAC5B,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,KAAY,CAAC,CAAC;IACtE,MAAM,0BAA0B,GAC9B,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,KAAY,CAAC,CAAC;IAExE,MAAM,gBAAgB,GAAG;QACvB,GAAG,wBAAwB;QAC3B,GAAG,0BAA0B;KAC9B,CAAC;IACF,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;QAC1C,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { QueryOne } from '@klerick/json-api-nestjs';
2
+ import { MicroOrmService } from '../../service';
3
+ export declare function getOne<E extends object, IdKey extends string>(this: MicroOrmService<E, IdKey>, id: number | string, query: QueryOne<E, IdKey>): Promise<E>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOne = getOne;
4
+ const common_1 = require("@nestjs/common");
5
+ const core_1 = require("@mikro-orm/core");
6
+ async function getOne(id, query) {
7
+ const queryBuilder = this.microOrmUtilService.queryBuilder().where({
8
+ [this.microOrmUtilService.currentPrimaryColumn]: id,
9
+ });
10
+ const resultItem = await this.microOrmUtilService
11
+ .prePareQueryBuilder(queryBuilder, query)
12
+ .getSingleResult();
13
+ if (!resultItem) {
14
+ const error = {
15
+ code: 'invalid_arguments',
16
+ message: `Resource '${this.microOrmUtilService.currentAlias}' with id '${id}' does not exist`,
17
+ path: ['fields'],
18
+ };
19
+ throw new common_1.NotFoundException([error]);
20
+ }
21
+ return (0, core_1.wrap)(resultItem).toJSON();
22
+ }
23
+ //# sourceMappingURL=get-one.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-one.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/get-one/get-one.ts"],"names":[],"mappings":";;AAKA,wBAuBC;AA5BD,2CAAmD;AAEnD,0CAAuC;AAGhC,KAAK,UAAU,MAAM,CAE1B,EAAmB,EACnB,KAAyB;IAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;QACjE,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,EAAE;KACpD,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB;SAC9C,mBAAmB,CAAC,YAAY,EAAE,KAAY,CAAC;SAC/C,eAAe,EAAE,CAAC;IAErB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,aAAa,IAAI,CAAC,mBAAmB,CAAC,YAAY,cAAc,EAAE,kBAAkB;YAC7F,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC;QACF,MAAM,IAAI,0BAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,IAAA,WAAI,EAAC,UAAU,CAAC,CAAC,MAAM,EAAO,CAAC;AACxC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { RelationKeys } from '@klerick/json-api-nestjs-shared';
2
+ import { MicroOrmService } from '../../service';
3
+ export declare function getRelationship<E extends object, IdKey extends string, Rel extends RelationKeys<E, IdKey>>(this: MicroOrmService<E, IdKey>, id: number | string, rel: Rel): Promise<E>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRelationship = getRelationship;
4
+ const common_1 = require("@nestjs/common");
5
+ const core_1 = require("@mikro-orm/core");
6
+ async function getRelationship(id, rel) {
7
+ const result = await this.microOrmUtilService
8
+ .queryBuilder()
9
+ .leftJoinAndSelect(`${this.microOrmUtilService.currentAlias}.${rel.toString()}`, rel.toString(), {}, [this.microOrmUtilService.getPrimaryNameFor(rel)])
10
+ .where({
11
+ [this.microOrmUtilService.currentPrimaryColumn]: id,
12
+ })
13
+ .getSingleResult();
14
+ if (!result) {
15
+ const error = {
16
+ code: 'invalid_arguments',
17
+ message: `Resource '${this.microOrmUtilService.currentAlias}' with id '${id}' does not exist`,
18
+ path: ['fields'],
19
+ };
20
+ throw new common_1.NotFoundException([error]);
21
+ }
22
+ return (0, core_1.serialize)(result, { forceObject: true });
23
+ }
24
+ //# sourceMappingURL=get-relationship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-relationship.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/get-relationship/get-relationship.ts"],"names":[],"mappings":";;AAOA,0CA4BC;AAlCD,2CAAmD;AAEnD,0CAA4C;AAIrC,KAAK,UAAU,eAAe,CAIF,EAAmB,EAAE,GAAQ;IAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB;SAC1C,YAAY,EAAE;SACd,iBAAiB,CAChB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,EAC5D,GAAG,CAAC,QAAQ,EAAE,EACd,EAAE,EACF,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAU,CAAC,CAAC,CACzD;SACA,KAAK,CAAC;QACL,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,EAAE;KACpD,CAAC;SACD,eAAe,EAAE,CAAC;IAErB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,aAAa,IAAI,CAAC,mBAAmB,CAAC,YAAY,cAAc,EAAE,kBAAkB;YAC7F,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC;QACF,MAAM,IAAI,0BAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,IAAA,gBAAS,EAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAiB,CAAC;AAClE,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './get-all/get-all';
2
+ export * from './get-one/get-one';
3
+ export * from './delete-one/delete-one';
4
+ export * from './post-one/post-one';
5
+ export * from './patch-one/patch-one';
6
+ export * from './get-relationship/get-relationship';
7
+ export * from './delete-relationship/delete-relationship';
8
+ export * from './post-relationship/post-relationship';
9
+ export * from './patch-relationship/patch-relationship';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./get-all/get-all"), exports);
5
+ tslib_1.__exportStar(require("./get-one/get-one"), exports);
6
+ tslib_1.__exportStar(require("./delete-one/delete-one"), exports);
7
+ tslib_1.__exportStar(require("./post-one/post-one"), exports);
8
+ tslib_1.__exportStar(require("./patch-one/patch-one"), exports);
9
+ tslib_1.__exportStar(require("./get-relationship/get-relationship"), exports);
10
+ tslib_1.__exportStar(require("./delete-relationship/delete-relationship"), exports);
11
+ tslib_1.__exportStar(require("./post-relationship/post-relationship"), exports);
12
+ tslib_1.__exportStar(require("./patch-relationship/patch-relationship"), exports);
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,4DAAkC;AAClC,kEAAwC;AACxC,8DAAoC;AACpC,gEAAsC;AACtC,8EAAoD;AACpD,oFAA0D;AAC1D,gFAAsD;AACtD,kFAAwD"}
@@ -0,0 +1,3 @@
1
+ import { PatchData } from '@klerick/json-api-nestjs';
2
+ import { MicroOrmService } from '../../service';
3
+ export declare function patchOne<E extends object, IdKey extends string>(this: MicroOrmService<E, IdKey>, id: number | string, inputData: PatchData<E, IdKey>): Promise<E>;