git.iko.soy/typeable/swagger2
on master help sign in
Add toInlinedSchema helper
commitcd7ef9c018b5f1c99c18b69244e415e3aa1d0bf0 authorNickolay Kudasov <nickolay.kudasov@gmail.com> dateSun 13 Dec 2015, 15:08 (11 years ago) parent11356d0
2 files changed+10
src/Data/Swagger/Internal/Schema.hs+9 src/Data/Swagger/Schema.hs+1
src/Data/Swagger/Internal/Schema.hs+9
@@ -201,6 +201,15 @@ inlineSchemas names = inlineSchemasWhen (`elem` names)
201201inlineAllSchemas :: Data s => Definitions -> s -> s
202202inlineAllSchemas = inlineSchemasWhen (const True)
203203
204+-- | Convert a type into a schema without references.
205+--
206+-- __WARNING:__ @'toInlinedSchema'@ will produce infinite schema
207+-- when inlining recursive schemas.
208+toInlinedSchema :: ToSchema a => proxy a -> Schema
209+toInlinedSchema proxy = inlineAllSchemas defs schema
210+ where
211+ (defs, schema) = runDeclare (declareSchema proxy) mempty
212+
204213-- | Inline all /non-recursive/ schemas for which the definition
205214-- can be found in @'Definitions'@.
206215inlineNonRecursiveSchemas :: Data s => Definitions -> s -> s
src/Data/Swagger/Schema.hs+1
@@ -16,6 +16,7 @@ module Data.Swagger.Schema (
1616 toSchema,
1717 toSchemaRef,
1818 schemaName,
19+ toInlinedSchema,
1920
2021 -- * Generic schema encoding
2122 genericDeclareNamedSchema,