From 0ae492da3f51464a812cdeda609598107349cc7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0nan=C3=A7=20G=C3=BCm=C3=BC=C5=9F?= Date: Tue, 21 Feb 2023 15:26:18 +0300 Subject: [PATCH] Refactor toFirstLetterLower This is getting hairy so a map makes sense. --- browser/mapping_test.go | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/browser/mapping_test.go b/browser/mapping_test.go index 6daae98b7..95eef02c7 100644 --- a/browser/mapping_test.go +++ b/browser/mapping_test.go @@ -172,16 +172,19 @@ func toFirstLetterLower(s string) string { // Special cases. // Instead of loading up an acronyms list, just do this. // Good enough for our purposes. - switch s { - default: - return strings.ToLower(s[:1]) + s[1:] - case "URL": - return "url" - case "JSON": - return "json" - case "JSONValue": - return "jsonValue" + special := map[string]string{ + "JSON": "json", + "JSONValue": "jsonValue", + "URL": "url", } + if v, ok := special[s]; ok { + return v + } + if s == "" { + return "" + } + + return strings.ToLower(s[:1]) + s[1:] } // isCustomMapping returns true if the method is a custom mapping