File tree Expand file tree Collapse file tree 3 files changed +44
-0
lines changed Expand file tree Collapse file tree 3 files changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ import BaseValidator from '../../validators/BaseValidator' ;
2
+
3
+ export interface ValidationResult {
4
+ isValid : boolean ;
5
+ messages : string [ ] ;
6
+ }
7
+
8
+ export const validateInput = < T > ( value : T , validators : BaseValidator < T > [ ] ) : ValidationResult => {
9
+ const errors = validators . reduce ( ( errorsAcc : string [ ] , validator ) => {
10
+ if ( ! validator . validate ( value ) ) {
11
+ return [ ...errorsAcc , validator . getErrorMessage ( ) ] ;
12
+ }
13
+
14
+ return errorsAcc ;
15
+ } , [ ] ) ;
16
+
17
+ return { isValid : ! errors . length , messages : errors } ;
18
+ } ;
Original file line number Diff line number Diff line change
1
+ import { TranslatorType } from '@ids-context/Translator' ;
2
+
3
+ export default abstract class BaseValidator < T > {
4
+ protected _translator : TranslatorType ;
5
+
6
+ constructor ( translator : TranslatorType ) {
7
+ this . _translator = translator ;
8
+ }
9
+
10
+ abstract getErrorMessage ( ) : string ;
11
+
12
+ abstract validate ( value : T ) : boolean ;
13
+ }
Original file line number Diff line number Diff line change
1
+ import BaseValidator from './BaseValidator' ;
2
+
3
+ export default class IsEmptyStringValidator extends BaseValidator < string > {
4
+ getErrorMessage ( ) : string {
5
+ const Translator = this . _translator ;
6
+
7
+ return Translator . trans ( /*@Desc ("This field cannot be empty.")*/ 'ibexa.validators.is_empty_string' ) ;
8
+ }
9
+
10
+ validate ( value : string ) : boolean {
11
+ return value . trim ( ) !== '' ;
12
+ }
13
+ }
You can’t perform that action at this time.
0 commit comments