packages feed

jsonschema-gen 0.4.0.0 → 0.4.1.0

raw patch · 4 files changed

+26/−15 lines, 4 filesdep ~aesondep ~basedep ~bytestringPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: aeson, base, bytestring, containers, scientific, tagged, text, time, unordered-containers, vector

API changes (from Hackage documentation)

Files

changelog.md view
@@ -1,3 +1,8 @@+0.4.1.0++* Add support for `GHC 8.2.*`+* Add support for `aeson-1.2.*`+ 0.4.0.0  * Remove upper bound on depedencies.
jsonschema-gen.cabal view
@@ -1,5 +1,5 @@ name:                jsonschema-gen-version:             0.4.0.0+version:             0.4.1.0 synopsis:            JSON Schema generator from Algebraic data type description:         This library contains a JSON Schema generator. homepage:            https://github.com/yuga/jsonschema-gen@@ -25,7 +25,7 @@                        Data.JSON.Schema.Generator.Generic                        Data.JSON.Schema.Generator.Types -  build-depends:       base >=4.6 && <4.10+  build-depends:       base >=4.6 && <4.11                      , bytestring >=0.10                      , containers >=0.5                      , tagged >=0.7
src/Data/JSON/Schema/Generator/Convert.hs view
@@ -146,8 +146,8 @@ jsOneOf _ _ = []  jsRequired :: A.Options -> Schema -> [(Text,A.Value)]-jsRequired       A.Options {A.omitNothingFields = True}  SCObject {scRequired = r  } = [("required", array r)]-jsRequired opts@(A.Options {A.omitNothingFields = _   }) SCObject {scProperties = p} = [("required", array . map fst $ toMap opts p)]+jsRequired      (A.omitNothingFields -> True) SCObject {scRequired = r  } = [("required", array r)]+jsRequired opts@(A.omitNothingFields -> _   ) SCObject {scProperties = p} = [("required", array . map fst $ toMap opts p)] jsRequired _ _ = []  jsDefinitions :: A.Options -> Schema -> [(Text,A.Value)]@@ -199,7 +199,7 @@ consAsEnum s = error ("conAsEnum could not handle: " ++ show s)  conAsObject :: A.Options -> SchemaChoice -> A.Value-conAsObject opts@(A.Options {A.sumEncoding = A.TwoElemArray}) sc =+conAsObject opts@(A.sumEncoding -> A.TwoElemArray) sc =     object $         if sctTitle sc == "" then [] else [ ("title", string $ sctTitle sc) ]         `mappend`@@ -219,12 +219,10 @@         ]  conAsObject' :: A.Options -> SchemaChoice -> A.Value-conAsObject' opts@(A.Options {A.sumEncoding = A.TaggedObject tFld cFld}) sc = conAsTag   opts (pack tFld) (pack cFld) sc-conAsObject' opts@(A.Options {A.sumEncoding = A.TwoElemArray          }) sc = conAsArray opts sc-conAsObject' opts@(A.Options {A.sumEncoding = A.ObjectWithSingleField }) sc = conAsMap   opts sc-#if MIN_VERSION_aeson(1,0,0)-conAsObject' _opts@(A.Options {A.sumEncoding = A.UntaggedValue })       _sc = error "Unsupported option"-#endif+conAsObject' opts@(A.sumEncoding -> A.TaggedObject tFld cFld) sc = conAsTag   opts (pack tFld) (pack cFld) sc+conAsObject' opts@(A.sumEncoding -> A.TwoElemArray          ) sc = conAsArray opts sc+conAsObject' opts@(A.sumEncoding -> A.ObjectWithSingleField ) sc = conAsMap   opts sc+conAsObject' _opts {- @(A.sumEncoding -> A.UntaggedValue) -} _sc = error "Unsupported option"  conAsTag :: A.Options -> Text -> Text ->  SchemaChoice -> A.Value conAsTag opts tFld cFld (SCChoiceEnum  tag _)      = object [(tFld, object [("enum", array [tag])]), (cFld, conToArray opts [])]@@ -258,8 +256,8 @@     , ("additionalProperties", false)     ]   where-    required A.Options {A.omitNothingFields = True} = array rq-    required A.Options {A.omitNothingFields = _   } = array . map fst $ toMap opts mp+    required (A.omitNothingFields -> True) = array rq+    required (A.omitNothingFields -> _   ) = array . map fst $ toMap opts mp  toMap :: A.Options -> [(Text,Schema)] -> [(Text,A.Value)] toMap opts mp = map (\(n,v) -> (n,convert' False opts v)) mp
tests/Main.hs view
@@ -115,10 +115,14 @@ --  optToStr :: String -> A.Options -> String-optToStr symbol A.Options { A.allNullaryToStringTag = a, A.omitNothingFields = b, A.sumEncoding = c } =+optToStr symbol aopts =     "# " ++ symbol ++ " (allNullaryToStringTag: " ++ show a                    ++ ", omitNothingFields: " ++ show b                    ++ ", sumEncoding: " ++ showC c ++ ")"+  where+    a = A.allNullaryToStringTag aopts+    b = A.omitNothingFields aopts+    c = A.sumEncoding aopts  showC :: A.SumEncoding -> String showC A.TwoElemArray = "array"@@ -178,8 +182,12 @@       where         modName = moduleName (undefined :: D1 d f p)         typName = datatypeName (undefined :: D1 d f p)-    schemaSuffix opts A.Options { A.allNullaryToStringTag = a, A.omitNothingFields = b, A.sumEncoding = c } _ =+    schemaSuffix opts aopts _ =         show a ++ "." ++ show b ++ "." ++ showC c ++ G.schemaIdSuffix opts+      where+        a = A.allNullaryToStringTag aopts+        b = A.omitNothingFields aopts+        c = A.sumEncoding aopts  schemaOptions :: G.Options schemaOptions = G.defaultOptions