open-code-review/internal/config/allowlist/allowed_ext.go
2026-05-20 22:03:52 +08:00

34 lines
720 B
Go

package allowedext
import (
_ "embed"
"encoding/json"
"strings"
"sync"
)
//go:embed supported_file_types.json
var defaultData []byte
var (
supported map[string]bool
initOnce sync.Once
)
func initMap() {
var exts []string
if err := json.Unmarshal(defaultData, &exts); err != nil {
panic("allowedext: failed to parse supported_file_types.json: " + err.Error())
}
supported = make(map[string]bool, len(exts))
for _, e := range exts {
supported[strings.ToLower(e)] = true
}
}
// IsAllowedExt returns true when the given file extension is in the supported types list.
// The check is case-insensitive.
func IsAllowedExt(ext string) bool {
initOnce.Do(initMap)
return supported[strings.ToLower(ext)]
}