Use builtin camelTo2 function
This commit is contained in:
@@ -6,23 +6,9 @@ module TeaCleaner.Options
|
|||||||
( jsonOptions
|
( jsonOptions
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import qualified Data.Aeson.TH as Aeson
|
import qualified Data.Aeson 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
|
|
||||||
|
|
||||||
jsonOptions :: Aeson.Options
|
jsonOptions :: Aeson.Options
|
||||||
jsonOptions = Aeson.defaultOptions
|
jsonOptions = Aeson.defaultOptions
|
||||||
{ Aeson.fieldLabelModifier = symbCase
|
{ Aeson.fieldLabelModifier = Aeson.camelTo2 '_'
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user