File tree Expand file tree Collapse file tree 3 files changed +45
-0
lines changed
src/bundle/Resources/public/ts/validators Expand file tree Collapse file tree 3 files changed +45
-0
lines changed Original file line number Diff line number Diff line change
1
+ export default abstract class BaseValidator {
2
+ abstract getErrorMessage ( ) : string ;
3
+
4
+ abstract validate ( _value : unknown ) : boolean ;
5
+ }
6
+
7
+ export type BaseValidatorType = typeof BaseValidator ;
Original file line number Diff line number Diff line change
1
+ import BaseValidator from './BaseValidator' ;
2
+
3
+ export default class IsEmptyStringValidator extends BaseValidator {
4
+ getErrorMessage ( ) : string {
5
+ return /*@Desc ("This field cannot be empty.")*/ 'ibexa.validators.is_empty_string' ; // TODO: Use translation service when available
6
+ }
7
+
8
+ validate ( value : string ) : boolean {
9
+ return value . trim ( ) !== '' ;
10
+ }
11
+ }
Original file line number Diff line number Diff line change
1
+ import BaseValidator from './BaseValidator' ;
2
+
3
+ export default class ValidatorManager {
4
+ private _validators : BaseValidator [ ] ;
5
+
6
+ constructor ( validators : BaseValidator [ ] = [ ] ) {
7
+ this . _validators = validators ;
8
+ }
9
+
10
+ addValidator ( validator : BaseValidator ) : void {
11
+ this . _validators . push ( validator ) ;
12
+ }
13
+
14
+ removeValidator ( validator : BaseValidator ) : void {
15
+ this . _validators = this . _validators . filter ( ( savedValidator ) => savedValidator !== validator ) ;
16
+ }
17
+
18
+ validate ( value : unknown ) {
19
+ const errors = this . _validators
20
+ . filter ( ( validator : BaseValidator ) => ! validator . validate ( value ) )
21
+ . map ( ( validator : BaseValidator ) => validator . getErrorMessage ( ) ) ;
22
+
23
+ return { isValid : ! errors . length , messages : errors } ;
24
+ }
25
+ }
26
+
27
+ export type ValidatorManagerType = InstanceType < typeof ValidatorManager > ;
You can’t perform that action at this time.
0 commit comments