json-autotype 1.0.14 → 1.0.15
raw patch · 3 files changed
+17/−5 lines, 3 filesdep +yamldep ~aesondep ~lensPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: yaml
Dependency ranges changed: aeson, lens
API changes (from Hackage documentation)
- Data.Aeson.AutoType.Alternative: instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (a Data.Aeson.AutoType.Alternative.:|: b)
- Data.Aeson.AutoType.Alternative: instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (a Data.Aeson.AutoType.Alternative.:|: b)
- Data.Aeson.AutoType.Alternative: instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (a Data.Aeson.AutoType.Alternative.:|: b)
- Data.Aeson.AutoType.Format: instance GHC.Generics.Constructor Data.Aeson.AutoType.Format.C1_0DeclState
- Data.Aeson.AutoType.Format: instance GHC.Generics.Datatype Data.Aeson.AutoType.Format.D1DeclState
- Data.Aeson.AutoType.Format: instance GHC.Generics.Selector Data.Aeson.AutoType.Format.S1_0_0DeclState
- Data.Aeson.AutoType.Format: instance GHC.Generics.Selector Data.Aeson.AutoType.Format.S1_0_1DeclState
- Data.Aeson.AutoType.Pretty: instance GHC.Generics.Constructor Data.Aeson.AutoType.Pretty.C1_0Value
- Data.Aeson.AutoType.Pretty: instance GHC.Generics.Constructor Data.Aeson.AutoType.Pretty.C1_1Value
- Data.Aeson.AutoType.Pretty: instance GHC.Generics.Constructor Data.Aeson.AutoType.Pretty.C1_2Value
- Data.Aeson.AutoType.Pretty: instance GHC.Generics.Constructor Data.Aeson.AutoType.Pretty.C1_3Value
- Data.Aeson.AutoType.Pretty: instance GHC.Generics.Constructor Data.Aeson.AutoType.Pretty.C1_4Value
- Data.Aeson.AutoType.Pretty: instance GHC.Generics.Constructor Data.Aeson.AutoType.Pretty.C1_5Value
- Data.Aeson.AutoType.Pretty: instance GHC.Generics.Datatype Data.Aeson.AutoType.Pretty.D1Value
- Data.Aeson.AutoType.Type: instance GHC.Generics.Constructor Data.Aeson.AutoType.Type.C1_0Dict
- Data.Aeson.AutoType.Type: instance GHC.Generics.Constructor Data.Aeson.AutoType.Type.C1_0Type
- Data.Aeson.AutoType.Type: instance GHC.Generics.Constructor Data.Aeson.AutoType.Type.C1_1Type
- Data.Aeson.AutoType.Type: instance GHC.Generics.Constructor Data.Aeson.AutoType.Type.C1_2Type
- Data.Aeson.AutoType.Type: instance GHC.Generics.Constructor Data.Aeson.AutoType.Type.C1_3Type
- Data.Aeson.AutoType.Type: instance GHC.Generics.Constructor Data.Aeson.AutoType.Type.C1_4Type
- Data.Aeson.AutoType.Type: instance GHC.Generics.Constructor Data.Aeson.AutoType.Type.C1_5Type
- Data.Aeson.AutoType.Type: instance GHC.Generics.Constructor Data.Aeson.AutoType.Type.C1_6Type
- Data.Aeson.AutoType.Type: instance GHC.Generics.Constructor Data.Aeson.AutoType.Type.C1_7Type
- Data.Aeson.AutoType.Type: instance GHC.Generics.Datatype Data.Aeson.AutoType.Type.D1Dict
- Data.Aeson.AutoType.Type: instance GHC.Generics.Datatype Data.Aeson.AutoType.Type.D1Type
- Data.Aeson.AutoType.Type: instance GHC.Generics.Selector Data.Aeson.AutoType.Type.S1_0_0Dict
+ Data.Aeson.AutoType.Alternative: instance (GHC.Classes.Eq b, GHC.Classes.Eq a) => GHC.Classes.Eq (a Data.Aeson.AutoType.Alternative.:|: b)
+ Data.Aeson.AutoType.Alternative: instance (GHC.Classes.Ord b, GHC.Classes.Ord a) => GHC.Classes.Ord (a Data.Aeson.AutoType.Alternative.:|: b)
+ Data.Aeson.AutoType.Alternative: instance (GHC.Show.Show b, GHC.Show.Show a) => GHC.Show.Show (a Data.Aeson.AutoType.Alternative.:|: b)
Files
- GenerateJSONParser.hs +6/−1
- changelog.md +6/−0
- json-autotype.cabal +5/−4
GenerateJSONParser.hs view
@@ -30,6 +30,7 @@ import Data.Aeson.AutoType.Format import Data.Aeson.AutoType.CodeGen import Data.Aeson.AutoType.Util+import qualified Data.Yaml as Yaml import HFlags -- * Command line flags@@ -39,6 +40,7 @@ defineFlag "t:test" False "Try to run generated parser after" defineFlag "d:debug" False "Set this flag to see more debugging info" defineFlag "y:typecheck" True "Set this flag to typecheck after unification"+defineFlag "yaml" False "Parse inputs as YAML instead of JSON" defineFlag "p:preprocessor" False "Work as GHC preprocessor (skip preprocessor pragma)" defineFlag "fakeFlag" True "Ignore this flag - it doesn't exist!!! It is workaround to library problem." @@ -63,7 +65,7 @@ withFileOrHandle inputFilename ReadMode stdin $ \hInput -> -- First we decode JSON input into Aeson's Value type do Text.hPutStrLn stderr $ "Processing " `Text.append` Text.pack (show inputFilename)- decodedJSON :: Maybe Value <- decode <$> BSL.hGetContents hInput+ decodedJSON :: Maybe Value <- decoder <$> BSL.hGetContents hInput --let decodedJSON :: Maybe Value = decodeValue input -- myTrace ("Decoded JSON: " ++ pretty decoded) case decodedJSON of@@ -76,6 +78,9 @@ (v `typeCheck` t) `unless` fatal ("Typecheck against base type failed for " `Text.append` Text.pack inputFilename) return $ Just (inputFilename, t, v)+ where+ decoder | flags_yaml = Yaml.decode . BSL.toStrict+ | otherwise = decode -- | Perform preprocessing of JSON input to drop initial pragma. preprocess :: BSL.ByteString -> BSL.ByteString
changelog.md view
@@ -1,5 +1,11 @@ Changelog =========+ 1.0.15 Dec 2016+ * Support YAML input.++ 1.0.14 May 2016+ * Update to latest lens.+ 1.0.13 Mar 2016 * Bumped up hint upper bound for v0.5.
json-autotype.cabal view
@@ -1,6 +1,6 @@ -- Build information for the package. name: json-autotype-version: 1.0.14+version: 1.0.15 synopsis: Automatic type declaration for JSON input data description: Generates datatype declarations with Aeson's "FromJSON" instances from a set of example ".json" files.@@ -62,14 +62,14 @@ Data.Aeson.AutoType.Util build-depends: base >=4.3 && <4.10, GenericPretty >=1.2 && <1.3,- aeson >=0.7 && <0.12,+ aeson >=0.7 && <0.13, bytestring >=0.9 && <0.11, containers >=0.3 && <0.6, filepath >=1.3 && <1.5, hashable >=1.2 && <1.3, ---hint >=0.4 && <0.6, hflags >=0.3 && <0.5,- lens >=4.1 && <4.15,+ lens >=4.1 && <4.16, mmap >=0.5 && <0.6, mtl >=2.1 && <2.3, pretty >=1.1 && <1.3,@@ -117,7 +117,8 @@ text >=1.1 && <1.4, uniplate >=1.6 && <1.7, unordered-containers >=0.2 && <0.3,- vector >=0.9 && <0.12+ vector >=0.9 && <0.12,+ yaml >=0.8 && <0.9 -- hs-source-dirs: default-language: Haskell2010