Only accept public comments
[oweals/peertube.git] / server / helpers / custom-validators / misc.ts
1 import * as validator from 'validator'
2
3 function exists (value: any) {
4   return value !== undefined && value !== null
5 }
6
7 function isArray (value: any) {
8   return Array.isArray(value)
9 }
10
11 function isDateValid (value: string) {
12   return exists(value) && validator.isISO8601(value)
13 }
14
15 function isIdValid (value: string) {
16   return exists(value) && validator.isInt('' + value)
17 }
18
19 function isUUIDValid (value: string) {
20   return exists(value) && validator.isUUID('' + value, 4)
21 }
22
23 function isIdOrUUIDValid (value: string) {
24   return isIdValid(value) || isUUIDValid(value)
25 }
26
27 function isBooleanValid (value: string) {
28   return typeof value === 'boolean' || (typeof value === 'string' && validator.isBoolean(value))
29 }
30
31 // ---------------------------------------------------------------------------
32
33 export {
34   exists,
35   isArray,
36   isIdValid,
37   isUUIDValid,
38   isIdOrUUIDValid,
39   isDateValid,
40   isBooleanValid
41 }