nuclei/v2/pkg/utils/utils.go
forgedhallpass 5d89bb8056 RES-84 # Improve Nuclei CLI interface
* fixed issues reported by the linter
2021-07-19 21:04:08 +03:00

45 lines
880 B
Go

package utils
import (
"reflect"
"strings"
)
func isEmpty(value interface{}) bool {
if value == nil {
return true
}
reflectValue := reflect.ValueOf(value)
actualValueInterface := reflectValue.Interface()
// nolint:exhaustive //default branch handles other cases
switch reflect.TypeOf(value).Kind() {
case reflect.String:
reflectedValue := actualValueInterface.(string)
return strings.TrimSpace(reflectedValue) == ""
case reflect.Slice, reflect.Array, reflect.Map:
return reflectValue.Len() == 0
case reflect.Int32:
return IsEmpty(string(actualValueInterface.(rune)))
default:
if reflectValue.IsZero() {
return true
}
return false
}
}
func IsEmpty(value ...interface{}) bool {
for _, current := range value {
if IsNotEmpty(current) {
return false
}
}
return true
}
func IsNotEmpty(value interface{}) bool {
return !isEmpty(value)
}