@klerick/json-api-nestjs-typeorm 0.1.0-beta.1 → 0.1.0-beta.10
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 +78 -1
- package/README.md +39 -0
- package/package.json +25 -38
- 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 +6 -0
- package/src/lib/constants/index.js +10 -0
- package/src/lib/constants/index.js.map +1 -0
- package/src/lib/factory/index.d.ts +20 -0
- package/src/lib/factory/index.js +128 -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/orm-helper/acl-rules-to-typeorm.d.ts +36 -0
- package/src/lib/orm-helper/acl-rules-to-typeorm.js +314 -0
- package/src/lib/orm-helper/acl-rules-to-typeorm.js.map +1 -0
- package/src/lib/orm-helper/index.d.ts +13 -0
- package/src/lib/orm-helper/index.js +164 -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 +17 -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 +18 -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 +7 -0
- package/src/lib/orm-methods/get-all/get-all.js +210 -0
- package/src/lib/orm-methods/get-all/get-all.js.map +1 -0
- package/src/lib/orm-methods/get-one/get-one.d.ts +4 -0
- package/src/lib/orm-methods/get-one/get-one.js +76 -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 +35 -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 +22 -0
- package/src/lib/orm-methods/index.js.map +1 -0
- package/src/lib/orm-methods/patch-one/patch-one.d.ts +4 -0
- package/src/lib/orm-methods/patch-one/patch-one.js +50 -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 +4 -0
- package/src/lib/orm-methods/post-one/post-one.js +28 -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 +19 -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/type-orm-format.error.service.d.ts +21 -0
- package/src/lib/service/type-orm-format.error.service.js +122 -0
- package/src/lib/service/type-orm-format.error.service.js.map +1 -0
- package/src/lib/service/type-orm.service.d.ts +25 -0
- package/src/lib/service/type-orm.service.js +73 -0
- package/src/lib/service/type-orm.service.js.map +1 -0
- package/src/lib/service/typeorm-utils.service.d.ts +66 -0
- package/src/lib/service/typeorm-utils.service.js +450 -0
- package/src/lib/service/typeorm-utils.service.js.map +1 -0
- package/src/lib/type-orm-json-api.module.d.ts +7 -0
- package/src/lib/type-orm-json-api.module.js +49 -0
- package/src/lib/type-orm-json-api.module.js.map +1 -0
- package/src/lib/type.d.ts +29 -0
- package/src/lib/type.js +29 -0
- package/src/lib/type.js.map +1 -0
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractRelationsFromRules = extractRelationsFromRules;
|
|
4
|
+
exports.applyAclRulesToQueryBuilder = applyAclRulesToQueryBuilder;
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const type_1 = require("../type");
|
|
7
|
+
/**
|
|
8
|
+
* Maps ACL operators (with $) to TypeORM operators (without $)
|
|
9
|
+
*/
|
|
10
|
+
const ACL_TO_TYPEORM_OPERATOR = {
|
|
11
|
+
'$eq': 'eq',
|
|
12
|
+
'$ne': 'ne',
|
|
13
|
+
'$gt': 'gt',
|
|
14
|
+
'$gte': 'gte',
|
|
15
|
+
'$lt': 'lt',
|
|
16
|
+
'$lte': 'lte',
|
|
17
|
+
'$in': 'in',
|
|
18
|
+
'$nin': 'nin',
|
|
19
|
+
'$re': 'regexp',
|
|
20
|
+
'$contains': 'contains',
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Extract all relation field names from ACL rulesForQuery
|
|
24
|
+
* @param rules - ACL rules object
|
|
25
|
+
* @param typeormUtils - TypeORM utils service
|
|
26
|
+
* @returns Set of relation field names used in the rules
|
|
27
|
+
*/
|
|
28
|
+
function extractRelationsFromRules(rules, typeormUtils) {
|
|
29
|
+
const relations = new Set();
|
|
30
|
+
const processObject = (obj) => {
|
|
31
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
32
|
+
// Skip logical operators
|
|
33
|
+
if (key === '$or' || key === '$and' || key === '$not') {
|
|
34
|
+
if (Array.isArray(value)) {
|
|
35
|
+
value.forEach((item) => {
|
|
36
|
+
if (typeof item === 'object' && item !== null) {
|
|
37
|
+
processObject(item);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
else if (typeof value === 'object' && value !== null) {
|
|
42
|
+
processObject(value);
|
|
43
|
+
}
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
// Check if this is a relation field
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
const isRelation = typeormUtils.relationFields.includes(key);
|
|
49
|
+
if (isRelation) {
|
|
50
|
+
relations.add(key);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
processObject(rules);
|
|
55
|
+
return relations;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Converts ACL rulesForQuery (MikroORM-like format) to TypeORM QueryBuilder conditions
|
|
59
|
+
*
|
|
60
|
+
* @param rulesForQuery - MongoDB-like query object from ExtendAbility.getQueryObject()
|
|
61
|
+
* @param typeormUtils - TypeORM utils service for getting aliases and paths
|
|
62
|
+
* @param hasExistingWhere - Whether queryBuilder already has WHERE conditions
|
|
63
|
+
* @returns Callback function for queryBuilder.andWhere() or queryBuilder.where()
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* // With existing WHERE
|
|
67
|
+
* const callback = applyAclRulesToQueryBuilder(
|
|
68
|
+
* { authorId: 123, profile: { isPublic: true } },
|
|
69
|
+
* typeormUtils,
|
|
70
|
+
* true
|
|
71
|
+
* );
|
|
72
|
+
* queryBuilder.andWhere(callback);
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* // Without existing WHERE
|
|
76
|
+
* const callback = applyAclRulesToQueryBuilder(
|
|
77
|
+
* { authorId: 123 },
|
|
78
|
+
* typeormUtils,
|
|
79
|
+
* false
|
|
80
|
+
* );
|
|
81
|
+
* callback(queryBuilder);
|
|
82
|
+
*/
|
|
83
|
+
function applyAclRulesToQueryBuilder(rulesForQuery, typeormUtils) {
|
|
84
|
+
let paramCounter = 0;
|
|
85
|
+
const getParamName = () => {
|
|
86
|
+
paramCounter++;
|
|
87
|
+
return `aclParam_${paramCounter}`;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Recursively process rules and apply to query builder
|
|
91
|
+
*/
|
|
92
|
+
const processRules = (qb, rules, isFirstCondition = true) => {
|
|
93
|
+
for (const [key, value] of Object.entries(rules)) {
|
|
94
|
+
// Handle logical operators
|
|
95
|
+
if (key === '$and' && Array.isArray(value)) {
|
|
96
|
+
qb.andWhere(new typeorm_1.Brackets((subQb) => {
|
|
97
|
+
for (const condition of value) {
|
|
98
|
+
processRules(subQb, condition, false);
|
|
99
|
+
}
|
|
100
|
+
}));
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (key === '$or' && Array.isArray(value)) {
|
|
104
|
+
// Build OR conditions as a single WHERE clause with manual parentheses
|
|
105
|
+
const orConditions = [];
|
|
106
|
+
const orParams = {};
|
|
107
|
+
value.forEach((condition) => {
|
|
108
|
+
const cond = condition;
|
|
109
|
+
Object.entries(cond).forEach(([field, val]) => {
|
|
110
|
+
// Check if this is a relation field
|
|
111
|
+
// @ts-ignore
|
|
112
|
+
const isRelation = typeormUtils.relationFields.includes(field);
|
|
113
|
+
if (isRelation && typeof val === 'object' && val !== null && !Array.isArray(val)) {
|
|
114
|
+
// Handle relation fields: { user: { id: { $eq: 3 } } }
|
|
115
|
+
const relationAlias = typeormUtils.getAliasForRelation(field);
|
|
116
|
+
for (const [nestedKey, nestedValue] of Object.entries(val)) {
|
|
117
|
+
const fieldPath = `${relationAlias}.${nestedKey}`;
|
|
118
|
+
if (nestedValue === null || typeof nestedValue !== 'object' || Array.isArray(nestedValue)) {
|
|
119
|
+
const paramName = getParamName();
|
|
120
|
+
orConditions.push(`${fieldPath} = :${paramName}`);
|
|
121
|
+
orParams[paramName] = nestedValue;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// Handle operators in nested field
|
|
125
|
+
const operators = nestedValue;
|
|
126
|
+
const [aclOperator, operatorValue] = Object.entries(operators)[0];
|
|
127
|
+
const typeormOperator = ACL_TO_TYPEORM_OPERATOR[aclOperator];
|
|
128
|
+
if (typeormOperator) {
|
|
129
|
+
const sqlTemplate = type_1.OperandsMapExpression[typeormOperator];
|
|
130
|
+
if (sqlTemplate) {
|
|
131
|
+
const paramName = getParamName();
|
|
132
|
+
const sqlExpression = sqlTemplate.replace(type_1.EXPRESSION, paramName);
|
|
133
|
+
orConditions.push(`${fieldPath} ${sqlExpression}`);
|
|
134
|
+
orParams[paramName] = operatorValue;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
// Handle entity fields
|
|
142
|
+
const fieldPath = `${typeormUtils.currentAlias}.${field}`;
|
|
143
|
+
if (val === null || typeof val !== 'object' || Array.isArray(val)) {
|
|
144
|
+
const paramName = getParamName();
|
|
145
|
+
orConditions.push(`${fieldPath} = :${paramName}`);
|
|
146
|
+
orParams[paramName] = val;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Handle operators
|
|
150
|
+
const operators = val;
|
|
151
|
+
const [aclOperator, operatorValue] = Object.entries(operators)[0];
|
|
152
|
+
const typeormOperator = ACL_TO_TYPEORM_OPERATOR[aclOperator];
|
|
153
|
+
if (typeormOperator) {
|
|
154
|
+
const sqlTemplate = type_1.OperandsMapExpression[typeormOperator];
|
|
155
|
+
if (sqlTemplate) {
|
|
156
|
+
const paramName = getParamName();
|
|
157
|
+
const sqlExpression = sqlTemplate.replace(type_1.EXPRESSION, paramName);
|
|
158
|
+
orConditions.push(`${fieldPath} ${sqlExpression}`);
|
|
159
|
+
orParams[paramName] = operatorValue;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
if (orConditions.length > 0) {
|
|
167
|
+
// Wrap in parentheses and join with OR
|
|
168
|
+
const orClause = `(${orConditions.join(' OR ')})`;
|
|
169
|
+
const whereMethod = isFirstCondition ? 'where' : 'andWhere';
|
|
170
|
+
qb[whereMethod](orClause, orParams);
|
|
171
|
+
isFirstCondition = false;
|
|
172
|
+
}
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (key === '$not') {
|
|
176
|
+
// Build NOT conditions - collect all conditions and wrap in NOT (...)
|
|
177
|
+
const notConditions = [];
|
|
178
|
+
const notParams = {};
|
|
179
|
+
const notRules = value;
|
|
180
|
+
for (const [notKey, notValue] of Object.entries(notRules)) {
|
|
181
|
+
// Check if this is a relation field
|
|
182
|
+
// @ts-ignore
|
|
183
|
+
const isRelation = typeormUtils.relationFields.includes(notKey);
|
|
184
|
+
if (isRelation && typeof notValue === 'object' && notValue !== null && !Array.isArray(notValue)) {
|
|
185
|
+
// Handle relation fields
|
|
186
|
+
const relationAlias = typeormUtils.getAliasForRelation(notKey);
|
|
187
|
+
for (const [nestedKey, nestedValue] of Object.entries(notValue)) {
|
|
188
|
+
const fieldPath = `${relationAlias}.${nestedKey}`;
|
|
189
|
+
if (nestedValue === null || typeof nestedValue !== 'object' || Array.isArray(nestedValue)) {
|
|
190
|
+
const paramName = getParamName();
|
|
191
|
+
notConditions.push(`${fieldPath} = :${paramName}`);
|
|
192
|
+
notParams[paramName] = nestedValue;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
// Handle operators
|
|
196
|
+
const operators = nestedValue;
|
|
197
|
+
const [aclOperator, operatorValue] = Object.entries(operators)[0];
|
|
198
|
+
const typeormOperator = ACL_TO_TYPEORM_OPERATOR[aclOperator];
|
|
199
|
+
if (typeormOperator) {
|
|
200
|
+
const sqlTemplate = type_1.OperandsMapExpression[typeormOperator];
|
|
201
|
+
if (sqlTemplate) {
|
|
202
|
+
const paramName = getParamName();
|
|
203
|
+
const sqlExpression = sqlTemplate.replace(type_1.EXPRESSION, paramName);
|
|
204
|
+
notConditions.push(`${fieldPath} ${sqlExpression}`);
|
|
205
|
+
notParams[paramName] = operatorValue;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
// Handle entity fields
|
|
213
|
+
const fieldPath = `${typeormUtils.currentAlias}.${notKey}`;
|
|
214
|
+
if (notValue === null || typeof notValue !== 'object' || Array.isArray(notValue)) {
|
|
215
|
+
const paramName = getParamName();
|
|
216
|
+
notConditions.push(`${fieldPath} = :${paramName}`);
|
|
217
|
+
notParams[paramName] = notValue;
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
// Handle operators
|
|
221
|
+
const operators = notValue;
|
|
222
|
+
const [aclOperator, operatorValue] = Object.entries(operators)[0];
|
|
223
|
+
const typeormOperator = ACL_TO_TYPEORM_OPERATOR[aclOperator];
|
|
224
|
+
if (typeormOperator) {
|
|
225
|
+
const sqlTemplate = type_1.OperandsMapExpression[typeormOperator];
|
|
226
|
+
if (sqlTemplate) {
|
|
227
|
+
const paramName = getParamName();
|
|
228
|
+
const sqlExpression = sqlTemplate.replace(type_1.EXPRESSION, paramName);
|
|
229
|
+
notConditions.push(`${fieldPath} ${sqlExpression}`);
|
|
230
|
+
notParams[paramName] = operatorValue;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
if (notConditions.length > 0) {
|
|
237
|
+
// Wrap in NOT (...)
|
|
238
|
+
const notClause = `NOT (${notConditions.join(' AND ')})`;
|
|
239
|
+
qb.andWhere(notClause, notParams);
|
|
240
|
+
}
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
// Check if this is a relation field
|
|
244
|
+
// @ts-ignore
|
|
245
|
+
const isRelation = typeormUtils.relationFields.includes(key);
|
|
246
|
+
if (isRelation && typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
247
|
+
// Handle relation fields: { profile: { isPublic: true } }
|
|
248
|
+
const relationAlias = typeormUtils.getAliasForRelation(key);
|
|
249
|
+
for (const [nestedKey, nestedValue] of Object.entries(value)) {
|
|
250
|
+
processFieldCondition(qb, `${relationAlias}.${nestedKey}`, nestedValue, isFirstCondition && Object.keys(rules).indexOf(key) === 0);
|
|
251
|
+
isFirstCondition = false;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
// Handle entity fields: { authorId: 123, status: { $in: [...] } }
|
|
256
|
+
const fieldPath = `${typeormUtils.currentAlias}.${key}`;
|
|
257
|
+
processFieldCondition(qb, fieldPath, value, isFirstCondition);
|
|
258
|
+
isFirstCondition = false;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
/**
|
|
263
|
+
* Process a single field condition (with or without operators)
|
|
264
|
+
*/
|
|
265
|
+
const processFieldCondition = (qb, fieldPath, value, isFirst) => {
|
|
266
|
+
const whereMethod = isFirst ? 'where' : 'andWhere';
|
|
267
|
+
// Primitive value - direct equality
|
|
268
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value)) {
|
|
269
|
+
const paramName = getParamName();
|
|
270
|
+
qb[whereMethod](`${fieldPath} = :${paramName}`, { [paramName]: value });
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
// Object with operators: { $in: [...], $gt: 10, etc. }
|
|
274
|
+
const operators = value;
|
|
275
|
+
for (const [aclOperator, operatorValue] of Object.entries(operators)) {
|
|
276
|
+
const paramName = getParamName();
|
|
277
|
+
// Convert ACL operator ($eq) to TypeORM operator (eq)
|
|
278
|
+
const typeormOperator = ACL_TO_TYPEORM_OPERATOR[aclOperator];
|
|
279
|
+
if (!typeormOperator) {
|
|
280
|
+
console.warn(`[ACL] Unknown operator "${aclOperator}" in rulesForQuery`);
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
// Get SQL expression template from OperandsMapExpression
|
|
284
|
+
const sqlTemplate = type_1.OperandsMapExpression[typeormOperator];
|
|
285
|
+
if (!sqlTemplate) {
|
|
286
|
+
console.warn(`[ACL] No SQL template for operator "${typeormOperator}"`);
|
|
287
|
+
continue;
|
|
288
|
+
}
|
|
289
|
+
// Replace EXPRESSION placeholder with paramName
|
|
290
|
+
const sqlExpression = sqlTemplate.replace(type_1.EXPRESSION, paramName);
|
|
291
|
+
// Apply condition to query builder
|
|
292
|
+
qb[whereMethod](`${fieldPath} ${sqlExpression}`, { [paramName]: operatorValue });
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
// Return callback function
|
|
296
|
+
// if (hasExistingWhere) {
|
|
297
|
+
// // If there's existing WHERE, wrap in Brackets to isolate ACL conditions
|
|
298
|
+
// return (qb: WhereExpressionBuilder) => {
|
|
299
|
+
// qb.andWhere(
|
|
300
|
+
//
|
|
301
|
+
// );
|
|
302
|
+
// };
|
|
303
|
+
// } else {
|
|
304
|
+
// // If no existing WHERE, process rules directly
|
|
305
|
+
// return (qb: WhereExpressionBuilder) => {
|
|
306
|
+
// processRules(qb, rulesForQuery, true);
|
|
307
|
+
// };
|
|
308
|
+
// }
|
|
309
|
+
return new typeorm_1.Brackets((subQb) => {
|
|
310
|
+
// Inside Brackets, MUST use TRUE - first condition needs .where()
|
|
311
|
+
processRules(subQb, rulesForQuery, true);
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=acl-rules-to-typeorm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl-rules-to-typeorm.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-helper/acl-rules-to-typeorm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EntityParam } from '@klerick/json-api-nestjs';
|
|
2
|
+
import { Repository } from 'typeorm';
|
|
3
|
+
export * from './acl-rules-to-typeorm';
|
|
4
|
+
export declare const getRelation: <E extends object>(repository: Repository<E>) => EntityParam<E>["relations"];
|
|
5
|
+
export declare const getProps: <E extends object>(repository: Repository<E>) => EntityParam<E>["props"];
|
|
6
|
+
export declare const getRelationFkField: <E extends object>(repository: Repository<E>) => EntityParam<E>["relationFkField"];
|
|
7
|
+
export declare const getPropsType: <E extends object>(repository: Repository<E>) => EntityParam<E>["propsType"];
|
|
8
|
+
export declare const getPropsNullable: <E extends object>(repository: Repository<E>) => EntityParam<E>["propsNullable"];
|
|
9
|
+
export declare const getPrimaryColumnName: <E extends object>(repository: Repository<E>) => EntityParam<E>["primaryColumnName"];
|
|
10
|
+
export declare const getPrimaryColumnType: <E extends object>(repository: Repository<E>) => EntityParam<E>["primaryColumnType"];
|
|
11
|
+
export declare const getRelationProperty: <E extends object>(repository: Repository<E>) => EntityParam<E>["relationProperty"];
|
|
12
|
+
export declare const getArrayType: <E extends object>(repository: Repository<E>) => EntityParam<E>["propsArrayType"];
|
|
13
|
+
export { applyAclRulesToQueryBuilder, extractRelationsFromRules } from './acl-rules-to-typeorm';
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractRelationsFromRules = exports.applyAclRulesToQueryBuilder = exports.getArrayType = exports.getRelationProperty = exports.getPrimaryColumnType = exports.getPrimaryColumnName = exports.getPropsNullable = exports.getPropsType = exports.getRelationFkField = exports.getProps = exports.getRelation = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const json_api_nestjs_1 = require("@klerick/json-api-nestjs");
|
|
6
|
+
tslib_1.__exportStar(require("./acl-rules-to-typeorm"), exports);
|
|
7
|
+
const getRelation = (repository) => repository.metadata.relations.map((i) => {
|
|
8
|
+
return i.propertyName;
|
|
9
|
+
});
|
|
10
|
+
exports.getRelation = getRelation;
|
|
11
|
+
const getProps = (repository) => {
|
|
12
|
+
const relations = (0, exports.getRelation)(repository);
|
|
13
|
+
return repository.metadata.columns
|
|
14
|
+
.filter((i) => !relations.includes(i.propertyName))
|
|
15
|
+
.map((r) => r.propertyName);
|
|
16
|
+
};
|
|
17
|
+
exports.getProps = getProps;
|
|
18
|
+
const getRelationFkField = (repository) => {
|
|
19
|
+
return repository.metadata.relationIds.reduce((acum, relationId) => {
|
|
20
|
+
// @ts-expect-error dynamic property assignment
|
|
21
|
+
acum[relationId.relation.propertyName] = relationId.propertyName;
|
|
22
|
+
return acum;
|
|
23
|
+
}, {});
|
|
24
|
+
};
|
|
25
|
+
exports.getRelationFkField = getRelationFkField;
|
|
26
|
+
const getPropsType = (repository) => {
|
|
27
|
+
const field = (0, exports.getProps)(repository);
|
|
28
|
+
const entity = repository.target;
|
|
29
|
+
const result = {};
|
|
30
|
+
for (const item of field) {
|
|
31
|
+
let typeProps = json_api_nestjs_1.TypeField.string;
|
|
32
|
+
const fieldMetadata = repository.metadata.columns.find((i) => i.propertyName === item);
|
|
33
|
+
if (fieldMetadata?.isArray) {
|
|
34
|
+
result[item] = json_api_nestjs_1.TypeField.array;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
switch (Reflect.getMetadata('design:type', entity['prototype'], item)) {
|
|
38
|
+
case Array:
|
|
39
|
+
typeProps = json_api_nestjs_1.TypeField.array;
|
|
40
|
+
break;
|
|
41
|
+
case Date:
|
|
42
|
+
typeProps = json_api_nestjs_1.TypeField.date;
|
|
43
|
+
break;
|
|
44
|
+
case Number:
|
|
45
|
+
typeProps = json_api_nestjs_1.TypeField.number;
|
|
46
|
+
break;
|
|
47
|
+
case Boolean:
|
|
48
|
+
typeProps = json_api_nestjs_1.TypeField.boolean;
|
|
49
|
+
break;
|
|
50
|
+
case Object:
|
|
51
|
+
typeProps = json_api_nestjs_1.TypeField.object;
|
|
52
|
+
break;
|
|
53
|
+
default:
|
|
54
|
+
typeProps = json_api_nestjs_1.TypeField.string;
|
|
55
|
+
}
|
|
56
|
+
result[item] = fieldMetadata?.isArray ? json_api_nestjs_1.TypeField.array : typeProps;
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
};
|
|
60
|
+
exports.getPropsType = getPropsType;
|
|
61
|
+
const getPropsNullable = (repository) => {
|
|
62
|
+
const relation = (0, exports.getRelation)(repository);
|
|
63
|
+
return repository.metadata.columns
|
|
64
|
+
.filter((i) => !relation.includes(i.propertyName))
|
|
65
|
+
.map((i) => i.isNullable || i.default !== undefined ? i.propertyName : false)
|
|
66
|
+
.filter((i) => !!i);
|
|
67
|
+
};
|
|
68
|
+
exports.getPropsNullable = getPropsNullable;
|
|
69
|
+
const getPrimaryColumnName = (repository) => {
|
|
70
|
+
const column = repository.metadata.primaryColumns.at(0);
|
|
71
|
+
if (!column)
|
|
72
|
+
throw new Error('Primary column not found');
|
|
73
|
+
return column.propertyName;
|
|
74
|
+
};
|
|
75
|
+
exports.getPrimaryColumnName = getPrimaryColumnName;
|
|
76
|
+
const getPrimaryColumnType = (repository) => {
|
|
77
|
+
const target = repository.target;
|
|
78
|
+
const primaryColumn = repository.metadata.primaryColumns[0].propertyName;
|
|
79
|
+
return (Reflect.getMetadata('design:type', target['prototype'], primaryColumn) ===
|
|
80
|
+
Number
|
|
81
|
+
? json_api_nestjs_1.TypeField.number
|
|
82
|
+
: json_api_nestjs_1.TypeField.string);
|
|
83
|
+
};
|
|
84
|
+
exports.getPrimaryColumnType = getPrimaryColumnType;
|
|
85
|
+
const getRelationProperty = (repository) => {
|
|
86
|
+
return repository.metadata.relations.reduce((acum, item) => {
|
|
87
|
+
// @ts-expect-error its dynamic creater
|
|
88
|
+
acum[item.propertyName] = {
|
|
89
|
+
entityClass: item.inverseEntityMetadata.target,
|
|
90
|
+
nullable: item.isManyToMany || item.isOneToMany ? false : item.isNullable,
|
|
91
|
+
isArray: item.isManyToMany || item.isOneToMany,
|
|
92
|
+
};
|
|
93
|
+
return acum;
|
|
94
|
+
}, {});
|
|
95
|
+
};
|
|
96
|
+
exports.getRelationProperty = getRelationProperty;
|
|
97
|
+
const getArrayType = (repository) => {
|
|
98
|
+
return Object.entries((0, exports.getPropsType)(repository))
|
|
99
|
+
.filter(([name, type]) => type === json_api_nestjs_1.TypeField.array)
|
|
100
|
+
.reduce((acum, [name]) => {
|
|
101
|
+
const fieldMetadata = repository.metadata.columns.find((i) => i.propertyName === name);
|
|
102
|
+
if (!fieldMetadata) {
|
|
103
|
+
throw new Error('Metadata not found for field ' + name);
|
|
104
|
+
}
|
|
105
|
+
switch (fieldMetadata.type) {
|
|
106
|
+
case 'number':
|
|
107
|
+
case 'bigint':
|
|
108
|
+
case 'smallint':
|
|
109
|
+
case 'smalldecimal':
|
|
110
|
+
case 'decimal':
|
|
111
|
+
case 'double':
|
|
112
|
+
case 'tinyint':
|
|
113
|
+
case 'mediumint':
|
|
114
|
+
case 'int':
|
|
115
|
+
case 'float':
|
|
116
|
+
case 'dec':
|
|
117
|
+
case 'fixed':
|
|
118
|
+
case 'numeric':
|
|
119
|
+
case 'real':
|
|
120
|
+
case 'int2':
|
|
121
|
+
case 'int4':
|
|
122
|
+
case 'int8':
|
|
123
|
+
case 'integer':
|
|
124
|
+
acum[name] = json_api_nestjs_1.TypeField.number;
|
|
125
|
+
break;
|
|
126
|
+
case 'character varying':
|
|
127
|
+
case 'varying character':
|
|
128
|
+
case 'char varying':
|
|
129
|
+
case 'nvarchar':
|
|
130
|
+
case 'national varchar':
|
|
131
|
+
case 'character':
|
|
132
|
+
case 'native character':
|
|
133
|
+
case 'varchar':
|
|
134
|
+
case 'char':
|
|
135
|
+
case 'nchar':
|
|
136
|
+
case 'national char':
|
|
137
|
+
case 'varchar2':
|
|
138
|
+
case 'nvarchar2':
|
|
139
|
+
case 'alphanum':
|
|
140
|
+
case 'shorttext':
|
|
141
|
+
case 'raw':
|
|
142
|
+
case 'binary':
|
|
143
|
+
case 'varbinary':
|
|
144
|
+
case 'string':
|
|
145
|
+
acum[name] = json_api_nestjs_1.TypeField.string;
|
|
146
|
+
break;
|
|
147
|
+
case 'date':
|
|
148
|
+
case 'timetz':
|
|
149
|
+
case 'timestamptz':
|
|
150
|
+
case 'timestamp with local time zone':
|
|
151
|
+
case 'smalldatetime':
|
|
152
|
+
acum[name] = json_api_nestjs_1.TypeField.date;
|
|
153
|
+
break;
|
|
154
|
+
case 'boolean':
|
|
155
|
+
acum[name] = json_api_nestjs_1.TypeField.boolean;
|
|
156
|
+
}
|
|
157
|
+
return acum;
|
|
158
|
+
}, {});
|
|
159
|
+
};
|
|
160
|
+
exports.getArrayType = getArrayType;
|
|
161
|
+
var acl_rules_to_typeorm_1 = require("./acl-rules-to-typeorm");
|
|
162
|
+
Object.defineProperty(exports, "applyAclRulesToQueryBuilder", { enumerable: true, get: function () { return acl_rules_to_typeorm_1.applyAclRulesToQueryBuilder; } });
|
|
163
|
+
Object.defineProperty(exports, "extractRelationsFromRules", { enumerable: true, get: function () { return acl_rules_to_typeorm_1.extractRelationsFromRules; } });
|
|
164
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-helper/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteOne = deleteOne;
|
|
4
|
+
async function deleteOne(id) {
|
|
5
|
+
const data = await this.repository.findOne({
|
|
6
|
+
where: {
|
|
7
|
+
[this.typeormUtilsService.currentPrimaryColumn.toString()]: id,
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
if (!data)
|
|
11
|
+
return void 0;
|
|
12
|
+
this.config.useSoftDelete
|
|
13
|
+
? await this.repository.softRemove(data)
|
|
14
|
+
: await this.repository.remove(data);
|
|
15
|
+
return void 0;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=delete-one.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-one.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-methods/delete-one/delete-one.ts"],"names":[],"mappings":";;AAGA,8BAgBC;AAhBM,KAAK,UAAU,SAAS,CAE7B,EAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACzC,KAAK,EAAE;YACL,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;SACxC;KACzB,CAAC,CAAC;IACH,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,CAAC;IAEzB,IAAI,CAAC,MAAM,CAAC,aAAa;QACvB,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;QACxC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvC,OAAO,KAAK,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PostRelationshipData } from '@klerick/json-api-nestjs';
|
|
2
|
+
import { RelationKeys } from '@klerick/json-api-nestjs-shared';
|
|
3
|
+
import { TypeOrmService } from '../../service';
|
|
4
|
+
export declare function deleteRelationship<E extends object, IdKey extends string, Rel extends RelationKeys<E, IdKey>>(this: TypeOrmService<E, IdKey>, id: number | string, rel: Rel, input: PostRelationshipData): Promise<void>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteRelationship = deleteRelationship;
|
|
4
|
+
async function deleteRelationship(id, rel, input) {
|
|
5
|
+
const idsResult = await this.typeormUtilsService.validateRelationInputData(rel, input);
|
|
6
|
+
const postBuilder = this.repository
|
|
7
|
+
.createQueryBuilder()
|
|
8
|
+
.relation(rel.toString())
|
|
9
|
+
.of(id);
|
|
10
|
+
if (Array.isArray(idsResult)) {
|
|
11
|
+
await postBuilder.remove(idsResult);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
await postBuilder.set(null);
|
|
15
|
+
}
|
|
16
|
+
return void 0;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=delete-relationship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-relationship.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-methods/delete-relationship/delete-relationship.ts"],"names":[],"mappings":";;AAKA,gDAyBC;AAzBM,KAAK,UAAU,kBAAkB,CAMtC,EAAmB,EACnB,GAAQ,EACR,KAA2B;IAE3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CACxE,GAAG,EACH,KAAK,CACN,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU;SAChC,kBAAkB,EAAE;SACpB,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;SACxB,EAAE,CAAC,EAAE,CAAC,CAAC;IAEV,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Query } from '@klerick/json-api-nestjs';
|
|
2
|
+
import { ResourceObject } from '@klerick/json-api-nestjs-shared';
|
|
3
|
+
import { TypeOrmService } from '../../service';
|
|
4
|
+
export declare function getAll<E extends object, IdKey extends string = 'id'>(this: TypeOrmService<E, IdKey>, query: Query<E, IdKey>, transformData?: boolean, additionalQueryParams?: Record<string, unknown>): Promise<ResourceObject<E, 'array', null, IdKey> | {
|
|
5
|
+
totalItems: number;
|
|
6
|
+
items: E[];
|
|
7
|
+
}>;
|