@steroidsjs/nest 1.1.5 → 1.1.6
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/infrastructure/helpers/ModuleHelper.d.ts +3 -0
- package/infrastructure/helpers/ModuleHelper.js +25 -0
- package/infrastructure/helpers/ModuleHelper.js.map +1 -0
- package/infrastructure/repositories/CrudRepository.d.ts +7 -3
- package/infrastructure/repositories/CrudRepository.js +57 -8
- package/infrastructure/repositories/CrudRepository.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/usecases/interfaces/ICrudRepository.d.ts +3 -3
- package/usecases/services/CrudService.d.ts +5 -1
- package/usecases/services/CrudService.js +30 -4
- package/usecases/services/CrudService.js.map +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModuleHelper = void 0;
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
class ModuleHelper {
|
|
7
|
+
static importDir(dir, custom = {}) {
|
|
8
|
+
dir = path.normalize(dir);
|
|
9
|
+
return fs.readdirSync(dir)
|
|
10
|
+
.map(fileName => {
|
|
11
|
+
if (!/\.(js|ts)$/.test(fileName) || /\.d\.ts$/.test(fileName)) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const name = fileName.replace(/\.(js|ts)$/, '');
|
|
15
|
+
if (custom[name]) {
|
|
16
|
+
return custom[name];
|
|
17
|
+
}
|
|
18
|
+
const module = require(path.join(dir, fileName));
|
|
19
|
+
return module[name] || module.default;
|
|
20
|
+
})
|
|
21
|
+
.filter(Boolean);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ModuleHelper = ModuleHelper;
|
|
25
|
+
//# sourceMappingURL=ModuleHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModuleHelper.js","sourceRoot":"","sources":["../../../src/infrastructure/helpers/ModuleHelper.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,yBAAyB;AAEzB,MAAa,YAAY;IACrB,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE;QAC7B,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE1B,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;aACrB,GAAG,CAAC,QAAQ,CAAC,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC3D,OAAO,IAAI,CAAC;aACf;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;gBACd,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;aACvB;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC;QAC1C,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;CACJ;AApBD,oCAoBC"}
|
|
@@ -14,9 +14,13 @@ export declare class CrudRepository<TModel> implements ICrudRepository<TModel> {
|
|
|
14
14
|
findOne(conditionOrQuery: ICondition | SearchQuery): Promise<TModel | null>;
|
|
15
15
|
findMany(conditionOrQuery: ICondition | SearchQuery): Promise<TModel[]>;
|
|
16
16
|
protected createQueryBuilder(conditionOrQuery: ICondition | SearchQuery): SelectQueryBuilder<any>;
|
|
17
|
-
create(model: TModel): Promise<TModel>;
|
|
18
|
-
update(id: number, model: TModel): Promise<TModel>;
|
|
19
|
-
remove(id: number): Promise<void>;
|
|
17
|
+
create(model: TModel, transactionHandler?: (callback: any) => Promise<void>): Promise<TModel>;
|
|
18
|
+
update(id: number, model: TModel, transactionHandler?: (callback: any) => Promise<void>): Promise<TModel>;
|
|
19
|
+
remove(id: number, transactionHandler?: (callback: any) => Promise<void>): Promise<void>;
|
|
20
|
+
protected beforeSave(prevModel: TModel | null, nextModel: TModel): Promise<void>;
|
|
21
|
+
protected afterSave(prevModel: TModel | null, nextModel: TModel): Promise<void>;
|
|
22
|
+
protected beforeDelete(id: number): Promise<void>;
|
|
23
|
+
protected afterDelete(id: number): Promise<void>;
|
|
20
24
|
protected modelToEntity(model: any): any;
|
|
21
25
|
protected entityToModel(obj: any): TModel;
|
|
22
26
|
}
|
|
@@ -37,20 +37,69 @@ class CrudRepository {
|
|
|
37
37
|
SearchQuery_1.default.prepare(this.dbRepository, dbQuery, searchQuery);
|
|
38
38
|
return dbQuery;
|
|
39
39
|
}
|
|
40
|
-
async create(model) {
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
async create(model, transactionHandler) {
|
|
41
|
+
let entity;
|
|
42
|
+
let nextModel;
|
|
43
|
+
if (transactionHandler) {
|
|
44
|
+
await this.dbRepository.manager.transaction(async (manager) => {
|
|
45
|
+
await transactionHandler(async () => {
|
|
46
|
+
await this.beforeSave(null, model);
|
|
47
|
+
entity = await manager.save(this.modelToEntity(model));
|
|
48
|
+
nextModel = this.entityToModel(entity);
|
|
49
|
+
await this.afterSave(null, nextModel);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
entity = await this.dbRepository.manager.save(this.modelToEntity(model));
|
|
55
|
+
nextModel = this.entityToModel(entity);
|
|
56
|
+
}
|
|
57
|
+
return nextModel;
|
|
43
58
|
}
|
|
44
|
-
async update(id, model) {
|
|
59
|
+
async update(id, model, transactionHandler) {
|
|
45
60
|
const prevModel = await this.findOne({ [this.primaryKey]: id });
|
|
46
61
|
if (!prevModel) {
|
|
47
62
|
throw new Error('Not found model by id: ' + id);
|
|
48
63
|
}
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
let entity;
|
|
65
|
+
let nextModel;
|
|
66
|
+
if (transactionHandler) {
|
|
67
|
+
await this.dbRepository.manager.transaction(async (manager) => {
|
|
68
|
+
await transactionHandler(async () => {
|
|
69
|
+
await this.beforeSave(prevModel, model);
|
|
70
|
+
entity = await manager.save(this.modelToEntity(Object.assign(Object.assign({}, prevModel), model)));
|
|
71
|
+
nextModel = this.entityToModel(entity);
|
|
72
|
+
await this.afterSave(prevModel, nextModel);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
entity = await this.dbRepository.manager.save(this.modelToEntity(Object.assign(Object.assign({}, prevModel), model)));
|
|
78
|
+
nextModel = this.entityToModel(entity);
|
|
79
|
+
}
|
|
80
|
+
return nextModel;
|
|
81
|
+
}
|
|
82
|
+
async remove(id, transactionHandler) {
|
|
83
|
+
if (transactionHandler) {
|
|
84
|
+
await this.dbRepository.manager.transaction(async (manager) => {
|
|
85
|
+
await transactionHandler(async () => {
|
|
86
|
+
await this.beforeDelete(id);
|
|
87
|
+
await manager.remove(id);
|
|
88
|
+
await this.afterDelete(id);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
await this.dbRepository.manager.remove(id);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async beforeSave(prevModel, nextModel) {
|
|
97
|
+
}
|
|
98
|
+
async afterSave(prevModel, nextModel) {
|
|
99
|
+
}
|
|
100
|
+
async beforeDelete(id) {
|
|
51
101
|
}
|
|
52
|
-
async
|
|
53
|
-
await this.dbRepository.delete(id);
|
|
102
|
+
async afterDelete(id) {
|
|
54
103
|
}
|
|
55
104
|
modelToEntity(model) {
|
|
56
105
|
return this.dbRepository.create(model);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":";;;AACA,sEAAiE;AAIjE,iEAA0D;AAC1D,8EAAyE;AAOzE,MAAa,cAAc;IAA3B;QAIW,eAAU,GAAW,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":"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"}
|