@steroidsjs/nest 1.1.8 → 1.1.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/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.js +28 -24
- package/infrastructure/repositories/CrudRepository.js.map +1 -1
- package/package.json +1 -1
- 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 +42 -16
- package/usecases/helpers/DataMapperHelper.js.map +1 -1
- package/usecases/services/CrudService.js +1 -1
- 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
|
@@ -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":"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"}
|
|
@@ -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,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CrudRepository = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
4
5
|
const SearchHelper_1 = require("../../usecases/helpers/SearchHelper");
|
|
5
6
|
const SearchQuery_1 = require("../../usecases/base/SearchQuery");
|
|
6
7
|
const DataMapperHelper_1 = require("../../usecases/helpers/DataMapperHelper");
|
|
8
|
+
const BaseField_1 = require("../decorators/fields/BaseField");
|
|
7
9
|
class CrudRepository {
|
|
8
10
|
constructor() {
|
|
9
11
|
this.primaryKey = 'id';
|
|
@@ -38,46 +40,48 @@ class CrudRepository {
|
|
|
38
40
|
return dbQuery;
|
|
39
41
|
}
|
|
40
42
|
async create(model, transactionHandler) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
const saveHandler = async (manager) => {
|
|
44
|
+
await this.beforeSave(null, model);
|
|
45
|
+
const entity = await manager.save(this.modelToEntity(model));
|
|
46
|
+
DataMapperHelper_1.DataMapperHelper.applyChangesToModel(model, entity);
|
|
47
|
+
await this.afterSave(null, model);
|
|
48
|
+
return model;
|
|
49
|
+
};
|
|
43
50
|
if (transactionHandler) {
|
|
44
51
|
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
|
+
await transactionHandler(async () => saveHandler(manager));
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
55
|
else {
|
|
55
|
-
|
|
56
|
-
nextModel = this.entityToModel(entity);
|
|
56
|
+
await saveHandler(this.dbRepository.manager);
|
|
57
57
|
}
|
|
58
|
-
return
|
|
58
|
+
return model;
|
|
59
59
|
}
|
|
60
60
|
async update(id, model, transactionHandler) {
|
|
61
|
-
const
|
|
61
|
+
const searchQuery = new SearchQuery_1.default();
|
|
62
|
+
searchQuery.condition = { [this.primaryKey]: id };
|
|
63
|
+
searchQuery.relations = (0, BaseField_1.getMetaRelations)(model.constructor)
|
|
64
|
+
.filter(key => (0, lodash_1.has)(model, key));
|
|
65
|
+
const prevModel = await this.findOne(searchQuery);
|
|
62
66
|
if (!prevModel) {
|
|
63
67
|
throw new Error('Not found model by id: ' + id);
|
|
64
68
|
}
|
|
65
|
-
let
|
|
66
|
-
|
|
69
|
+
let nextModel = (0, lodash_1.cloneDeep)(prevModel);
|
|
70
|
+
DataMapperHelper_1.DataMapperHelper.applyChangesToModel(nextModel, model);
|
|
71
|
+
const saveHandler = async (manager) => {
|
|
72
|
+
await this.beforeSave(prevModel, nextModel);
|
|
73
|
+
const entity = await manager.save(this.modelToEntity(nextModel));
|
|
74
|
+
DataMapperHelper_1.DataMapperHelper.applyChangesToModel(nextModel, entity);
|
|
75
|
+
await this.afterSave(prevModel, nextModel);
|
|
76
|
+
return nextModel;
|
|
77
|
+
};
|
|
67
78
|
if (transactionHandler) {
|
|
68
79
|
await this.dbRepository.manager.transaction(async (manager) => {
|
|
69
|
-
await transactionHandler(async () =>
|
|
70
|
-
await this.beforeSave(prevModel, model);
|
|
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;
|
|
75
|
-
});
|
|
80
|
+
await transactionHandler(async () => saveHandler(manager));
|
|
76
81
|
});
|
|
77
82
|
}
|
|
78
83
|
else {
|
|
79
|
-
|
|
80
|
-
nextModel = this.entityToModel(entity);
|
|
84
|
+
await saveHandler(this.dbRepository.manager);
|
|
81
85
|
}
|
|
82
86
|
return nextModel;
|
|
83
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":"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"}
|