package nstore import ( "strings" "unicode" ) func sanitizeText(value string) string { value = strings.Map(func(r rune) rune { if unicode.IsPrint(r) || r == '\n' { return r } return -1 }, value) return strings.TrimSpace(value) } func sanitizeValue(value any) any { switch value := value.(type) { case string: return sanitizeText(value) } return value } func databaseSlug(value string) string { value = sanitizeText(value) value = strings.ReplaceAll(value, " ", "_") value = titleCaseToSnakeCase(value) return value } func titleCaseToSnakeCase(value string) string { var result []rune for i, r := range value { if i > 0 && unicode.IsUpper(r) && unicode.IsLower(rune(value[i-1])) { result = append(result, '_') } result = append(result, unicode.ToLower(r)) } return string(result) } func generateColumnPlaceholders(colCount int) string { if colCount <= 0 { return "" } out := strings.Repeat("?,", colCount) return out[:len(out)-1] }