Use builtin camelTo2 function
This commit is contained in:
@@ -6,23 +6,9 @@ module TeaCleaner.Options
|
||||
( jsonOptions
|
||||
) where
|
||||
|
||||
import qualified Data.Aeson.TH as Aeson
|
||||
import Prelude hiding (id)
|
||||
import Data.Char
|
||||
|
||||
applyFirst :: (Char -> Char) -> String -> String
|
||||
applyFirst _ [] = []
|
||||
applyFirst f [x] = [f x]
|
||||
applyFirst f (x:xs) = f x: xs
|
||||
|
||||
-- | Generic casing for symbol separated names
|
||||
symbCase :: String -> String
|
||||
symbCase = u . applyFirst toLower
|
||||
where u [] = []
|
||||
u (x:xs) | isUpper x = '_' : toLower x : u xs
|
||||
| otherwise = x : u xs
|
||||
import qualified Data.Aeson as Aeson
|
||||
|
||||
jsonOptions :: Aeson.Options
|
||||
jsonOptions = Aeson.defaultOptions
|
||||
{ Aeson.fieldLabelModifier = symbCase
|
||||
{ Aeson.fieldLabelModifier = Aeson.camelTo2 '_'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user