@steroidsjs/nest 1.4.4 → 1.4.7
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/package.json +1 -1
- package/src/infrastructure/decorators/fields/StringField.d.ts +3 -0
- package/src/infrastructure/decorators/fields/StringField.js +7 -3
- package/src/infrastructure/decorators/fields/StringField.js.map +1 -1
- package/src/usecases/services/CrudService.d.ts +2 -0
- package/src/usecases/services/CrudService.js +20 -16
- package/src/usecases/services/CrudService.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/package.json
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { IBaseFieldOptions } from './BaseField';
|
|
2
2
|
export interface IStringFieldOptions extends IBaseFieldOptions {
|
|
3
3
|
unique?: boolean;
|
|
4
|
+
isStringConstraintMessage?: string;
|
|
5
|
+
minConstraintMessage?: string;
|
|
6
|
+
maxConstraintMessage?: string;
|
|
4
7
|
}
|
|
5
8
|
export declare function StringField(options?: IStringFieldOptions): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -21,11 +21,15 @@ function StringField(options = {}) {
|
|
|
21
21
|
}),
|
|
22
22
|
(0, class_validator_1.IsString)({
|
|
23
23
|
each: options.isArray,
|
|
24
|
-
message: 'Должна быть строка',
|
|
24
|
+
message: options.isStringConstraintMessage || 'Должна быть строка',
|
|
25
25
|
}),
|
|
26
26
|
!options.required && (0, class_validator_1.IsOptional)(),
|
|
27
|
-
typeof options.min === 'number' && (0, class_validator_1.MinLength)(options.min
|
|
28
|
-
|
|
27
|
+
typeof options.min === 'number' && (0, class_validator_1.MinLength)(options.min, {
|
|
28
|
+
message: options.minConstraintMessage
|
|
29
|
+
}),
|
|
30
|
+
typeof options.max === 'number' && (0, class_validator_1.MaxLength)(options.max, {
|
|
31
|
+
message: options.maxConstraintMessage
|
|
32
|
+
}),
|
|
29
33
|
].filter(Boolean));
|
|
30
34
|
}
|
|
31
35
|
exports.StringField = StringField;
|
|
@@ -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;
|
|
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;AASzD,SAAgB,WAAW,CAAC,UAA+B,EAAE;IACzD,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,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,IAAA,0BAAQ,EAAC;YACL,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,OAAO,EAAE,OAAO,CAAC,yBAAyB,IAAI,oBAAoB;SACrE,CAAC;QACF,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,GAAE;QACjC,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,2BAAS,EAAC,OAAO,CAAC,GAAG,EAAE;YACtD,OAAO,EAAE,OAAO,CAAC,oBAAoB;SACxC,CAAC;QACF,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,2BAAS,EAAC,OAAO,CAAC,GAAG,EAAE;YACtD,OAAO,EAAE,OAAO,CAAC,oBAAoB;SACxC,CAAC;KACL,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,CAAC;AA1BD,kCA0BC"}
|
|
@@ -7,6 +7,8 @@ export declare class CrudService<TModel, TSearchDto = ISearchInputDto, TSaveDto
|
|
|
7
7
|
create<TSchema>(dto: TSaveDto, context?: ContextDto | null, schemaClass?: Type<TSchema>): Promise<Type<TSchema>>;
|
|
8
8
|
update<TSchema>(id: number | string, dto: TSaveDto, context?: ContextDto | null): Promise<TModel>;
|
|
9
9
|
update<TSchema>(id: number | string, dto: TSaveDto, context?: ContextDto | null, schemaClass?: Type<TSchema>): Promise<Type<TSchema>>;
|
|
10
|
+
save<TSchema>(id: number | string, dto: TSaveDto, context?: ContextDto | null): Promise<TModel>;
|
|
11
|
+
save<TSchema>(id: number | string, dto: TSaveDto, context?: ContextDto | null, schemaClass?: Type<TSchema>): Promise<Type<TSchema>>;
|
|
10
12
|
saveInternal(prevModel: TModel | null, nextModel: TModel, context?: ContextDto): Promise<void>;
|
|
11
13
|
checkHasRelatedModels(id: string | number, service: CrudService<any>): Promise<void>;
|
|
12
14
|
remove(rawId: number | string, context?: ContextDto): Promise<void>;
|
|
@@ -10,34 +10,38 @@ const exceptions_1 = require("../exceptions");
|
|
|
10
10
|
const ReadService_1 = require("./ReadService");
|
|
11
11
|
class CrudService extends ReadService_1.ReadService {
|
|
12
12
|
async create(dto, context = null, schemaClass = null) {
|
|
13
|
-
|
|
14
|
-
await this.validate(dto, {
|
|
15
|
-
nextModel,
|
|
16
|
-
context,
|
|
17
|
-
});
|
|
18
|
-
await this.saveInternal(null, nextModel, context);
|
|
19
|
-
return schemaClass ? this.findById(nextModel[this.primaryKey], context, schemaClass) : nextModel;
|
|
13
|
+
return this.save(null, dto, context, schemaClass);
|
|
20
14
|
}
|
|
21
15
|
async update(rawId, dto, context = null, schemaClass = null) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
16
|
+
return this.save(rawId, dto, context, schemaClass);
|
|
17
|
+
}
|
|
18
|
+
async save(rawId, dto, context = null, schemaClass = null) {
|
|
19
|
+
const id = rawId ? (0, lodash_1.toInteger)(rawId) : null;
|
|
20
|
+
let prevModel = null;
|
|
21
|
+
if (id) {
|
|
22
|
+
prevModel = await this.findOne((new SearchQuery_1.default())
|
|
23
|
+
.where({ [this.primaryKey]: id })
|
|
24
|
+
.with((0, BaseField_1.getMetaRelations)(dto.constructor)));
|
|
25
|
+
if (!prevModel) {
|
|
26
|
+
throw new Error('Not found model by id: ' + id);
|
|
27
|
+
}
|
|
28
28
|
}
|
|
29
29
|
const ModelClass = this.modelClass;
|
|
30
30
|
const nextModel = new ModelClass();
|
|
31
|
-
|
|
31
|
+
if (prevModel) {
|
|
32
|
+
DataMapper_1.DataMapper.applyValues(nextModel, prevModel);
|
|
33
|
+
}
|
|
32
34
|
DataMapper_1.DataMapper.applyValues(nextModel, this.dtoToModel(dto));
|
|
33
|
-
|
|
35
|
+
if (id) {
|
|
36
|
+
nextModel[this.primaryKey] = id;
|
|
37
|
+
}
|
|
34
38
|
await this.validate(dto, {
|
|
35
39
|
prevModel,
|
|
36
40
|
nextModel,
|
|
37
41
|
context,
|
|
38
42
|
});
|
|
39
43
|
await this.saveInternal(prevModel, nextModel, context);
|
|
40
|
-
return schemaClass ? this.findById(
|
|
44
|
+
return schemaClass ? this.findById(nextModel[this.primaryKey], context, schemaClass) : nextModel;
|
|
41
45
|
}
|
|
42
46
|
async saveInternal(prevModel, nextModel, context) {
|
|
43
47
|
await this.repository.save(nextModel, async (save) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudService.js","sourceRoot":"","sources":["../../../../src/usecases/services/CrudService.ts"],"names":[],"mappings":";;;AACA,mCAA+C;AAC/C,sDAAiD;AAEjD,qDAA8C;AAE9C,gFAAwG;AACxG,0EAAqE;AACrE,8CAA4C;AAC5C,+CAA0C;AAK1C,MAAa,WAEU,SAAQ,yBAA+B;IAe1D,KAAK,CAAC,MAAM,CACR,GAAa,EACb,UAAsB,IAAI,EAC1B,cAA6B,IAAI;QAEjC,
|
|
1
|
+
{"version":3,"file":"CrudService.js","sourceRoot":"","sources":["../../../../src/usecases/services/CrudService.ts"],"names":[],"mappings":"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"}
|