move utilities out of db-specific packages

DestName & NormalCols now live in root dbx package utilizing union
interfaces. SoftDelete helper has been dropped.
This commit is contained in:
Elijah Duffy
2026-01-28 11:57:50 -08:00
parent 20b5dee18a
commit 14686a83cb
4 changed files with 69 additions and 148 deletions

View File

@@ -1,36 +0,0 @@
package dbxshared
import (
"reflect"
"strings"
)
// DestName returns the name of the type passed as `destTypeStruct` as a string,
// normalized for compatibility with the Jet QRM.
func DestName(destTypeStruct any, path ...string) string {
v := reflect.ValueOf(destTypeStruct)
for v.Kind() == reflect.Pointer {
v = v.Elem()
}
destIdent := v.Type().String()
destIdent = destIdent[strings.LastIndex(destIdent, ".")+1:]
for i, p := range path {
if v.Kind() != reflect.Struct {
DBModule.Logger().Error("DestName: path parent is not a struct", "path", destIdent+"."+strings.Join(path[:i+1], "."))
return ""
}
v = v.FieldByName(p)
if !v.IsValid() {
DBModule.Logger().Error("DestName: field does not exist", "path", destIdent+"."+strings.Join(path[:i+1], "."))
return ""
}
destIdent += "." + p
}
return destIdent
}