git.iko.soy/typeable/swagger2
on master help sign in
Add toInlinedSchema helper
cd7ef9cNickolay Kudasov
src/Data/Swagger/Internal/Schema.hs+9
@@ -201,6 +201,15 @@ inlineSchemas names = inlineSchemasWhen (`elem` names)
201inlineAllSchemas :: Data s => Definitions -> s -> s
201inlineAllSchemas :: Data s => Definitions -> s -> s
202inlineAllSchemas = inlineSchemasWhen (const True)
202inlineAllSchemas = inlineSchemasWhen (const True)
203
203
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+
204-- | Inline all /non-recursive/ schemas for which the definition
213-- | Inline all /non-recursive/ schemas for which the definition
205-- can be found in @'Definitions'@.
214-- can be found in @'Definitions'@.
206inlineNonRecursiveSchemas :: Data s => Definitions -> s -> s
215inlineNonRecursiveSchemas :: Data s => Definitions -> s -> s
src/Data/Swagger/Schema.hs+1
@@ -16,6 +16,7 @@ module Data.Swagger.Schema (
16 toSchema,
16 toSchema,
17 toSchemaRef,
17 toSchemaRef,
18 schemaName,
18 schemaName,
19+ toInlinedSchema,
19
20
20 -- * Generic schema encoding
21 -- * Generic schema encoding
21 genericDeclareNamedSchema,
22 genericDeclareNamedSchema,