all files / src/ build-in-validators.ts

16.67% Statements 2/12
0% Branches 0/3
10% Functions 1/10
16.67% Lines 2/12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41                                                                             
export interface Validator{
    [propName: string]: Function
}
 
export const ValidatorCollection = {
    create(): Validator{
        return {
            'required': (value): boolean => {
                return !(value === undefined || value === null || /^\s*$/.test(value));
            },
            'number': (value): boolean => {
                return /^-?\d+(?:\.\d+)?$/.test(value);
            },
            'email': (value): boolean => {
                return /^(\w+|\.+)((-\w+|\.+)|(\.+\w+))*\@\w+((\.|-)\w+)*\.\w+/.test(value);
            },
            'maxLen': (value, len): boolean => {
                let str = String(value),
                    rps_value = str.replace(/^\s+|\s+$/g, '');
                return rps_value.length <= len;
            },
            'eq': (value: any, compareVal: any): boolean => {
                return value == compareVal;
            },
            'gt': (val1: any, val2: any) => {
                return val1 > val2;
            },
            'gte': (val1: any, val2: any) => {
                return val1 >= val2;
            },
            'lt': (val1: any, val2: any) => {
                return val1 < val2;
            },
            'lte': (val1: any, val2: any) => {
                return val1 <= val2;
            }
        };
 
    }
};