Skip to content

Commit

Permalink
fix: lint
Browse files Browse the repository at this point in the history
  • Loading branch information
czy88840616 committed Feb 18, 2025
1 parent d3b12a7 commit d21c55b
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 24 deletions.
4 changes: 2 additions & 2 deletions packages/validation-class-validator/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ import { ValidatorOptions } from 'class-validator';

declare module '@midwayjs/core/dist/interface' {
interface MidwayConfig {
classValidator?: ValidatorOptions
classValidator?: ValidatorOptions;
}
}
}
2 changes: 1 addition & 1 deletion packages/validation-class-validator/jest.setup.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
jest.setTimeout(30000);
jest.setTimeout(30000);
47 changes: 26 additions & 21 deletions packages/validation-class-validator/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
import { IMidwayContainer, MidwayConfigService } from '@midwayjs/core';
import { IValidationService, ValidateResult, ValidationExtendOptions } from '@midwayjs/validation';
import {
IValidationService,
ValidateResult,
ValidationExtendOptions,
} from '@midwayjs/validation';
import { validateSync, ValidatorOptions } from 'class-validator';
import { plainToInstance } from 'class-transformer';

Expand All @@ -8,45 +12,46 @@ export class ClassValidatorService implements IValidationService<any> {

async init(container: IMidwayContainer) {
const configService = container.get(MidwayConfigService);
this.options = configService.getConfiguration('validation')?.classValidatorOptions || {};
this.options =
configService.getConfiguration('validation')?.classValidatorOptions || {};
}

validateWithSchema(schema: any, value: any, validationOptions: ValidationExtendOptions, validatorOptions: ValidatorOptions = {}): ValidateResult {
validateWithSchema(
schema: any,
value: any,
validationOptions: ValidationExtendOptions,
validatorOptions: ValidatorOptions = {}
): ValidateResult {
const instance = plainToInstance(schema, value);
const errors = validateSync(instance, {
...this.options,
...validatorOptions
...validatorOptions,
});

if (errors.length > 0) {
const message = errors.map(error => {
if (error.constraints) {
return Object.values(error.constraints).join(', ');
}
return '';
}).filter(Boolean).join('; ');
const message = errors
.map(error => {
if (error.constraints) {
return Object.values(error.constraints).join(', ');
}
return '';
})
.filter(Boolean)
.join('; ');

return {
status: false,
message,
error: errors[0]
error: errors[0],
};
}

return {
status: true,
value: instance
value: instance,
};
}

validate(schema: any, value: any, options?: ValidationExtendOptions): ValidateResult {
const defaultOptions: ValidationExtendOptions = {
locale: 'en',
fallbackLocale: 'en'
};
return this.validateWithSchema(schema, value, options || defaultOptions, {});
}

getSchema(schema: any) {
return schema;
}
Expand All @@ -70,4 +75,4 @@ export class ClassValidatorService implements IValidationService<any> {

export default async (container: IMidwayContainer) => {
return new ClassValidatorService();
};
};

0 comments on commit d21c55b

Please sign in to comment.