+function isNotEmptyIntArray (value: any) {
+ return Array.isArray(value) && value.every(v => validator.isInt('' + v)) && value.length !== 0
+}
+
+function isNotEmptyStringArray (value: any) {
+ return Array.isArray(value) && value.every(v => typeof v === 'string' && v.length !== 0) && value.length !== 0
+}
+
+function isArrayOf (value: any, validator: (value: any) => boolean) {
+ return isArray(value) && value.every(v => validator(v))
+}
+
+function isDateValid (value: string) {
+ return exists(value) && validator.isISO8601(value)
+}
+
+function isIdValid (value: string) {
+ return exists(value) && validator.isInt('' + value)
+}
+
+function isUUIDValid (value: string) {
+ return exists(value) && validator.isUUID('' + value, 4)
+}
+
+function areUUIDsValid (values: string[]) {
+ return isArray(values) && values.every(v => isUUIDValid(v))
+}
+
+function isIdOrUUIDValid (value: string) {
+ return isIdValid(value) || isUUIDValid(value)
+}
+
+function isBooleanValid (value: any) {
+ return typeof value === 'boolean' || (typeof value === 'string' && validator.isBoolean(value))
+}
+
+function isIntOrNull (value: any) {
+ return value === null || validator.isInt('' + value)
+}
+