Files
upstream-mirror 0f4df23290
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
2026-09-16 02:17:34 +05:00

53 lines
1.1 KiB
Go

package inflection
import (
"strings"
upstream "github.com/jinzhu/inflection"
)
type SingularParams struct {
Name string
Exclusions []string
}
func Singular(s SingularParams) string {
for _, exclusion := range s.Exclusions {
if strings.EqualFold(s.Name, exclusion) {
return s.Name
}
}
// Manual fix for incorrect handling of "campus"
//
// https://github.com/sqlc-dev/sqlc/issues/430
// https://github.com/jinzhu/inflection/issues/13
if strings.ToLower(s.Name) == "campus" {
return s.Name
}
// Manual fix for incorrect handling of "meta"
//
// https://github.com/sqlc-dev/sqlc/issues/1217
// https://github.com/jinzhu/inflection/issues/21
if strings.ToLower(s.Name) == "meta" {
return s.Name
}
// Manual fix for incorrect handling of "calories"
//
// https://github.com/sqlc-dev/sqlc/issues/2017
// https://github.com/jinzhu/inflection/issues/23
if strings.ToLower(s.Name) == "calories" {
return "calorie"
}
// Manual fix for incorrect handling of "-ves" suffix
if strings.ToLower(s.Name) == "waves" {
return "wave"
}
if strings.ToLower(s.Name) == "metadata" {
return "metadata"
}
return upstream.Singular(s.Name)
}