@zola_do/crud 0.2.7 → 0.2.9
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/README.md +158 -68
- package/dist/controller/entity-crud.controller.js +8 -3
- package/dist/controller/entity-crud.controller.js.map +1 -1
- package/dist/controller/extra-crud.controller.js +5 -0
- package/dist/controller/extra-crud.controller.js.map +1 -1
- package/dist/controller/relation-crud.controller.js +3 -0
- package/dist/controller/relation-crud.controller.js.map +1 -1
- package/dist/crud-operation/repository/entity-crud.repository.d.ts +4 -4
- package/dist/crud-operation/repository/entity-crud.repository.js +29 -18
- package/dist/crud-operation/repository/entity-crud.repository.js.map +1 -1
- package/dist/crud-operation/repository/extra-crud.repository.d.ts +4 -4
- package/dist/crud-operation/repository/extra-crud.repository.js +28 -14
- package/dist/crud-operation/repository/extra-crud.repository.js.map +1 -1
- package/dist/crud-operation/repository/relation-crud.repository.js +4 -0
- package/dist/crud-operation/repository/relation-crud.repository.js.map +1 -1
- package/dist/crud-operation/service/relation-crud.service.js.map +1 -1
- package/dist/crud.module.d.ts +3 -0
- package/dist/crud.module.js +25 -0
- package/dist/crud.module.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/service/entity-crud.service.d.ts +5 -4
- package/dist/service/entity-crud.service.js +98 -60
- package/dist/service/entity-crud.service.js.map +1 -1
- package/dist/service/extra-crud.service.d.ts +4 -3
- package/dist/service/extra-crud.service.js +73 -38
- package/dist/service/extra-crud.service.js.map +1 -1
- package/dist/service/relation-crud.service.d.ts +4 -3
- package/dist/service/relation-crud.service.js +35 -10
- package/dist/service/relation-crud.service.js.map +1 -1
- package/dist/shared/guards/crud-operation-disabled.guard.js.map +1 -1
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.js +2 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/interceptors/transaction-interceptor.d.ts +7 -2
- package/dist/shared/interceptors/transaction-interceptor.js +35 -6
- package/dist/shared/interceptors/transaction-interceptor.js.map +1 -1
- package/dist/shared/request-context/apply-create-context.helper.js +5 -12
- package/dist/shared/request-context/apply-create-context.helper.js.map +1 -1
- package/dist/shared/tokens/crud-transaction-context.token.d.ts +1 -0
- package/dist/shared/tokens/crud-transaction-context.token.js +5 -0
- package/dist/shared/tokens/crud-transaction-context.token.js.map +1 -0
- package/dist/shared/types/crud-option.type.d.ts +26 -39
- package/dist/shared/types/crud-transaction-context-hook.interface.d.ts +8 -0
- package/dist/shared/types/crud-transaction-context-hook.interface.js +3 -0
- package/dist/shared/types/crud-transaction-context-hook.interface.js.map +1 -0
- package/dist/shared/types/index.d.ts +1 -0
- package/dist/shared/types/index.js +1 -0
- package/dist/shared/types/index.js.map +1 -1
- package/dist/shared/utils/crud-hooks.helper.d.ts +7 -4
- package/dist/shared/utils/crud-hooks.helper.js +33 -11
- package/dist/shared/utils/crud-hooks.helper.js.map +1 -1
- package/dist/shared/utils/crud-transaction.decorators.d.ts +1 -0
- package/dist/shared/utils/crud-transaction.decorators.js +8 -0
- package/dist/shared/utils/crud-transaction.decorators.js.map +1 -0
- package/dist/shared/utils/cursor-query.helper.js.map +1 -1
- package/dist/shared/utils/index.d.ts +2 -0
- package/dist/shared/utils/index.js +2 -0
- package/dist/shared/utils/index.js.map +1 -1
- package/dist/shared/utils/transactional-repository.helper.d.ts +4 -0
- package/dist/shared/utils/transactional-repository.helper.js +23 -0
- package/dist/shared/utils/transactional-repository.helper.js.map +1 -0
- package/package.json +8 -5
|
@@ -22,15 +22,19 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
22
22
|
this.repository = repository;
|
|
23
23
|
this.requestContextResolver = requestContextResolver;
|
|
24
24
|
}
|
|
25
|
+
resolveRepository(req) {
|
|
26
|
+
return (0, shared_1.resolveCrudRepository)(this.repository, req);
|
|
27
|
+
}
|
|
25
28
|
async create(itemData, req, options) {
|
|
26
29
|
var _a, _b, _c;
|
|
27
30
|
const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
|
|
31
|
+
const repo = this.resolveRepository(req);
|
|
28
32
|
const context = (0, shared_1.createCrudHookContext)({
|
|
29
|
-
operation:
|
|
33
|
+
operation: 'create',
|
|
30
34
|
req,
|
|
31
35
|
itemData: payload,
|
|
32
36
|
service: this,
|
|
33
|
-
repository:
|
|
37
|
+
repository: repo,
|
|
34
38
|
});
|
|
35
39
|
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
36
40
|
await (0, shared_1.runBeforeCreatePipeline)({
|
|
@@ -39,10 +43,10 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
39
43
|
options,
|
|
40
44
|
resolver: this.requestContextResolver,
|
|
41
45
|
service: this,
|
|
42
|
-
repository:
|
|
46
|
+
repository: repo,
|
|
43
47
|
});
|
|
44
|
-
const item =
|
|
45
|
-
await
|
|
48
|
+
const item = repo.create(payload);
|
|
49
|
+
await repo.insert(item);
|
|
46
50
|
const createdItem = item;
|
|
47
51
|
context.id = (_b = (_a = createdItem === null || createdItem === void 0 ? void 0 : createdItem.id) === null || _a === void 0 ? void 0 : _a.toString) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
48
52
|
context.entity = createdItem;
|
|
@@ -51,10 +55,10 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
51
55
|
return (_c = context.result) !== null && _c !== void 0 ? _c : createdItem;
|
|
52
56
|
}
|
|
53
57
|
async findAll(entityId, query, extraCrudOptions, req) {
|
|
54
|
-
var _a;
|
|
58
|
+
var _a, _b;
|
|
55
59
|
const entityIdName = extraCrudOptions.entityIdName;
|
|
56
60
|
const context = (0, shared_1.createCrudHookContext)({
|
|
57
|
-
operation:
|
|
61
|
+
operation: 'findAll',
|
|
58
62
|
req,
|
|
59
63
|
query: query,
|
|
60
64
|
where: {
|
|
@@ -67,6 +71,20 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
67
71
|
await (0, shared_1.runBeforeOperationHooks)(extraCrudOptions, context);
|
|
68
72
|
(0, shared_1.applyWhereToCollectionQuery)(query, context.where);
|
|
69
73
|
const response = new shared_1.DataResponseFormat();
|
|
74
|
+
if (collection_query_1.QueryConstructor.isCursorQuery(query)) {
|
|
75
|
+
const cursorResult = await collection_query_1.QueryConstructor.runCursorQuery(this.repository, query);
|
|
76
|
+
response.total = cursorResult.total;
|
|
77
|
+
response.items = cursorResult.items;
|
|
78
|
+
response.nextCursor = cursorResult.nextCursor;
|
|
79
|
+
response.prevCursor = cursorResult.prevCursor;
|
|
80
|
+
response.hasNextPage = cursorResult.hasNextPage;
|
|
81
|
+
response.nc = cursorResult.nextCursor;
|
|
82
|
+
response.pc = cursorResult.prevCursor;
|
|
83
|
+
response.hn = cursorResult.hasNextPage;
|
|
84
|
+
context.result = response;
|
|
85
|
+
await (0, shared_1.runAfterOperationHooks)(extraCrudOptions, context);
|
|
86
|
+
return (_a = context.result) !== null && _a !== void 0 ? _a : response;
|
|
87
|
+
}
|
|
70
88
|
const dataQuery = collection_query_1.QueryConstructor.constructQuery(this.repository, query);
|
|
71
89
|
if (query.count) {
|
|
72
90
|
response.total = await dataQuery.getCount();
|
|
@@ -78,12 +96,12 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
78
96
|
}
|
|
79
97
|
context.result = response;
|
|
80
98
|
await (0, shared_1.runAfterOperationHooks)(extraCrudOptions, context);
|
|
81
|
-
return (
|
|
99
|
+
return (_b = context.result) !== null && _b !== void 0 ? _b : response;
|
|
82
100
|
}
|
|
83
101
|
async findOne(id, req, options) {
|
|
84
102
|
var _a, _b, _c;
|
|
85
103
|
const context = (0, shared_1.createCrudHookContext)({
|
|
86
|
-
operation:
|
|
104
|
+
operation: 'findOne',
|
|
87
105
|
id: (_b = (_a = id === null || id === void 0 ? void 0 : id.toString) === null || _a === void 0 ? void 0 : _a.call(id)) !== null && _b !== void 0 ? _b : id,
|
|
88
106
|
req,
|
|
89
107
|
where: {},
|
|
@@ -100,20 +118,21 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
100
118
|
}
|
|
101
119
|
async update(id, itemData, req, options) {
|
|
102
120
|
var _a;
|
|
103
|
-
const item = await this.findOneOrFail(id);
|
|
121
|
+
const item = await this.findOneOrFail(id, req);
|
|
104
122
|
const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
|
|
123
|
+
const repo = this.resolveRepository(req);
|
|
105
124
|
const context = (0, shared_1.createCrudHookContext)({
|
|
106
|
-
operation:
|
|
125
|
+
operation: 'update',
|
|
107
126
|
id,
|
|
108
127
|
req,
|
|
109
128
|
itemData: payload,
|
|
110
129
|
entity: item,
|
|
111
130
|
service: this,
|
|
112
|
-
repository:
|
|
131
|
+
repository: repo,
|
|
113
132
|
});
|
|
114
133
|
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
115
134
|
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
116
|
-
await
|
|
135
|
+
await repo.update(item.id, payload);
|
|
117
136
|
const updatedItem = Object.assign(Object.assign({}, item), payload);
|
|
118
137
|
context.entity = updatedItem;
|
|
119
138
|
context.result = updatedItem;
|
|
@@ -121,63 +140,65 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
121
140
|
return (_a = context.result) !== null && _a !== void 0 ? _a : updatedItem;
|
|
122
141
|
}
|
|
123
142
|
async softDelete(id, req, options) {
|
|
124
|
-
var _a, _b
|
|
125
|
-
const
|
|
143
|
+
var _a, _b;
|
|
144
|
+
const repo = this.resolveRepository(req);
|
|
145
|
+
const item = await this.findOneOrFail(id, req);
|
|
126
146
|
const context = (0, shared_1.createCrudHookContext)({
|
|
127
|
-
operation:
|
|
147
|
+
operation: 'delete',
|
|
128
148
|
id,
|
|
129
149
|
req,
|
|
130
150
|
entity: item,
|
|
131
151
|
service: this,
|
|
132
|
-
repository:
|
|
152
|
+
repository: repo,
|
|
133
153
|
});
|
|
134
154
|
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
135
155
|
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
136
|
-
const deleteMode = (_a = options === null || options === void 0 ? void 0 : options.deleteMode) !== null && _a !== void 0 ? _a :
|
|
137
|
-
const hasSoftDelete = !!((
|
|
138
|
-
if (deleteMode ===
|
|
156
|
+
const deleteMode = (_a = options === null || options === void 0 ? void 0 : options.deleteMode) !== null && _a !== void 0 ? _a : 'hard';
|
|
157
|
+
const hasSoftDelete = !!((_b = repo === null || repo === void 0 ? void 0 : repo.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn);
|
|
158
|
+
if (deleteMode === 'soft') {
|
|
139
159
|
if (!hasSoftDelete) {
|
|
140
|
-
throw new common_1.BadRequestException(
|
|
160
|
+
throw new common_1.BadRequestException('soft_delete_not_supported');
|
|
141
161
|
}
|
|
142
|
-
await
|
|
162
|
+
await repo.softRemove(item);
|
|
143
163
|
}
|
|
144
|
-
else if (deleteMode ===
|
|
164
|
+
else if (deleteMode === 'auto') {
|
|
145
165
|
if (hasSoftDelete) {
|
|
146
|
-
await
|
|
166
|
+
await repo.softRemove(item);
|
|
147
167
|
}
|
|
148
168
|
else {
|
|
149
|
-
await
|
|
169
|
+
await repo.remove(item);
|
|
150
170
|
}
|
|
151
171
|
}
|
|
152
172
|
else {
|
|
153
|
-
await
|
|
173
|
+
await repo.remove(item);
|
|
154
174
|
}
|
|
155
175
|
context.result = undefined;
|
|
156
176
|
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
157
177
|
}
|
|
158
178
|
async restore(id, req, options) {
|
|
159
|
-
var _a
|
|
179
|
+
var _a;
|
|
180
|
+
const repo = this.resolveRepository(req);
|
|
160
181
|
const context = (0, shared_1.createCrudHookContext)({
|
|
161
|
-
operation:
|
|
182
|
+
operation: 'restore',
|
|
162
183
|
id,
|
|
163
184
|
req,
|
|
164
185
|
service: this,
|
|
165
|
-
repository:
|
|
186
|
+
repository: repo,
|
|
166
187
|
});
|
|
167
188
|
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
168
189
|
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
169
|
-
if (!((
|
|
170
|
-
throw new common_1.BadRequestException(
|
|
190
|
+
if (!((_a = repo === null || repo === void 0 ? void 0 : repo.metadata) === null || _a === void 0 ? void 0 : _a.deleteDateColumn)) {
|
|
191
|
+
throw new common_1.BadRequestException('restore_not_supported');
|
|
171
192
|
}
|
|
172
|
-
const item = await this.findOneOrFailWithDeleted(id);
|
|
193
|
+
const item = await this.findOneOrFailWithDeleted(id, req);
|
|
173
194
|
context.entity = item;
|
|
174
|
-
await
|
|
195
|
+
await repo.restore(id);
|
|
175
196
|
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
176
197
|
}
|
|
177
198
|
async findAllArchived(entityId, query, extraCrudOptions, req) {
|
|
178
199
|
var _a, _b;
|
|
179
200
|
if (!((_b = (_a = this.repository) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn)) {
|
|
180
|
-
throw new common_1.BadRequestException(
|
|
201
|
+
throw new common_1.BadRequestException('archived_items_not_supported');
|
|
181
202
|
}
|
|
182
203
|
const entityIdName = extraCrudOptions.entityIdName;
|
|
183
204
|
query.where = query.where || [];
|
|
@@ -189,6 +210,18 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
189
210
|
},
|
|
190
211
|
]);
|
|
191
212
|
const response = new shared_1.DataResponseFormat();
|
|
213
|
+
if (collection_query_1.QueryConstructor.isCursorQuery(query)) {
|
|
214
|
+
const cursorResult = await collection_query_1.QueryConstructor.runCursorQuery(this.repository, query, true);
|
|
215
|
+
response.total = cursorResult.total;
|
|
216
|
+
response.items = cursorResult.items;
|
|
217
|
+
response.nextCursor = cursorResult.nextCursor;
|
|
218
|
+
response.prevCursor = cursorResult.prevCursor;
|
|
219
|
+
response.hasNextPage = cursorResult.hasNextPage;
|
|
220
|
+
response.nc = cursorResult.nextCursor;
|
|
221
|
+
response.pc = cursorResult.prevCursor;
|
|
222
|
+
response.hn = cursorResult.hasNextPage;
|
|
223
|
+
return response;
|
|
224
|
+
}
|
|
192
225
|
const dataQuery = collection_query_1.QueryConstructor.constructQuery(this.repository, query);
|
|
193
226
|
dataQuery.withDeleted();
|
|
194
227
|
if (query.count) {
|
|
@@ -201,15 +234,17 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
201
234
|
}
|
|
202
235
|
return response;
|
|
203
236
|
}
|
|
204
|
-
async findOneOrFail(id) {
|
|
205
|
-
const
|
|
237
|
+
async findOneOrFail(id, req) {
|
|
238
|
+
const repo = this.resolveRepository(req);
|
|
239
|
+
const item = await repo.findOneBy({ id });
|
|
206
240
|
if (!item) {
|
|
207
241
|
throw new common_1.NotFoundException(`not_found`);
|
|
208
242
|
}
|
|
209
243
|
return item;
|
|
210
244
|
}
|
|
211
|
-
async findOneOrFailWithDeleted(id) {
|
|
212
|
-
const
|
|
245
|
+
async findOneOrFailWithDeleted(id, req) {
|
|
246
|
+
const repo = this.resolveRepository(req);
|
|
247
|
+
const item = await repo.findOne({
|
|
213
248
|
where: {
|
|
214
249
|
id,
|
|
215
250
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra-crud.service.js","sourceRoot":"","sources":["../../src/service/extra-crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAKiB;AACjB,2CAMwB;AACxB,gEAImC;AACnC,
|
|
1
|
+
{"version":3,"file":"extra-crud.service.js","sourceRoot":"","sources":["../../src/service/extra-crud.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { ObjectLiteral, Repository } from
|
|
2
|
-
import { CollectionQuery } from
|
|
3
|
-
import { DataResponseFormat, RelationCrudOptions } from
|
|
1
|
+
import { ObjectLiteral, Repository } from 'typeorm';
|
|
2
|
+
import { CollectionQuery } from '@zola_do/collection-query';
|
|
3
|
+
import { DataResponseFormat, RelationCrudOptions } from '../shared';
|
|
4
4
|
export declare class RelationCrudService<TEntity extends ObjectLiteral> {
|
|
5
5
|
private readonly repository;
|
|
6
6
|
constructor(repository: Repository<TEntity>);
|
|
7
|
+
protected resolveRepository(req?: any): Repository<TEntity>;
|
|
7
8
|
bulkSaveFirst(payload: any, relationCrudOptions: RelationCrudOptions, req?: any): Promise<TEntity[]>;
|
|
8
9
|
bulkSaveSecond(payload: any, relationCrudOptions: RelationCrudOptions, req?: any): Promise<TEntity[]>;
|
|
9
10
|
findAllFirst(entityId: string, query: CollectionQuery, relationCrudOptions: RelationCrudOptions): Promise<DataResponseFormat<TEntity>>;
|
|
@@ -18,6 +18,9 @@ let RelationCrudService = class RelationCrudService {
|
|
|
18
18
|
constructor(repository) {
|
|
19
19
|
this.repository = repository;
|
|
20
20
|
}
|
|
21
|
+
resolveRepository(req) {
|
|
22
|
+
return (0, shared_1.resolveCrudRepository)(this.repository, req);
|
|
23
|
+
}
|
|
21
24
|
async bulkSaveFirst(payload, relationCrudOptions, req) {
|
|
22
25
|
const firstEntityIdName = relationCrudOptions.firstEntityIdName;
|
|
23
26
|
const secondEntityIdName = relationCrudOptions.secondEntityIdName;
|
|
@@ -33,18 +36,23 @@ let RelationCrudService = class RelationCrudService {
|
|
|
33
36
|
});
|
|
34
37
|
const deleteCondition = {};
|
|
35
38
|
deleteCondition[firstEntityIdName] = entityId;
|
|
36
|
-
|
|
39
|
+
const repo = this.resolveRepository(req);
|
|
40
|
+
await (0, shared_1.runCrudHook)(relationCrudOptions, 'beforeAssignFirst', {
|
|
37
41
|
id: entityId,
|
|
38
42
|
itemData: payload,
|
|
39
43
|
req,
|
|
44
|
+
service: this,
|
|
45
|
+
repository: repo,
|
|
40
46
|
});
|
|
41
|
-
await
|
|
42
|
-
const data =
|
|
43
|
-
await
|
|
44
|
-
await (0, shared_1.runCrudHook)(relationCrudOptions,
|
|
47
|
+
await repo.delete(deleteCondition);
|
|
48
|
+
const data = repo.create(parsedPayload);
|
|
49
|
+
await repo.insert(data);
|
|
50
|
+
await (0, shared_1.runCrudHook)(relationCrudOptions, 'afterAssignFirst', {
|
|
45
51
|
id: entityId,
|
|
46
52
|
entity: data,
|
|
47
53
|
req,
|
|
54
|
+
service: this,
|
|
55
|
+
repository: repo,
|
|
48
56
|
});
|
|
49
57
|
return data;
|
|
50
58
|
}
|
|
@@ -63,18 +71,23 @@ let RelationCrudService = class RelationCrudService {
|
|
|
63
71
|
});
|
|
64
72
|
const deleteCondition = {};
|
|
65
73
|
deleteCondition[secondEntityIdName] = entityId;
|
|
66
|
-
|
|
74
|
+
const repo = this.resolveRepository(req);
|
|
75
|
+
await (0, shared_1.runCrudHook)(relationCrudOptions, 'beforeAssignSecond', {
|
|
67
76
|
id: entityId,
|
|
68
77
|
itemData: payload,
|
|
69
78
|
req,
|
|
79
|
+
service: this,
|
|
80
|
+
repository: repo,
|
|
70
81
|
});
|
|
71
|
-
await
|
|
72
|
-
const data =
|
|
73
|
-
await
|
|
74
|
-
await (0, shared_1.runCrudHook)(relationCrudOptions,
|
|
82
|
+
await repo.delete(deleteCondition);
|
|
83
|
+
const data = repo.create(parsedPayload);
|
|
84
|
+
await repo.insert(data);
|
|
85
|
+
await (0, shared_1.runCrudHook)(relationCrudOptions, 'afterAssignSecond', {
|
|
75
86
|
id: entityId,
|
|
76
87
|
entity: data,
|
|
77
88
|
req,
|
|
89
|
+
service: this,
|
|
90
|
+
repository: repo,
|
|
78
91
|
});
|
|
79
92
|
return data;
|
|
80
93
|
}
|
|
@@ -103,6 +116,18 @@ let RelationCrudService = class RelationCrudService {
|
|
|
103
116
|
query.includes.push(include);
|
|
104
117
|
query.includes.push(filterInclude);
|
|
105
118
|
const response = new shared_1.DataResponseFormat();
|
|
119
|
+
if (collection_query_1.QueryConstructor.isCursorQuery(query)) {
|
|
120
|
+
const cursorResult = await collection_query_1.QueryConstructor.runCursorQuery(this.repository, query, true);
|
|
121
|
+
response.total = cursorResult.total;
|
|
122
|
+
response.items = cursorResult.items;
|
|
123
|
+
response.nextCursor = cursorResult.nextCursor;
|
|
124
|
+
response.prevCursor = cursorResult.prevCursor;
|
|
125
|
+
response.hasNextPage = cursorResult.hasNextPage;
|
|
126
|
+
response.nc = cursorResult.nextCursor;
|
|
127
|
+
response.pc = cursorResult.prevCursor;
|
|
128
|
+
response.hn = cursorResult.hasNextPage;
|
|
129
|
+
return response;
|
|
130
|
+
}
|
|
106
131
|
const dataQuery = collection_query_1.QueryConstructor.constructQuery(this.repository, query, true);
|
|
107
132
|
if (query.count) {
|
|
108
133
|
response.total = await dataQuery.getCount();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-crud.service.js","sourceRoot":"","sources":["../../src/service/relation-crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAoD;AACpD,2CAA4C;AAC5C,gEAImC;AAEnC,
|
|
1
|
+
{"version":3,"file":"relation-crud.service.js","sourceRoot":"","sources":["../../src/service/relation-crud.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-operation-disabled.guard.js","sourceRoot":"","sources":["../../../src/shared/guards/crud-operation-disabled.guard.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"crud-operation-disabled.guard.js","sourceRoot":"","sources":["../../../src/shared/guards/crud-operation-disabled.guard.ts"],"names":[],"mappings":";;;AAAA,2CAIwB;AAExB,MAAa,0BAA0B;IACrC,YACmB,SAAiB,EACjB,MAAe;QADf,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAAS;IAC/B,CAAC;IAEJ,WAAW,CAAC,QAA0B;;QAEpC,MAAM,IAAI,2BAAkB,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,yBAAyB,CAAC,CAAC;IACzE,CAAC;CACF;AAVD,gEAUC"}
|
package/dist/shared/index.d.ts
CHANGED
|
@@ -8,3 +8,5 @@ export * from './types';
|
|
|
8
8
|
export * from './utils';
|
|
9
9
|
export * from './tokens/crud-idempotency.token';
|
|
10
10
|
export * from './types/crud-idempotency-store.interface';
|
|
11
|
+
export * from './types/crud-transaction-context-hook.interface';
|
|
12
|
+
export * from './tokens/crud-transaction-context.token';
|
package/dist/shared/index.js
CHANGED
|
@@ -24,4 +24,6 @@ __exportStar(require("./types"), exports);
|
|
|
24
24
|
__exportStar(require("./utils"), exports);
|
|
25
25
|
__exportStar(require("./tokens/crud-idempotency.token"), exports);
|
|
26
26
|
__exportStar(require("./types/crud-idempotency-store.interface"), exports);
|
|
27
|
+
__exportStar(require("./types/crud-transaction-context-hook.interface"), exports);
|
|
28
|
+
__exportStar(require("./tokens/crud-transaction-context.token"), exports);
|
|
27
29
|
//# sourceMappingURL=index.js.map
|
package/dist/shared/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,iDAA+B;AAC/B,yEAAuD;AACvD,oDAAkC;AAClC,0CAAwB;AACxB,0CAAwB;AACxB,kEAAgD;AAChD,2EAAyD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,iDAA+B;AAC/B,yEAAuD;AACvD,oDAAkC;AAClC,0CAAwB;AACxB,0CAAwB;AACxB,kEAAgD;AAChD,2EAAyD;AACzD,kFAAgE;AAChE,0EAAwD"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
2
|
import { DataSource } from 'typeorm';
|
|
3
|
+
import { CrudTransactionContextHook } from '../types/crud-transaction-context-hook.interface';
|
|
3
4
|
export declare const ENTITY_MANAGER_KEY = "ENTITY_MANAGER";
|
|
5
|
+
export declare const bindCrudTransactionDataSource: (dataSource: DataSource) => void;
|
|
6
|
+
export declare const bindCrudTransactionContextHook: (hook: CrudTransactionContextHook | undefined) => void;
|
|
4
7
|
export declare class TransactionInterceptor implements NestInterceptor {
|
|
5
|
-
private
|
|
6
|
-
constructor(
|
|
8
|
+
private readonly injectedContextHook?;
|
|
9
|
+
constructor(injectedContextHook?: CrudTransactionContextHook);
|
|
10
|
+
private resolveContextHook;
|
|
11
|
+
private resolveDataSource;
|
|
7
12
|
intercept(context: ExecutionContext, next: CallHandler<any>): Promise<any>;
|
|
8
13
|
}
|
|
@@ -8,22 +8,49 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.TransactionInterceptor = exports.ENTITY_MANAGER_KEY = void 0;
|
|
15
|
+
exports.TransactionInterceptor = exports.bindCrudTransactionContextHook = exports.bindCrudTransactionDataSource = exports.ENTITY_MANAGER_KEY = void 0;
|
|
13
16
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const typeorm_1 = require("typeorm");
|
|
15
17
|
const rxjs_1 = require("rxjs");
|
|
18
|
+
const crud_transaction_context_token_1 = require("../tokens/crud-transaction-context.token");
|
|
16
19
|
exports.ENTITY_MANAGER_KEY = 'ENTITY_MANAGER';
|
|
20
|
+
let boundDataSource;
|
|
21
|
+
let boundTransactionContextHook;
|
|
22
|
+
const bindCrudTransactionDataSource = (dataSource) => {
|
|
23
|
+
boundDataSource = dataSource;
|
|
24
|
+
};
|
|
25
|
+
exports.bindCrudTransactionDataSource = bindCrudTransactionDataSource;
|
|
26
|
+
const bindCrudTransactionContextHook = (hook) => {
|
|
27
|
+
boundTransactionContextHook = hook;
|
|
28
|
+
};
|
|
29
|
+
exports.bindCrudTransactionContextHook = bindCrudTransactionContextHook;
|
|
17
30
|
let TransactionInterceptor = class TransactionInterceptor {
|
|
18
|
-
constructor(
|
|
19
|
-
this.
|
|
31
|
+
constructor(injectedContextHook) {
|
|
32
|
+
this.injectedContextHook = injectedContextHook;
|
|
33
|
+
}
|
|
34
|
+
resolveContextHook() {
|
|
35
|
+
return boundTransactionContextHook !== null && boundTransactionContextHook !== void 0 ? boundTransactionContextHook : this.injectedContextHook;
|
|
36
|
+
}
|
|
37
|
+
resolveDataSource() {
|
|
38
|
+
if (!boundDataSource) {
|
|
39
|
+
throw new Error('TransactionInterceptor requires bindCrudTransactionDataSource() in AppModule after TypeOrmModule.forRoot');
|
|
40
|
+
}
|
|
41
|
+
return boundDataSource;
|
|
20
42
|
}
|
|
21
43
|
async intercept(context, next) {
|
|
44
|
+
const connection = this.resolveDataSource();
|
|
22
45
|
const req = context.switchToHttp().getRequest();
|
|
23
46
|
common_1.Logger.log(req.path);
|
|
24
|
-
const queryRunner =
|
|
47
|
+
const queryRunner = connection.createQueryRunner();
|
|
25
48
|
await queryRunner.connect();
|
|
26
49
|
await queryRunner.startTransaction();
|
|
50
|
+
const contextHook = this.resolveContextHook();
|
|
51
|
+
if (contextHook) {
|
|
52
|
+
await contextHook.apply({ req, queryRunner });
|
|
53
|
+
}
|
|
27
54
|
req[exports.ENTITY_MANAGER_KEY] = queryRunner.manager;
|
|
28
55
|
return next.handle().pipe((0, rxjs_1.concatMap)(async (data) => {
|
|
29
56
|
await queryRunner.commitTransaction();
|
|
@@ -39,6 +66,8 @@ let TransactionInterceptor = class TransactionInterceptor {
|
|
|
39
66
|
exports.TransactionInterceptor = TransactionInterceptor;
|
|
40
67
|
exports.TransactionInterceptor = TransactionInterceptor = __decorate([
|
|
41
68
|
(0, common_1.Injectable)(),
|
|
42
|
-
|
|
69
|
+
__param(0, (0, common_1.Optional)()),
|
|
70
|
+
__param(0, (0, common_1.Inject)(crud_transaction_context_token_1.CRUD_TRANSACTION_CONTEXT_HOOK)),
|
|
71
|
+
__metadata("design:paramtypes", [Object])
|
|
43
72
|
], TransactionInterceptor);
|
|
44
73
|
//# sourceMappingURL=transaction-interceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-interceptor.js","sourceRoot":"","sources":["../../../src/shared/interceptors/transaction-interceptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction-interceptor.js","sourceRoot":"","sources":["../../../src/shared/interceptors/transaction-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAQwB;AAGxB,+BAAuD;AACvD,6FAAyF;AAG5E,QAAA,kBAAkB,GAAG,gBAAgB,CAAC;AAEnD,IAAI,eAAuC,CAAC;AAC5C,IAAI,2BAAmE,CAAC;AAEjE,MAAM,6BAA6B,GAAG,CAAC,UAAsB,EAAE,EAAE;IACtE,eAAe,GAAG,UAAU,CAAC;AAC/B,CAAC,CAAC;AAFW,QAAA,6BAA6B,iCAExC;AAGK,MAAM,8BAA8B,GAAG,CAC5C,IAA4C,EAC5C,EAAE;IACF,2BAA2B,GAAG,IAAI,CAAC;AACrC,CAAC,CAAC;AAJW,QAAA,8BAA8B,kCAIzC;AAUK,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YAGmB,mBAAgD;QAAhD,wBAAmB,GAAnB,mBAAmB,CAA6B;IAChE,CAAC;IAEI,kBAAkB;QACxB,OAAO,2BAA2B,aAA3B,2BAA2B,cAA3B,2BAA2B,GAAI,IAAI,CAAC,mBAAmB,CAAC;IACjE,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0GAA0G,CAC3G,CAAC;QACJ,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,SAAS,CACb,OAAyB,EACzB,IAAsB;QAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QACzD,eAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAErB,MAAM,WAAW,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACnD,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,GAAG,CAAC,0BAAkB,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;QAE9C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,gBAAS,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EACF,IAAA,iBAAU,EAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACxC,MAAM,CAAC,CAAC;QACV,CAAC,CAAC,EACF,IAAA,eAAQ,EAAC,KAAK,IAAI,EAAE;YAClB,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAvDY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,8DAA6B,CAAC,CAAA;;GAH7B,sBAAsB,CAuDlC"}
|
|
@@ -6,23 +6,16 @@ const assignResolvedContext = (itemData, mappedContext) => {
|
|
|
6
6
|
Object.assign(itemData, mappedContext);
|
|
7
7
|
}
|
|
8
8
|
};
|
|
9
|
-
const getCreateHook = (options) => typeof (options === null || options === void 0 ? void 0 : options.mapCreateContext) === 'function'
|
|
10
|
-
? options.mapCreateContext
|
|
11
|
-
: undefined;
|
|
12
9
|
const applyCreateContext = async (params) => {
|
|
13
10
|
var _a, _b;
|
|
14
11
|
const { itemData, req, options, resolver } = params;
|
|
15
|
-
const hasCreateOverrideHook = typeof (options === null || options === void 0 ? void 0 : options.
|
|
16
|
-
typeof (options === null || options === void 0 ? void 0 : options.beforeCreate) === 'function';
|
|
12
|
+
const hasCreateOverrideHook = typeof (options === null || options === void 0 ? void 0 : options.beforeCreate) === 'function';
|
|
17
13
|
const forceServerOwnership = !hasCreateOverrideHook;
|
|
18
|
-
const localHook = getCreateHook(options);
|
|
19
|
-
if (localHook) {
|
|
20
|
-
const mappedContext = await localHook({ itemData, req });
|
|
21
|
-
assignResolvedContext(itemData, mappedContext);
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
14
|
if (resolver === null || resolver === void 0 ? void 0 : resolver.resolveCreateContext) {
|
|
25
|
-
const mappedContext = await resolver.resolveCreateContext({
|
|
15
|
+
const mappedContext = await resolver.resolveCreateContext({
|
|
16
|
+
itemData,
|
|
17
|
+
req,
|
|
18
|
+
});
|
|
26
19
|
if (mappedContext && typeof mappedContext === 'object') {
|
|
27
20
|
assignResolvedContext(itemData, mappedContext);
|
|
28
21
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-create-context.helper.js","sourceRoot":"","sources":["../../../src/shared/request-context/apply-create-context.helper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"apply-create-context.helper.js","sourceRoot":"","sources":["../../../src/shared/request-context/apply-create-context.helper.ts"],"names":[],"mappings":";;;AASA,MAAM,qBAAqB,GAAG,CAC5B,QAA4B,EAC5B,aAAkD,EAClD,EAAE;IACF,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACzC,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,KAAK,EAAE,MAKxC,EAAE,EAAE;;IACH,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACpD,MAAM,qBAAqB,GACzB,OAAO,CAAC,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,YAAY,CAAA,KAAK,UAAU,CAAC;IACvD,MAAM,oBAAoB,GAAG,CAAC,qBAAqB,CAAC;IAEpD,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,oBAAoB,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC;YACxD,QAAQ;YACR,GAAG;SACJ,CAAC,CAAC;QACH,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACvD,qBAAqB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,YAAY,EAAE,CAAC;QAC5B,IAAI,oBAAoB,IAAI,QAAQ,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAC5D,QAAQ,CAAC,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,oBAAoB,IAAI,QAAQ,CAAC,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC9D,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACzD,CAAC;IACH,CAAC;IAED,IACE,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,EAAE,KAAI,IAAI;QACrB,CAAC,oBAAoB,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,EACjD,CAAC;QACD,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,CAAC;AACH,CAAC,CAAC;AArCW,QAAA,kBAAkB,sBAqC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CRUD_TRANSACTION_CONTEXT_HOOK = "CRUD_TRANSACTION_CONTEXT_HOOK";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud-transaction-context.token.js","sourceRoot":"","sources":["../../../src/shared/tokens/crud-transaction-context.token.ts"],"names":[],"mappings":";;;AACa,QAAA,6BAA6B,GAAG,+BAA+B,CAAC"}
|