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