})
}
+function isSafePeerTubeFilenameWithoutExtension (filename: string) {
+ return filename.match(/^[a-z0-9-]+$/)
+}
+
function isArray (value: any): value is any[] {
return Array.isArray(value)
}
// The file exists
const file = fileArray[0]
- if (!file || !file.originalname) return false
+ if (!file?.originalname) return false
// Check size
if ((maxSize !== null) && file.size > maxSize) return false
// ---------------------------------------------------------------------------
function toCompleteUUID (value: string) {
- if (isShortUUID(value)) return shortToUUID(value)
+ if (isShortUUID(value)) {
+ try {
+ return shortToUUID(value)
+ } catch {
+ return null
+ }
+ }
return value
}
return value
}
-function toArray (value: any) {
- if (value && isArray(value) === false) return [ value ]
-
- return value
-}
-
function toIntArray (value: any) {
if (!value) return []
if (isArray(value) === false) return [ validator.toInt(value) ]
isBooleanValid,
toIntOrNull,
areUUIDsValid,
- toArray,
toIntArray,
isFileValid,
+ isSafePeerTubeFilenameWithoutExtension,
checkMimetypeRegex
}