nuclei/v2/pkg/utils/utils.go
forgedhallpass 2c7d8befcb RES-84 # Improve Nuclei CLI interface (WIP)
* Rename of Info.Severity -> Info.SeverityHolder, Info.Author -> Info.Authors to reflect the underlying data
* extended the IsEmpty(interface{}) to handle maps
2021-07-13 11:12:03 +03:00

44 lines
821 B
Go

package utils
import (
"reflect"
"strings"
)
func isEmpty(value interface{}) bool {
if value == nil {
return true
}
reflectValue := reflect.ValueOf(value)
actualValueInterface := reflectValue.Interface()
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)
}