]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/custom-validators/misc.ts
Fix express validator
[github/Chocobozzz/PeerTube.git] / server / helpers / custom-validators / misc.ts
index 3ef38fce1d0b135625647e24dfbbd3671d86595a..1b7e00431094aef26d0d15369b7f53467e7171ea 100644 (file)
@@ -1,6 +1,7 @@
 import 'multer'
 import * as validator from 'validator'
 import { sep } from 'path'
+import toBoolean = require('validator/lib/toBoolean')
 
 function exists (value: any) {
   return value !== undefined && value !== null
@@ -46,9 +47,21 @@ function isBooleanValid (value: any) {
 }
 
 function toIntOrNull (value: string) {
-  if (value === 'null') return null
+  const v = toValueOrNull(value)
+
+  if (v === null || v === undefined) return v
+  if (typeof v === 'number') return v
+
+  return validator.toInt(v)
+}
+
+function toBooleanOrNull (value: any) {
+  const v = toValueOrNull(value)
+
+  if (v === null || v === undefined) return v
+  if (typeof v === 'boolean') return v
 
-  return validator.toInt(value)
+  return toBoolean(v)
 }
 
 function toValueOrNull (value: string) {
@@ -110,6 +123,7 @@ export {
   isIdOrUUIDValid,
   isDateValid,
   toValueOrNull,
+  toBooleanOrNull,
   isBooleanValid,
   toIntOrNull,
   toArray,