@steroidsjs/nest 1.0.14 → 1.1.2
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/commands/dbml/dbml2code.js +1 -1
- package/infrastructure/commands/dbml/dbml2code.js.map +1 -1
- package/infrastructure/commands/generate/index.js +18 -10
- package/infrastructure/commands/generate/index.js.map +1 -1
- package/infrastructure/decorators/SteroidsSchema.d.ts +6 -0
- package/infrastructure/decorators/SteroidsSchema.js +11 -0
- package/infrastructure/decorators/SteroidsSchema.js.map +1 -0
- package/infrastructure/decorators/TableFromModel.js.map +1 -1
- package/infrastructure/decorators/fields/BaseField.d.ts +14 -3
- package/infrastructure/decorators/fields/BaseField.js +18 -15
- package/infrastructure/decorators/fields/BaseField.js.map +1 -1
- package/infrastructure/decorators/fields/BooleanField.js +5 -1
- package/infrastructure/decorators/fields/BooleanField.js.map +1 -1
- package/infrastructure/decorators/fields/CoordinateField.d.ts +1 -2
- package/infrastructure/decorators/fields/CoordinateField.js +5 -1
- package/infrastructure/decorators/fields/CoordinateField.js.map +1 -1
- package/infrastructure/decorators/fields/CreateTimeField.js +5 -1
- package/infrastructure/decorators/fields/CreateTimeField.js.map +1 -1
- package/infrastructure/decorators/fields/DateField.js +5 -1
- package/infrastructure/decorators/fields/DateField.js.map +1 -1
- package/infrastructure/decorators/fields/DateTimeField.js +5 -1
- package/infrastructure/decorators/fields/DateTimeField.js.map +1 -1
- package/infrastructure/decorators/fields/DecimalField.d.ts +1 -2
- package/infrastructure/decorators/fields/DecimalField.js +5 -1
- package/infrastructure/decorators/fields/DecimalField.js.map +1 -1
- package/infrastructure/decorators/fields/EmailField.js +5 -1
- package/infrastructure/decorators/fields/EmailField.js.map +1 -1
- package/infrastructure/decorators/fields/EnumField.d.ts +2 -3
- package/infrastructure/decorators/fields/EnumField.js +5 -1
- package/infrastructure/decorators/fields/EnumField.js.map +1 -1
- package/infrastructure/decorators/fields/ExtendField.js +18 -5
- package/infrastructure/decorators/fields/ExtendField.js.map +1 -1
- package/infrastructure/decorators/fields/FileField.d.ts +4 -1
- package/infrastructure/decorators/fields/FileField.js +7 -3
- package/infrastructure/decorators/fields/FileField.js.map +1 -1
- package/infrastructure/decorators/fields/HtmlField.js +5 -1
- package/infrastructure/decorators/fields/HtmlField.js.map +1 -1
- package/infrastructure/decorators/fields/IntegerField.js +5 -1
- package/infrastructure/decorators/fields/IntegerField.js.map +1 -1
- package/infrastructure/decorators/fields/PasswordField.js +5 -1
- package/infrastructure/decorators/fields/PasswordField.js.map +1 -1
- package/infrastructure/decorators/fields/PhoneField.js +5 -1
- package/infrastructure/decorators/fields/PhoneField.js.map +1 -1
- package/infrastructure/decorators/fields/PrimaryKeyField.js +5 -1
- package/infrastructure/decorators/fields/PrimaryKeyField.js.map +1 -1
- package/infrastructure/decorators/fields/RelationField.d.ts +1 -1
- package/infrastructure/decorators/fields/RelationField.js +6 -1
- package/infrastructure/decorators/fields/RelationField.js.map +1 -1
- package/infrastructure/decorators/fields/StringField.js +5 -1
- package/infrastructure/decorators/fields/StringField.js.map +1 -1
- package/infrastructure/decorators/fields/TextField.js +5 -1
- package/infrastructure/decorators/fields/TextField.js.map +1 -1
- package/infrastructure/decorators/fields/TimeField.js +5 -1
- package/infrastructure/decorators/fields/TimeField.js.map +1 -1
- package/infrastructure/decorators/fields/UidField.js +5 -1
- package/infrastructure/decorators/fields/UidField.js.map +1 -1
- package/infrastructure/decorators/fields/UpdateTimeField.js +5 -1
- package/infrastructure/decorators/fields/UpdateTimeField.js.map +1 -1
- package/infrastructure/decorators/fields/index.d.ts +10 -0
- package/infrastructure/decorators/fields/index.js.map +1 -1
- package/infrastructure/helpers/MetaHelper.d.ts +12 -2
- package/infrastructure/helpers/MetaHelper.js +50 -8
- package/infrastructure/helpers/MetaHelper.js.map +1 -1
- package/infrastructure/pipes/SchemaSerializer.d.ts +5 -0
- package/infrastructure/pipes/SchemaSerializer.js +12 -0
- package/infrastructure/pipes/SchemaSerializer.js.map +1 -0
- package/infrastructure/repositories/CrudRepository.d.ts +7 -3
- package/infrastructure/repositories/CrudRepository.js +29 -15
- package/infrastructure/repositories/CrudRepository.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/usecases/base/SearchQuery.d.ts +17 -0
- package/usecases/base/SearchQuery.js +40 -0
- package/usecases/base/SearchQuery.js.map +1 -0
- package/usecases/helpers/DataMapperHelper.d.ts +3 -1
- package/usecases/helpers/DataMapperHelper.js +50 -4
- package/usecases/helpers/DataMapperHelper.js.map +1 -1
- package/usecases/helpers/SearchHelper.d.ts +4 -3
- package/usecases/helpers/SearchHelper.js +9 -7
- package/usecases/helpers/SearchHelper.js.map +1 -1
- package/usecases/helpers/ValidationHelper.d.ts +1 -1
- package/usecases/helpers/ValidationHelper.js +2 -2
- package/usecases/helpers/ValidationHelper.js.map +1 -1
- package/usecases/interfaces/ICrudRepository.d.ts +5 -2
- package/usecases/services/CrudService.d.ts +11 -3
- package/usecases/services/CrudService.js +32 -22
- package/usecases/services/CrudService.js.map +1 -1
- package/infrastructure/decorators/fields/ExtendFields.d.ts +0 -1
- package/infrastructure/decorators/fields/ExtendFields.js +0 -15
- package/infrastructure/decorators/fields/ExtendFields.js.map +0 -1
|
@@ -8,7 +8,11 @@ function PasswordField(options = {}) {
|
|
|
8
8
|
if (!options.label) {
|
|
9
9
|
options.label = 'Пароль';
|
|
10
10
|
}
|
|
11
|
-
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(
|
|
11
|
+
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(options, {
|
|
12
|
+
decoratorName: 'PasswordField',
|
|
13
|
+
appType: 'password',
|
|
14
|
+
jsType: 'string',
|
|
15
|
+
}), (0, typeorm_1.Column)({
|
|
12
16
|
type: 'text',
|
|
13
17
|
length: options.max,
|
|
14
18
|
default: options.defaultValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/PasswordField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,2CAAyD;AAEzD,SAAgB,aAAa,CAAC,UAA6B,EAAE;IACzD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;KAC5B;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,
|
|
1
|
+
{"version":3,"file":"PasswordField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/PasswordField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,2CAAyD;AAEzD,SAAgB,aAAa,CAAC,UAA6B,EAAE;IACzD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;KAC5B;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,eAAe;QAC9B,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,QAAQ;KACnB,CAAC,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,CACL,CAAC;AACN,CAAC;AAlBD,sCAkBC"}
|
|
@@ -9,7 +9,11 @@ function PhoneField(options = {}) {
|
|
|
9
9
|
if (!options.label) {
|
|
10
10
|
options.label = 'Телефон';
|
|
11
11
|
}
|
|
12
|
-
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(
|
|
12
|
+
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(options, {
|
|
13
|
+
decoratorName: 'PhoneField',
|
|
14
|
+
appType: 'phone',
|
|
15
|
+
jsType: 'string',
|
|
16
|
+
}), (0, typeorm_1.Column)({
|
|
13
17
|
type: 'varchar',
|
|
14
18
|
length: options.max || 16,
|
|
15
19
|
default: options.defaultValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/PhoneField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA8C;AAC9C,2CAAyD;AAEzD,SAAgB,UAAU,CAAC,UAA6B,EAAE;IACtD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;KAC7B;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,
|
|
1
|
+
{"version":3,"file":"PhoneField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/PhoneField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA8C;AAC9C,2CAAyD;AAEzD,SAAgB,UAAU,CAAC,UAA6B,EAAE;IACtD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;KAC7B;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,YAAY;QAC3B,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,QAAQ;KACnB,CAAC,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE;QACzB,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,EACF,IAAA,+BAAa,GAAE,CAClB,CAAC;AACN,CAAC;AAnBD,gCAmBC"}
|
|
@@ -8,7 +8,11 @@ function PrimaryKeyField(options = {}) {
|
|
|
8
8
|
if (!options.label) {
|
|
9
9
|
options.label = 'ИД';
|
|
10
10
|
}
|
|
11
|
-
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(
|
|
11
|
+
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(options, {
|
|
12
|
+
decoratorName: 'PrimaryKeyField',
|
|
13
|
+
appType: 'primaryKey',
|
|
14
|
+
jsType: 'number',
|
|
15
|
+
}), (0, typeorm_1.PrimaryGeneratedColumn)({ type: 'integer' }));
|
|
12
16
|
}
|
|
13
17
|
exports.PrimaryKeyField = PrimaryKeyField;
|
|
14
18
|
//# sourceMappingURL=PrimaryKeyField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimaryKeyField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/PrimaryKeyField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+C;AAC/C,2CAAyD;AAEzD,SAAgB,eAAe,CAAC,UAA6B,EAAE;IAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;KACxB;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,
|
|
1
|
+
{"version":3,"file":"PrimaryKeyField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/PrimaryKeyField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+C;AAC/C,2CAAyD;AAEzD,SAAgB,eAAe,CAAC,UAA6B,EAAE;IAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;KACxB;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,iBAAiB;QAChC,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,QAAQ;KACnB,CAAC,EACF,IAAA,gCAAsB,EAAC,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC,CAC5C,CAAC;AACN,CAAC;AAbD,0CAaC"}
|
|
@@ -3,6 +3,6 @@ export interface IRelationFieldOptions extends IBaseFieldOptions {
|
|
|
3
3
|
type: 'OneToOne' | 'ManyToMany' | 'ManyToOne' | 'OneToMany';
|
|
4
4
|
inverseSide?: string | ((object: any) => any);
|
|
5
5
|
isOwningSide?: boolean;
|
|
6
|
-
modelClass: any;
|
|
6
|
+
modelClass: () => any;
|
|
7
7
|
}
|
|
8
8
|
export declare function RelationField(options: IRelationFieldOptions): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -32,7 +32,12 @@ const getOwningDecorator = (relation, owningSide) => {
|
|
|
32
32
|
function RelationField(options) {
|
|
33
33
|
const OwningDecorator = getOwningDecorator(options.type, options.isOwningSide);
|
|
34
34
|
return (0, common_1.applyDecorators)(...[
|
|
35
|
-
(0, BaseField_1.BaseField)(
|
|
35
|
+
(0, BaseField_1.BaseField)(options, {
|
|
36
|
+
decoratorName: 'RelationField',
|
|
37
|
+
appType: 'relation',
|
|
38
|
+
jsType: 'number',
|
|
39
|
+
isArray: ['ManyToMany', 'OneToMany'].includes(options.type),
|
|
40
|
+
}),
|
|
36
41
|
getRelationDecorator(options.type)(() => options.modelClass().name.replace(/Model$/, 'Table'), options.inverseSide, { cascade: ['insert', 'update'], onUpdate: 'CASCADE' }),
|
|
37
42
|
OwningDecorator && OwningDecorator(),
|
|
38
43
|
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/RelationField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA0F;AAC1F,qDAA+C;AAC/C,yDAAuC;AACvC,2CAAyD;AASzD,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAO,EAAE;IAC3C,QAAQ,QAAQ,EAAE;QACd,KAAK,UAAU;YACX,OAAO,kBAAQ,CAAC;QACpB,KAAK,YAAY;YACb,OAAO,oBAAU,CAAC;QACtB,KAAK,WAAW;YACZ,OAAO,mBAAS,CAAC;QACrB,KAAK,WAAW;YACZ,OAAO,mBAAS,CAAC;QACrB;YACI,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;KAC3D;AACL,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE;IAChD,IAAI,QAAQ,KAAK,YAAY,IAAI,UAAU,EAAE;QACzC,OAAO,mBAAS,CAAC;KACpB;IACD,IAAI,QAAQ,KAAK,UAAU,IAAI,UAAU,EAAE;QACvC,OAAO,oBAAU,CAAC;KACrB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA;AAED,SAAgB,aAAa,CAAC,OAA8B;IACxD,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/E,OAAO,IAAA,wBAAe,EAClB,GAAG;QACC,IAAA,qBAAS,
|
|
1
|
+
{"version":3,"file":"RelationField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/RelationField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA0F;AAC1F,qDAA+C;AAC/C,yDAAuC;AACvC,2CAAyD;AASzD,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAO,EAAE;IAC3C,QAAQ,QAAQ,EAAE;QACd,KAAK,UAAU;YACX,OAAO,kBAAQ,CAAC;QACpB,KAAK,YAAY;YACb,OAAO,oBAAU,CAAC;QACtB,KAAK,WAAW;YACZ,OAAO,mBAAS,CAAC;QACrB,KAAK,WAAW;YACZ,OAAO,mBAAS,CAAC;QACrB;YACI,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;KAC3D;AACL,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE;IAChD,IAAI,QAAQ,KAAK,YAAY,IAAI,UAAU,EAAE;QACzC,OAAO,mBAAS,CAAC;KACpB;IACD,IAAI,QAAQ,KAAK,UAAU,IAAI,UAAU,EAAE;QACvC,OAAO,oBAAU,CAAC;KACrB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA;AAED,SAAgB,aAAa,CAAC,OAA8B;IACxD,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/E,OAAO,IAAA,wBAAe,EAClB,GAAG;QACC,IAAA,qBAAS,EAAC,OAAO,EAAE;YACf,aAAa,EAAE,eAAe;YAC9B,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;SAC9D,CAAC;QACF,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAC9B,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC1D,OAAO,CAAC,WAAW,EACnB,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAC,CACvD;QACD,eAAe,IAAI,eAAe,EAAE;QACpC,IAAA,gCAAc,EAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;QAC5B,IAAA,wBAAI,EAAC,OAAO,CAAC,UAAU,CAAC;KAC3B,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AArBD,sCAqBC"}
|
|
@@ -7,7 +7,11 @@ const class_validator_1 = require("class-validator");
|
|
|
7
7
|
const BaseField_1 = require("./BaseField");
|
|
8
8
|
function StringField(options = {}) {
|
|
9
9
|
return (0, common_1.applyDecorators)(...[
|
|
10
|
-
(0, BaseField_1.BaseField)(
|
|
10
|
+
(0, BaseField_1.BaseField)(options, {
|
|
11
|
+
decoratorName: 'StringField',
|
|
12
|
+
appType: 'string',
|
|
13
|
+
jsType: 'string',
|
|
14
|
+
}),
|
|
11
15
|
(0, typeorm_1.Column)({
|
|
12
16
|
type: 'varchar',
|
|
13
17
|
length: options.max,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/StringField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA2E;AAC3E,2CAAyD;AAEzD,SAAgB,WAAW,CAAC,UAA6B,EAAE;IACvD,OAAO,IAAA,wBAAe,EAAC,GAAG;QACtB,IAAA,qBAAS,
|
|
1
|
+
{"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/StringField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA2E;AAC3E,2CAAyD;AAEzD,SAAgB,WAAW,CAAC,UAA6B,EAAE;IACvD,OAAO,IAAA,wBAAe,EAAC,GAAG;QACtB,IAAA,qBAAS,EAAC,OAAO,EAAE;YACf,aAAa,EAAE,aAAa;YAC5B,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,QAAQ;SACnB,CAAC;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,OAAO,CAAC,GAAG;YACnB,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,IAAA,0BAAQ,GAAE;QACV,IAAA,4BAAU,GAAE;QACZ,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,2BAAS,EAAC,OAAO,CAAC,GAAG,CAAC;QACzD,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,2BAAS,EAAC,OAAO,CAAC,GAAG,CAAC;KAC5D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,CAAC;AAlBD,kCAkBC"}
|
|
@@ -5,7 +5,11 @@ const common_1 = require("@nestjs/common");
|
|
|
5
5
|
const typeorm_1 = require("typeorm");
|
|
6
6
|
const BaseField_1 = require("./BaseField");
|
|
7
7
|
function TextField(options = {}) {
|
|
8
|
-
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(
|
|
8
|
+
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(options, {
|
|
9
|
+
decoratorName: 'TextField',
|
|
10
|
+
appType: 'text',
|
|
11
|
+
jsType: 'string',
|
|
12
|
+
}), (0, typeorm_1.Column)({
|
|
9
13
|
type: 'text',
|
|
10
14
|
length: options.max,
|
|
11
15
|
default: options.defaultValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/TextField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,2CAAyD;AAEzD,SAAgB,SAAS,CAAC,UAA6B,EAAE;IACrD,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,
|
|
1
|
+
{"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/TextField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,2CAAyD;AAEzD,SAAgB,SAAS,CAAC,UAA6B,EAAE;IACrD,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,QAAQ;KACnB,CAAC,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,CACL,CAAC;AACN,CAAC;AAdD,8BAcC"}
|
|
@@ -6,7 +6,11 @@ const typeorm_1 = require("typeorm");
|
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
7
7
|
const BaseField_1 = require("./BaseField");
|
|
8
8
|
function TimeField(options = {}) {
|
|
9
|
-
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(
|
|
9
|
+
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(options, {
|
|
10
|
+
decoratorName: 'TimeField',
|
|
11
|
+
appType: 'time',
|
|
12
|
+
jsType: 'string',
|
|
13
|
+
}), (0, typeorm_1.Column)({
|
|
10
14
|
type: 'varchar',
|
|
11
15
|
length: 5,
|
|
12
16
|
default: options.defaultValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/TimeField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA+C;AAC/C,2CAAyD;AAEzD,SAAgB,SAAS,CAAC,UAA6B,EAAE;IACrD,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,
|
|
1
|
+
{"version":3,"file":"TimeField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/TimeField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA+C;AAC/C,2CAAyD;AAEzD,SAAgB,SAAS,CAAC,UAA6B,EAAE;IACrD,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,QAAQ;KACnB,CAAC,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,EACF,IAAA,gCAAc,GAAE,CACnB,CAAC;AACN,CAAC;AAfD,8BAeC"}
|
|
@@ -23,7 +23,11 @@ function UidField(options = {}) {
|
|
|
23
23
|
if (!options.label) {
|
|
24
24
|
options.label = 'Уникальный код';
|
|
25
25
|
}
|
|
26
|
-
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(
|
|
26
|
+
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(options, {
|
|
27
|
+
decoratorName: 'UidField',
|
|
28
|
+
appType: 'uid',
|
|
29
|
+
jsType: 'string',
|
|
30
|
+
}), (0, typeorm_1.Column)({
|
|
27
31
|
type: options.dbType || 'varchar',
|
|
28
32
|
length: 36,
|
|
29
33
|
default: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UidField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/UidField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,+BAAoC;AACpC,qCAAuD;AACvD,kFAA6E;AAC7E,2CAAyD;AAEzD,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;IAC1C,MAAM,UAAU,GAAG,YAAY,GAAG,gBAAgB,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAErB,MAAM,CAAC,UAAU,CAAC,GAAG;YACjB,IAAI,CAAC,YAAY,CAAC,GAAG,IAAA,SAAM,GAAE,CAAC;QAClC,CAAC,CAAC;KACL;IAED,IAAA,gCAAsB,GAAE,CAAC,eAAe,CAAC,IAAI,CAAC;QAC1C,MAAM,EAAE,MAAM,CAAC,WAAW;QAC1B,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,uCAAkB,CAAC,aAAa;KACzC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,SAAgB,QAAQ,CAAC,UAA6B,EAAE;IACpD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC;KACpC;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,
|
|
1
|
+
{"version":3,"file":"UidField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/UidField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,+BAAoC;AACpC,qCAAuD;AACvD,kFAA6E;AAC7E,2CAAyD;AAEzD,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;IAC1C,MAAM,UAAU,GAAG,YAAY,GAAG,gBAAgB,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAErB,MAAM,CAAC,UAAU,CAAC,GAAG;YACjB,IAAI,CAAC,YAAY,CAAC,GAAG,IAAA,SAAM,GAAE,CAAC;QAClC,CAAC,CAAC;KACL;IAED,IAAA,gCAAsB,GAAE,CAAC,eAAe,CAAC,IAAI,CAAC;QAC1C,MAAM,EAAE,MAAM,CAAC,WAAW;QAC1B,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,uCAAkB,CAAC,aAAa;KACzC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,SAAgB,QAAQ,CAAC,UAA6B,EAAE;IACpD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC;KACpC;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,UAAU;QACzB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,QAAQ;KACnB,CAAC,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;QACjC,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK;KAChB,CAAC,EACF,YAAY,CAGf,CAAC;AACN,CAAC;AArBD,4BAqBC"}
|
|
@@ -26,7 +26,11 @@ function UpdateTimeField(options = {}) {
|
|
|
26
26
|
if (!options.label) {
|
|
27
27
|
options.label = 'Обновлен';
|
|
28
28
|
}
|
|
29
|
-
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(
|
|
29
|
+
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(options, {
|
|
30
|
+
decoratorName: 'UpdateTimeField',
|
|
31
|
+
appType: 'updateTime',
|
|
32
|
+
jsType: 'string',
|
|
33
|
+
}), (0, typeorm_1.UpdateDateColumn)({
|
|
30
34
|
type: 'timestamp',
|
|
31
35
|
precision: (0, lodash_1.has)(options, 'precision') ? options.precision : 0,
|
|
32
36
|
default: (0, lodash_1.has)(options, 'defaultValue') ? options.defaultValue : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateTimeField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/UpdateTimeField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,mCAAmC;AACnC,qCAAiE;AACjE,kFAA6E;AAC7E,yDAAuC;AACvC,2CAAyD;AAMzD,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;IACjD,MAAM,UAAU,GAAG,YAAY,GAAG,uBAAuB,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAErB,MAAM,CAAC,UAAU,CAAC,GAAG;YACjB,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC,CAAC;KACL;IAED,CAAC,uCAAkB,CAAC,aAAa,EAAE,uCAAkB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAChF,IAAA,gCAAsB,GAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YAC1C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,UAAU;YACxB,IAAI;SACP,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,SAAgB,eAAe,CAAC,UAAmC,EAAE;IACjE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;KAC9B;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,
|
|
1
|
+
{"version":3,"file":"UpdateTimeField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/UpdateTimeField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,mCAAmC;AACnC,qCAAiE;AACjE,kFAA6E;AAC7E,yDAAuC;AACvC,2CAAyD;AAMzD,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;IACjD,MAAM,UAAU,GAAG,YAAY,GAAG,uBAAuB,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QAErB,MAAM,CAAC,UAAU,CAAC,GAAG;YACjB,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC,CAAC;KACL;IAED,CAAC,uCAAkB,CAAC,aAAa,EAAE,uCAAkB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAChF,IAAA,gCAAsB,GAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YAC1C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,UAAU;YACxB,IAAI;SACP,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,SAAgB,eAAe,CAAC,UAAmC,EAAE;IACjE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QAChB,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;KAC9B;IAED,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,EAAC,OAAO,EAAE;QACf,aAAa,EAAE,iBAAiB;QAChC,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,QAAQ;KACnB,CAAC,EACF,IAAA,0BAAgB,EAAC;QACb,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QACzE,QAAQ,EAAE,IAAA,YAAI,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;KACjE,CAAC,EACF,mBAAmB,EACnB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACnB,CAAC;AACN,CAAC;AApBD,0CAoBC"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
import { IBaseFieldOptions } from './BaseField';
|
|
2
|
+
import { ICreateTimeFieldOptions } from './CreateTimeField';
|
|
3
|
+
import { IDateTimeFieldColumnOptions } from './DateTimeField';
|
|
4
|
+
import { IDecimalFieldOptions } from './DecimalField';
|
|
5
|
+
import { IEnumFieldOptions } from './EnumField';
|
|
6
|
+
import { IExtendFieldOptions } from './ExtendField';
|
|
7
|
+
import { IFileField } from './FileField';
|
|
8
|
+
import { IRelationFieldOptions } from './RelationField';
|
|
9
|
+
import { IUpdateTimeFieldOptions } from './UpdateTimeField';
|
|
1
10
|
export { BooleanField } from './BooleanField';
|
|
2
11
|
export { CoordinateField } from './CoordinateField';
|
|
3
12
|
export { CreateTimeField } from './CreateTimeField';
|
|
@@ -18,3 +27,4 @@ export { TimeField } from './TimeField';
|
|
|
18
27
|
export { UidField } from './UidField';
|
|
19
28
|
export { UpdateTimeField } from './UpdateTimeField';
|
|
20
29
|
export { RelationField } from './RelationField';
|
|
30
|
+
export declare type IAllFieldOptions = IBaseFieldOptions | ICreateTimeFieldOptions | IDateTimeFieldColumnOptions | IDecimalFieldOptions | IEnumFieldOptions | IExtendFieldOptions | IFileField | IRelationFieldOptions | IUpdateTimeFieldOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/index.ts"],"names":[],"mappings":";;;AAUA,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,+CAA4C;AAApC,4GAAA,YAAY,OAAA;AACpB,iDAA8C;AAAtC,8GAAA,aAAa,OAAA;AACrB,2CAAwC;AAAhC,wGAAA,UAAU,OAAA;AAClB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,6CAA0C;AAAlC,0GAAA,WAAW,OAAA;AACnB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,yCAAsC;AAA9B,sGAAA,SAAS,OAAA;AACjB,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,iDAA8C;AAAtC,8GAAA,aAAa,OAAA"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IAllFieldOptions } from '../decorators/fields';
|
|
2
|
+
import { ISchemaOptions } from '../decorators/SteroidsSchema';
|
|
3
|
+
import { IQueryRelation } from '../../usecases/base/SearchQuery';
|
|
2
4
|
export declare class MetaHelper {
|
|
3
|
-
static
|
|
5
|
+
static getFieldOptions(ModelClass: any, fieldName: any): IAllFieldOptions;
|
|
6
|
+
static getFieldNames(AnyClass: any): string[];
|
|
7
|
+
static getSchemaOptions(SchemaClass: any): ISchemaOptions;
|
|
8
|
+
static getSchemaQueryData(SchemaClass: any): {
|
|
9
|
+
select: string[];
|
|
10
|
+
excludeSelect: string[];
|
|
11
|
+
relations: IQueryRelation[];
|
|
12
|
+
};
|
|
13
|
+
static exportModels(types: any[]): {};
|
|
4
14
|
static exportEnums(types: any[]): {};
|
|
5
15
|
}
|
|
@@ -3,17 +3,59 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MetaHelper = void 0;
|
|
4
4
|
const constants_1 = require("@nestjs/swagger/dist/constants");
|
|
5
5
|
const BaseField_1 = require("../decorators/fields/BaseField");
|
|
6
|
+
const SteroidsSchema_1 = require("../decorators/SteroidsSchema");
|
|
6
7
|
class MetaHelper {
|
|
7
|
-
static
|
|
8
|
+
static getFieldOptions(ModelClass, fieldName) {
|
|
9
|
+
return ModelClass && Reflect.hasMetadata(BaseField_1.MODEL_META_KEY, ModelClass.prototype, fieldName)
|
|
10
|
+
? Reflect.getMetadata(BaseField_1.MODEL_META_KEY, ModelClass.prototype, fieldName)
|
|
11
|
+
: null;
|
|
12
|
+
}
|
|
13
|
+
static getFieldNames(AnyClass) {
|
|
14
|
+
return AnyClass && Reflect.hasMetadata(BaseField_1.MODEL_FIELD_NAMES_KEY, AnyClass.prototype)
|
|
15
|
+
? Reflect.getMetadata(BaseField_1.MODEL_FIELD_NAMES_KEY, AnyClass.prototype)
|
|
16
|
+
: null;
|
|
17
|
+
}
|
|
18
|
+
static getSchemaOptions(SchemaClass) {
|
|
19
|
+
return SchemaClass && Reflect.hasMetadata(SteroidsSchema_1.SCHEMA_META_KEY, SchemaClass)
|
|
20
|
+
? Reflect.getMetadata(SteroidsSchema_1.SCHEMA_META_KEY, SchemaClass)
|
|
21
|
+
: null;
|
|
22
|
+
}
|
|
23
|
+
static getSchemaQueryData(SchemaClass) {
|
|
24
|
+
const options = this.getSchemaOptions(SchemaClass);
|
|
25
|
+
const relations = [];
|
|
26
|
+
(MetaHelper.getFieldNames(SchemaClass) || []).forEach(fieldName => {
|
|
27
|
+
const modelMeta = MetaHelper.getFieldOptions(SchemaClass, fieldName);
|
|
28
|
+
if (modelMeta.appType === 'relation') {
|
|
29
|
+
if (/Ids?$/.exec(fieldName)) {
|
|
30
|
+
relations.push({
|
|
31
|
+
isId: true,
|
|
32
|
+
name: fieldName.replace(/Ids?$/, ''),
|
|
33
|
+
alias: fieldName,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
relations.push({
|
|
38
|
+
name: fieldName,
|
|
39
|
+
alias: fieldName,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
select: (options === null || options === void 0 ? void 0 : options.select) || undefined,
|
|
46
|
+
excludeSelect: (options === null || options === void 0 ? void 0 : options.excludeSelect) || undefined,
|
|
47
|
+
relations: relations.length > 0 ? relations : undefined,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
static exportModels(types) {
|
|
8
51
|
const result = {};
|
|
9
52
|
types.forEach(type => {
|
|
10
|
-
const
|
|
11
|
-
result[
|
|
12
|
-
attributes:
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
return Object.assign({ attribute, type: modelMeta.appType || 'string', label: modelMeta.label || apiMeta.description, required: apiMeta.required }, (modelMeta.items ? { items: modelMeta.items } : {}));
|
|
53
|
+
const fieldNames = this.getFieldNames(type);
|
|
54
|
+
result[type.name] = {
|
|
55
|
+
attributes: fieldNames.map(fieldName => {
|
|
56
|
+
const apiMeta = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, type.prototype, fieldName);
|
|
57
|
+
const modelMeta = Reflect.getMetadata(BaseField_1.MODEL_META_KEY, type.prototype, fieldName);
|
|
58
|
+
return Object.assign({ attribute: fieldName, type: modelMeta.appType || 'string', label: modelMeta.label || apiMeta.description, required: apiMeta.required }, (modelMeta.items ? { items: modelMeta.items } : {}));
|
|
17
59
|
}),
|
|
18
60
|
};
|
|
19
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaHelper.js","sourceRoot":"","sources":["../../../src/infrastructure/helpers/MetaHelper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MetaHelper.js","sourceRoot":"","sources":["../../../src/infrastructure/helpers/MetaHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ClassSerializerInterceptor, PlainLiteralObject } from '@nestjs/common';
|
|
2
|
+
import { ClassTransformOptions } from '@nestjs/common/interfaces/external/class-transform-options.interface';
|
|
3
|
+
export declare class SchemaSerializer extends ClassSerializerInterceptor {
|
|
4
|
+
transformToPlain(data: any, options: ClassTransformOptions): PlainLiteralObject;
|
|
5
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaSerializer = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const DataMapperHelper_1 = require("../../usecases/helpers/DataMapperHelper");
|
|
6
|
+
class SchemaSerializer extends common_1.ClassSerializerInterceptor {
|
|
7
|
+
transformToPlain(data, options) {
|
|
8
|
+
return DataMapperHelper_1.DataMapperHelper.anyToPlain(data);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.SchemaSerializer = SchemaSerializer;
|
|
12
|
+
//# sourceMappingURL=SchemaSerializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaSerializer.js","sourceRoot":"","sources":["../../../src/infrastructure/pipes/SchemaSerializer.ts"],"names":[],"mappings":";;;AAAA,2CAA8E;AAE9E,8EAAyE;AAEzE,MAAa,gBAAiB,SAAQ,mCAA0B;IAC5D,gBAAgB,CAAC,IAAS,EAAE,OAA8B;QAEtD,OAAO,mCAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACJ;AALD,4CAKC"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { Repository } from 'typeorm';
|
|
2
2
|
import { ICrudRepository } from '../../usecases/interfaces/ICrudRepository';
|
|
3
3
|
import { SearchInputDto } from '../../usecases/dtos/SearchInputDto';
|
|
4
|
-
import { ICondition } from '../helpers/ConditionHelper';
|
|
5
4
|
import { SearchResultDto } from '../../usecases/dtos/SearchResultDto';
|
|
5
|
+
import SearchQuery from '../../usecases/base/SearchQuery';
|
|
6
|
+
import { ICondition } from '../helpers/ConditionHelper';
|
|
7
|
+
import { SelectQueryBuilder } from 'typeorm/query-builder/SelectQueryBuilder';
|
|
6
8
|
export declare class CrudRepository<TModel> implements ICrudRepository<TModel> {
|
|
7
9
|
primaryKey: string;
|
|
8
10
|
dbRepository: Repository<any>;
|
|
9
11
|
protected modelClass: any;
|
|
10
12
|
init(dbRepository: Repository<any>, modelClass: any): void;
|
|
11
|
-
search(dto: SearchInputDto): Promise<SearchResultDto<TModel>>;
|
|
12
|
-
findOne(
|
|
13
|
+
search(dto: SearchInputDto, searchQuery: SearchQuery): Promise<SearchResultDto<TModel>>;
|
|
14
|
+
findOne(conditionOrQuery: ICondition | SearchQuery): Promise<TModel | null>;
|
|
15
|
+
findMany(conditionOrQuery: ICondition | SearchQuery): Promise<TModel[]>;
|
|
16
|
+
protected createQueryBuilder(conditionOrQuery: ICondition | SearchQuery): SelectQueryBuilder<any>;
|
|
13
17
|
create(model: TModel): Promise<TModel>;
|
|
14
18
|
update(id: number, model: TModel): Promise<TModel>;
|
|
15
19
|
remove(id: number): Promise<void>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CrudRepository = void 0;
|
|
4
|
-
const class_transformer_1 = require("class-transformer");
|
|
5
4
|
const SearchHelper_1 = require("../../usecases/helpers/SearchHelper");
|
|
6
|
-
const
|
|
5
|
+
const SearchQuery_1 = require("../../usecases/base/SearchQuery");
|
|
6
|
+
const DataMapperHelper_1 = require("../../usecases/helpers/DataMapperHelper");
|
|
7
7
|
class CrudRepository {
|
|
8
8
|
constructor() {
|
|
9
9
|
this.primaryKey = 'id';
|
|
@@ -12,16 +12,28 @@ class CrudRepository {
|
|
|
12
12
|
this.dbRepository = dbRepository;
|
|
13
13
|
this.modelClass = modelClass;
|
|
14
14
|
}
|
|
15
|
-
async search(dto) {
|
|
16
|
-
const result = await SearchHelper_1.SearchHelper.search(this.dbRepository, dto);
|
|
15
|
+
async search(dto, searchQuery) {
|
|
16
|
+
const result = await SearchHelper_1.SearchHelper.search(this.dbRepository, dto, searchQuery, null);
|
|
17
17
|
result.items = result.items.map(item => this.entityToModel(item));
|
|
18
18
|
return result;
|
|
19
19
|
}
|
|
20
|
-
async findOne(
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
async findOne(conditionOrQuery) {
|
|
21
|
+
const dbQuery = this.createQueryBuilder(conditionOrQuery);
|
|
22
|
+
const row = await dbQuery.getOne();
|
|
23
|
+
return row ? this.entityToModel(row) : null;
|
|
24
|
+
}
|
|
25
|
+
async findMany(conditionOrQuery) {
|
|
26
|
+
const dbQuery = this.createQueryBuilder(conditionOrQuery);
|
|
27
|
+
const rows = await dbQuery.getMany();
|
|
28
|
+
return rows.map(row => this.entityToModel(row));
|
|
29
|
+
}
|
|
30
|
+
createQueryBuilder(conditionOrQuery) {
|
|
31
|
+
const searchQuery = !(conditionOrQuery instanceof SearchQuery_1.default)
|
|
32
|
+
? new SearchQuery_1.default({ condition: conditionOrQuery })
|
|
33
|
+
: conditionOrQuery;
|
|
34
|
+
const dbQuery = this.dbRepository.createQueryBuilder();
|
|
35
|
+
SearchQuery_1.default.prepare(this.dbRepository, dbQuery, searchQuery);
|
|
36
|
+
return dbQuery;
|
|
25
37
|
}
|
|
26
38
|
async create(model) {
|
|
27
39
|
const entity = await this.dbRepository.manager.save(this.modelToEntity(model));
|
|
@@ -29,6 +41,9 @@ class CrudRepository {
|
|
|
29
41
|
}
|
|
30
42
|
async update(id, model) {
|
|
31
43
|
const prevModel = await this.findOne({ [this.primaryKey]: id });
|
|
44
|
+
if (!prevModel) {
|
|
45
|
+
throw new Error('Not found model by id: ' + id);
|
|
46
|
+
}
|
|
32
47
|
const savedEntity = await this.dbRepository.save(this.modelToEntity(Object.assign(Object.assign({}, prevModel), model)));
|
|
33
48
|
return this.entityToModel(savedEntity);
|
|
34
49
|
}
|
|
@@ -36,14 +51,13 @@ class CrudRepository {
|
|
|
36
51
|
await this.dbRepository.delete(id);
|
|
37
52
|
}
|
|
38
53
|
modelToEntity(model) {
|
|
39
|
-
|
|
40
|
-
return entity;
|
|
54
|
+
return this.dbRepository.create(model);
|
|
41
55
|
}
|
|
42
56
|
entityToModel(obj) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return
|
|
57
|
+
if (!this.modelClass) {
|
|
58
|
+
throw new Error('Property modelClass is not set in repository: ' + this.constructor.name);
|
|
59
|
+
}
|
|
60
|
+
return DataMapperHelper_1.DataMapperHelper.anyToModel(obj, this.modelClass);
|
|
47
61
|
}
|
|
48
62
|
}
|
|
49
63
|
exports.CrudRepository = CrudRepository;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":"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"}
|