tape-slider
Version:
simple way ever to make your website interactive add tape slider for your website
42 lines (41 loc) • 1.46 kB
text/typescript
import { ITapeSliderData } from "./api/ITapeSliderData";
import { ITapeSliderOptions } from "./api/ITapeSliderOptions";
import { IValidatorError } from "./api/IValidatorError";
export class TapeSliderOptionValidator {
private validationErrors: IValidatorError[] = [];
private options: ITapeSliderOptions;
constructor(options: ITapeSliderOptions) {
this.options = options;
}
validate() {
let result = this.validateSpeed(this.options.speed);
if (this.shouldAppendToErrors(result)) {
this.validationErrors.push(result)
}
result = this.validateData(this.options.data);
if (this.shouldAppendToErrors(result)) {
this.validationErrors.push(result)
}
return !this.isFails();
}
isFails(){
if(this.validationErrors.length > 0) return true;
return false;
}
getErrors(){
return this.validationErrors;
}
private shouldAppendToErrors(validatorError: IValidatorError | null) {
if (validatorError !== null) return true;
return false;
}
private validateSpeed(speed: number): IValidatorError | null {
if(speed <1 || speed > 10){
return {name:'speed',error:'speed must be between 1 and 10'};
}
return null;
}
private validateData(data: ITapeSliderData): IValidatorError | null {
return null;
}
}