diff options
Diffstat (limited to 'src/api')
| -rw-r--r-- | src/api/validator.ts | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/api/validator.ts b/src/api/validator.ts index d75fe6420b..2562535c02 100644 --- a/src/api/validator.ts +++ b/src/api/validator.ts @@ -2,7 +2,7 @@ import * as mongo from 'mongodb'; type Type = 'id' | 'string' | 'number' | 'boolean' | 'array' | 'object'; -export default <T>(value: any, isRequired: boolean, type: Type): [T, string] => { +export default <T>(value: any, isRequired: boolean, type: Type, validator?: (any) => boolean): [T, string] => { if (value === undefined || value === null) { if (isRequired) { return [null, 'is-required'] @@ -49,5 +49,11 @@ export default <T>(value: any, isRequired: boolean, type: Type): [T, string] => break; } + if (validator) { + if (!validator(value)) { + return [null, 'invalid-format']; + } + } + return [value, null]; }; |