@steroidsjs/nest 1.1.8 → 1.1.12
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/decorators/ApiOkSearchResponse.d.ts +5 -1
- package/infrastructure/decorators/ApiOkSearchResponse.js +2 -1
- package/infrastructure/decorators/ApiOkSearchResponse.js.map +1 -1
- package/infrastructure/decorators/TableFromModel.js +2 -3
- package/infrastructure/decorators/TableFromModel.js.map +1 -1
- package/infrastructure/decorators/fields/BaseField.d.ts +4 -1
- package/infrastructure/decorators/fields/BaseField.js +17 -1
- package/infrastructure/decorators/fields/BaseField.js.map +1 -1
- package/infrastructure/decorators/fields/ExtendField.js.map +1 -1
- package/infrastructure/repositories/CrudRepository.d.ts +4 -5
- package/infrastructure/repositories/CrudRepository.js +17 -43
- package/infrastructure/repositories/CrudRepository.js.map +1 -1
- package/package.json +3 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/usecases/base/SearchQuery.d.ts +1 -1
- package/usecases/base/SearchQuery.js +16 -31
- package/usecases/base/SearchQuery.js.map +1 -1
- package/usecases/helpers/DataMapperHelper.d.ts +1 -2
- package/usecases/helpers/DataMapperHelper.js +45 -16
- package/usecases/helpers/DataMapperHelper.js.map +1 -1
- package/usecases/interfaces/ICrudRepository.d.ts +1 -0
- package/usecases/services/CrudService.d.ts +2 -4
- package/usecases/services/CrudService.js +20 -26
- package/usecases/services/CrudService.js.map +1 -1
- package/infrastructure/decorators/schema/ExtractRelationId.d.ts +0 -2
- package/infrastructure/decorators/schema/ExtractRelationId.js +0 -11
- package/infrastructure/decorators/schema/ExtractRelationId.js.map +0 -1
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
interface ApiOkSearchResponseOptions {
|
|
2
|
+
type: Function;
|
|
3
|
+
}
|
|
4
|
+
export declare function ApiOkSearchResponse(options: ApiOkSearchResponseOptions): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
5
|
+
export {};
|
|
@@ -4,7 +4,8 @@ exports.ApiOkSearchResponse = void 0;
|
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const swagger_1 = require("@nestjs/swagger");
|
|
6
6
|
const SearchSchema_1 = require("../schemas/SearchSchema");
|
|
7
|
-
function ApiOkSearchResponse(
|
|
7
|
+
function ApiOkSearchResponse(options) {
|
|
8
|
+
const itemType = options.type;
|
|
8
9
|
return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)(SearchSchema_1.SearchSchema, itemType), (0, swagger_1.ApiOkResponse)({
|
|
9
10
|
schema: {
|
|
10
11
|
allOf: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiOkSearchResponse.js","sourceRoot":"","sources":["../../../src/infrastructure/decorators/ApiOkSearchResponse.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,6CAA6E;AAC7E,0DAAqD;
|
|
1
|
+
{"version":3,"file":"ApiOkSearchResponse.js","sourceRoot":"","sources":["../../../src/infrastructure/decorators/ApiOkSearchResponse.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,6CAA6E;AAC7E,0DAAqD;AAMrD,SAAgB,mBAAmB,CAAC,OAAmC;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,OAAO,IAAA,wBAAe,EAClB,IAAA,wBAAc,EAAC,2BAAY,EAAE,QAAQ,CAAC,EACtC,IAAA,uBAAa,EAAC;QACV,MAAM,EAAE;YACJ,KAAK,EAAE;gBACH,EAAE,IAAI,EAAE,IAAA,uBAAa,EAAC,2BAAY,CAAC,EAAE;gBACrC;oBACI,UAAU,EAAE;wBACR,KAAK,EAAE;4BACH,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,IAAA,uBAAa,EAAC,QAAQ,CAAC,EAAE;yBAC3C;qBACJ;iBACJ;aACJ;SACJ;KACJ,CAAC,CACL,CAAC;AACN,CAAC;AApBD,kDAoBC"}
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TableFromModel = void 0;
|
|
4
4
|
const typeorm_1 = require("typeorm");
|
|
5
|
-
const DataMapperHelper_1 = require("../../usecases/helpers/DataMapperHelper");
|
|
6
5
|
const ExtendField_1 = require("./fields/ExtendField");
|
|
7
6
|
const common_1 = require("@nestjs/common");
|
|
7
|
+
const BaseField_1 = require("./fields/BaseField");
|
|
8
8
|
function TableFromModelInternal(ModelClass) {
|
|
9
9
|
return (target) => {
|
|
10
|
-
|
|
11
|
-
fields.forEach(field => {
|
|
10
|
+
(0, BaseField_1.getMetaFields)(ModelClass).forEach(field => {
|
|
12
11
|
(0, ExtendField_1.ExtendField)(ModelClass)(target.prototype, field);
|
|
13
12
|
});
|
|
14
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableFromModel.js","sourceRoot":"","sources":["../../../src/infrastructure/decorators/TableFromModel.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;
|
|
1
|
+
{"version":3,"file":"TableFromModel.js","sourceRoot":"","sources":["../../../src/infrastructure/decorators/TableFromModel.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAE/B,sDAAiD;AACjD,2CAA+C;AAC/C,kDAAiD;AAQjD,SAAS,sBAAsB,CAAC,UAAU;IACtC,OAAO,CAAC,MAAM,EAAE,EAAE;QACd,IAAA,yBAAa,EAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtC,IAAA,yBAAW,EAAC,UAAU,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,cAAc,CAAC,UAAU,EAAE,SAAS;IAChD,OAAO,IAAA,wBAAe,EAClB,IAAA,gBAAM,EAAC,SAAS,CAAC,EACjB,sBAAsB,CAAC,UAAU,CAAC,CACrC,CAAC;AACN,CAAC;AALD,wCAKC"}
|
|
@@ -3,7 +3,7 @@ import { IAllFieldOptions } from './index';
|
|
|
3
3
|
export declare const STEROIDS_META_FIELD = "steroids_meta_field";
|
|
4
4
|
export declare const STEROIDS_META_FIELD_DECORATOR = "steroids_meta_field_decorator";
|
|
5
5
|
export declare const STEROIDS_META_KEYS = "steroids_meta_keys";
|
|
6
|
-
export declare type AppColumnType = 'boolean' | 'createTime' | 'date' | 'dateTime' | 'decimal' | 'email' | 'enum' | 'file' | 'html' | 'integer' | 'password' | 'phone' | 'primaryKey' | 'relation' | 'string' | 'text' | 'time' | 'updateTime' | string;
|
|
6
|
+
export declare type AppColumnType = 'boolean' | 'createTime' | 'date' | 'dateTime' | 'decimal' | 'email' | 'enum' | 'file' | 'html' | 'integer' | 'password' | 'phone' | 'primaryKey' | 'relation' | 'relationId' | 'string' | 'text' | 'time' | 'updateTime' | string;
|
|
7
7
|
export declare type JsType = 'boolean' | 'string' | 'number' | string;
|
|
8
8
|
export interface IBaseFieldOptions {
|
|
9
9
|
appType?: AppColumnType;
|
|
@@ -28,5 +28,8 @@ export interface IInternalFieldOptions {
|
|
|
28
28
|
isArray?: boolean;
|
|
29
29
|
}
|
|
30
30
|
export declare const getFieldOptions: (targetClass: any, fieldName: string) => IAllFieldOptions;
|
|
31
|
+
export declare const isMetaClass: (MetaClass: any) => boolean;
|
|
32
|
+
export declare const getMetaFields: (MetaClass: any) => string[];
|
|
33
|
+
export declare const getMetaRelations: (MetaClass: any) => string[];
|
|
31
34
|
export declare const getFieldDecorator: (targetClass: any, fieldName: string) => (...args: any) => PropertyDecorator;
|
|
32
35
|
export declare function BaseField(options?: IBaseFieldOptions, internalOptions?: IInternalFieldOptions): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseField = exports.getFieldDecorator = exports.getFieldOptions = exports.STEROIDS_META_KEYS = exports.STEROIDS_META_FIELD_DECORATOR = exports.STEROIDS_META_FIELD = void 0;
|
|
3
|
+
exports.BaseField = exports.getFieldDecorator = exports.getMetaRelations = exports.getMetaFields = exports.isMetaClass = exports.getFieldOptions = exports.STEROIDS_META_KEYS = exports.STEROIDS_META_FIELD_DECORATOR = exports.STEROIDS_META_FIELD = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const swagger_1 = require("@nestjs/swagger");
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
@@ -11,6 +11,22 @@ const getFieldOptions = (targetClass, fieldName) => {
|
|
|
11
11
|
return targetClass && Reflect.getMetadata(exports.STEROIDS_META_FIELD, targetClass.prototype, fieldName);
|
|
12
12
|
};
|
|
13
13
|
exports.getFieldOptions = getFieldOptions;
|
|
14
|
+
const isMetaClass = (MetaClass) => {
|
|
15
|
+
return Reflect.hasMetadata(exports.STEROIDS_META_KEYS, MetaClass.prototype);
|
|
16
|
+
};
|
|
17
|
+
exports.isMetaClass = isMetaClass;
|
|
18
|
+
const getMetaFields = (MetaClass) => {
|
|
19
|
+
return Reflect.getMetadata(exports.STEROIDS_META_KEYS, MetaClass.prototype) || [];
|
|
20
|
+
};
|
|
21
|
+
exports.getMetaFields = getMetaFields;
|
|
22
|
+
const getMetaRelations = (MetaClass) => {
|
|
23
|
+
return (0, exports.getMetaFields)(MetaClass)
|
|
24
|
+
.filter(fieldName => {
|
|
25
|
+
const options = (0, exports.getFieldOptions)(MetaClass, fieldName);
|
|
26
|
+
return ['relationId', 'relation'].includes(options.appType);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
exports.getMetaRelations = getMetaRelations;
|
|
14
30
|
const getFieldDecorator = (targetClass, fieldName) => {
|
|
15
31
|
const decoratorName = Reflect.getMetadata(exports.STEROIDS_META_FIELD_DECORATOR, targetClass.prototype, fieldName);
|
|
16
32
|
const decorator = require('./index')[decoratorName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/BaseField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,6CAA4C;AAE5C,qDAA2C;AAG9B,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAC5C,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAChE,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/BaseField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,6CAA4C;AAE5C,qDAA2C;AAG9B,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAC5C,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAChE,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAgChD,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,SAAiB,EAAoB,EAAE;IAChF,OAAO,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,2BAAmB,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACrG,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,WAAW,GAAG,CAAC,SAAS,EAAW,EAAE;IAC9C,OAAO,OAAO,CAAC,WAAW,CAAC,0BAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;AACxE,CAAC,CAAA;AAFY,QAAA,WAAW,eAEvB;AAEM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAY,EAAE;IACjD,OAAO,OAAO,CAAC,WAAW,CAAC,0BAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAC9E,CAAC,CAAA;AAFY,QAAA,aAAa,iBAEzB;AAEM,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAY,EAAE;IACpD,OAAO,IAAA,qBAAa,EAAC,SAAS,CAAC;SAC1B,MAAM,CAAC,SAAS,CAAC,EAAE;QAChB,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACtD,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACX,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B;AAEM,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,SAAiB,EAAuC,EAAE;IACrG,MAAM,aAAa,GAAW,OAAO,CAAC,WAAW,CAAC,qCAA6B,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,aAAa,eAAe,SAAS,EAAE,CAAC,CAAC;KACzF;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAE,eAAsC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;IACzH,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3E,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAG3G,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACzE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,OAAO,CAAC,cAAc,CAAC,0BAAkB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,SAAgB,SAAS,CAAC,UAA6B,IAAI,EAAE,kBAAyC,EAAE;IACpG,OAAO,IAAA,wBAAe,EAClB,GAAG;QACC,mBAAmB,+BACf,KAAK,EAAE,IAAI,EACX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,IACR,OAAO,KACV,OAAO,EAAE,eAAe,CAAC,OAAO,IAAI,IAAI,EACxC,OAAO,EAAE,eAAe,CAAC,OAAO,IAAI,IAAI,KACzC,eAAe,CAAC;QACnB,IAAA,qBAAW,EAAC;YACR,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,WAAW,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACvC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;YACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK;YACpC,OAAO,EAAE,OAAO,CAAC,OAAO;SAC3B,CAAC;QACF,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,GAAE;KACnC,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AArBD,8BAqBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtendField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/ExtendField.ts"],"names":[],"mappings":";;;AAAA,2CAAkF;AAOlF,SAAgB,WAAW,CAAC,UAAU,EAAE,UAAwC,EAAE;IAC9E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;QAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,EAAC,eAAe,EAAE,OAAO,EAAC,CAAC;SACxC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ExtendField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/ExtendField.ts"],"names":[],"mappings":";;;AAAA,2CAAkF;AAOlF,SAAgB,WAAW,CAAC,UAAU,EAAE,UAAwC,EAAE;IAC9E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;QAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,EAAC,eAAe,EAAE,OAAO,EAAC,CAAC;SACxC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,YAAY,CAAC;QAC/D,IAAI,CAAC,cAAc,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;SAChG;QAGD,MAAM,aAAa,GAAG,IAAA,2BAAe,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAA,6BAAiB,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAChE,SAAS,iCAAK,aAAa,GAAK,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC,CAAC;AACN,CAAC;AAhBD,kCAgBC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Repository } from 'typeorm';
|
|
1
|
+
import { EntityManager, Repository } from 'typeorm';
|
|
2
2
|
import { ICrudRepository } from '../../usecases/interfaces/ICrudRepository';
|
|
3
3
|
import { SearchInputDto } from '../../usecases/dtos/SearchInputDto';
|
|
4
4
|
import { SearchResultDto } from '../../usecases/dtos/SearchResultDto';
|
|
@@ -16,11 +16,10 @@ export declare class CrudRepository<TModel> implements ICrudRepository<TModel> {
|
|
|
16
16
|
protected createQueryBuilder(conditionOrQuery: ICondition | SearchQuery): SelectQueryBuilder<any>;
|
|
17
17
|
create(model: TModel, transactionHandler?: (callback: any) => Promise<void>): Promise<TModel>;
|
|
18
18
|
update(id: number, model: TModel, transactionHandler?: (callback: any) => Promise<void>): Promise<TModel>;
|
|
19
|
+
save(model: TModel, transactionHandler?: (callback: any) => Promise<void>): Promise<TModel>;
|
|
20
|
+
saveInternal(manager: EntityManager, nextModel: TModel): Promise<void>;
|
|
19
21
|
remove(id: number, transactionHandler?: (callback: any) => Promise<void>): Promise<void>;
|
|
20
|
-
|
|
21
|
-
protected afterSave(prevModel: TModel | null, nextModel: TModel): Promise<void>;
|
|
22
|
-
protected beforeDelete(id: number): Promise<void>;
|
|
23
|
-
protected afterDelete(id: number): Promise<void>;
|
|
22
|
+
removeInternal(manager: EntityManager, id: number): Promise<void>;
|
|
24
23
|
protected modelToEntity(model: any): any;
|
|
25
24
|
protected entityToModel(obj: any): TModel;
|
|
26
25
|
}
|
|
@@ -38,70 +38,44 @@ class CrudRepository {
|
|
|
38
38
|
return dbQuery;
|
|
39
39
|
}
|
|
40
40
|
async create(model, transactionHandler) {
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
return nextModel;
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
entity = await this.dbRepository.manager.save(this.modelToEntity(model));
|
|
56
|
-
nextModel = this.entityToModel(entity);
|
|
57
|
-
}
|
|
58
|
-
return nextModel;
|
|
41
|
+
model[this.primaryKey] = undefined;
|
|
42
|
+
return this.save(model, transactionHandler);
|
|
59
43
|
}
|
|
60
44
|
async update(id, model, transactionHandler) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
let entity;
|
|
66
|
-
let nextModel;
|
|
45
|
+
model[this.primaryKey] = id;
|
|
46
|
+
return this.save(model, transactionHandler);
|
|
47
|
+
}
|
|
48
|
+
async save(model, transactionHandler) {
|
|
67
49
|
if (transactionHandler) {
|
|
68
50
|
await this.dbRepository.manager.transaction(async (manager) => {
|
|
69
51
|
await transactionHandler(async () => {
|
|
70
|
-
await this.
|
|
71
|
-
entity = await manager.save(this.modelToEntity(Object.assign(Object.assign({}, prevModel), model)));
|
|
72
|
-
nextModel = this.entityToModel(entity);
|
|
73
|
-
await this.afterSave(prevModel, nextModel);
|
|
74
|
-
return nextModel;
|
|
52
|
+
await this.saveInternal(manager, model);
|
|
75
53
|
});
|
|
76
54
|
});
|
|
77
55
|
}
|
|
78
56
|
else {
|
|
79
|
-
|
|
80
|
-
nextModel = this.entityToModel(entity);
|
|
57
|
+
await this.saveInternal(this.dbRepository.manager, model);
|
|
81
58
|
}
|
|
82
|
-
return
|
|
59
|
+
return model;
|
|
60
|
+
}
|
|
61
|
+
async saveInternal(manager, nextModel) {
|
|
62
|
+
const entity = await manager.save(this.modelToEntity(nextModel));
|
|
63
|
+
DataMapperHelper_1.DataMapperHelper.applyChangesToModel(nextModel, entity);
|
|
83
64
|
}
|
|
84
65
|
async remove(id, transactionHandler) {
|
|
85
66
|
if (transactionHandler) {
|
|
86
67
|
await this.dbRepository.manager.transaction(async (manager) => {
|
|
87
68
|
await transactionHandler(async () => {
|
|
88
|
-
await this.
|
|
89
|
-
await manager.remove(id);
|
|
90
|
-
await this.afterDelete(id);
|
|
69
|
+
await this.removeInternal(manager, id);
|
|
91
70
|
});
|
|
92
71
|
});
|
|
93
72
|
}
|
|
94
73
|
else {
|
|
95
|
-
await this.dbRepository.manager
|
|
74
|
+
await this.removeInternal(this.dbRepository.manager, id);
|
|
96
75
|
}
|
|
97
76
|
}
|
|
98
|
-
async
|
|
99
|
-
|
|
100
|
-
async afterSave(prevModel, nextModel) {
|
|
101
|
-
}
|
|
102
|
-
async beforeDelete(id) {
|
|
103
|
-
}
|
|
104
|
-
async afterDelete(id) {
|
|
77
|
+
async removeInternal(manager, id) {
|
|
78
|
+
await manager.remove(id);
|
|
105
79
|
}
|
|
106
80
|
modelToEntity(model) {
|
|
107
81
|
return DataMapperHelper_1.DataMapperHelper.modelToEntity(this.dbRepository.manager.connection, 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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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steroidsjs/nest",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.12",
|
|
4
4
|
"scripts": {
|
|
5
|
-
"build": "tsc && copyfiles ./{package.json,LICENSE,README.md} dist/"
|
|
5
|
+
"build": "tsc && copyfiles ./{package.json,LICENSE,README.md} dist/",
|
|
6
|
+
"watch": "tsc -p tsconfig-debug.json"
|
|
6
7
|
},
|
|
7
8
|
"description": "",
|
|
8
9
|
"main": "index.js",
|