-
Notifications
You must be signed in to change notification settings - Fork 0
/
Validator.ts
24 lines (20 loc) · 855 Bytes
/
Validator.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { Validation } from "./Validation";
import { IValidationOptions, INumberValidationOptions, IStringValidationOptions, ITimeValidationOptions } from "./IValidationOptions";
import "reflect-metadata";
export class Validator {
public static Valid( object: Object ) {
for( var key in object ) {
if( typeof key == "string" || typeof key == "number" || typeof key == "boolean" ) {
var validate = <Validation>Reflect.getMetadata( "validate", object, key );
if( validate !== undefined ) {
if( validate.Validate( object[ key ] ) == false )
return false;
}
}
}
return true;
}
}
export function Validate( options: IValidationOptions ) {
return Reflect.metadata( "validate", new Validation( options ) );
}