@@ -39,17 +39,23 @@ where
3939import Control.Lens
4040import qualified Data.Aeson.Types as A
4141import Data.OpenApi
42−import Data.OpenApi.Internal.ParamSchema
4342import Data.OpenApi.Internal.Schema
43+import Data.OpenApi.Internal.ParamSchema
4444import Data.Proxy
45−import Data.Text (Text)
46−import qualified Data.Text as T
4745import Data.Typeable
4846import Deriving.Aeson
4947import GHC.Generics
5048import GHC.TypeLits
5149
52−data Description (desc :: Symbol) = Description
50+-- $setup
51+-- >>> import qualified Data.Yaml
52+-- >>> import qualified Data.ByteString.Char8
53+
54+#ifdef SERVANT_DESCRIPTION
55+
56+import Servant.API
57+import Data.Text (Text)
58+import qualified Data.Text as T
5359
5460instance (AesonOptions xs) => AesonOptions (Description f ': xs) where
5561 aesonOptions = aesonOptions @xs
@@ -60,9 +66,7 @@ instance KnownSymbol t => OpenApiOptionModifier (Description t) where
6066toTextLine :: forall s. KnownSymbol s => Text
6167toTextLine = "\n\n" <> T.pack (symbolVal (Proxy @s))
6268
63−-- $setup
64−-- >>> import qualified Data.Yaml
65−-- >>> import qualified Data.ByteString.Char8
69+#endif
6670
6771type CustomOpenApi = CustomJSON
6872
@@ -79,7 +83,7 @@ instance
7983 ToParamSchema (CustomJSON (xs :: k) x)
8084 where
8185 toParamSchema Proxy =
82− genericToParamSchema (openApiOptionsModifier @xs defaultSchemaOptions) (Proxy @x)
86+ genericToParamSchema (openApiOptionsModifier @xs defaultSchemaOptions) (Proxy @x)
8387
8488class OpenApiOptionModifier x where
8589 openApiOptionsModifier :: SchemaOptions -> SchemaOptions
@@ -102,10 +106,8 @@ instance OpenApiOptionModifier UnwrapUnaryRecords where
102106
103107instance OpenApiOptionModifier OmitNothingFields
104108
105−#if MIN_VERSION_deriving_aeson(0,2,4)
106109instance OpenApiOptionModifier RejectUnknownFields where
107110 openApiSchemaModifier = schema . additionalProperties .~ Just (AdditionalPropertiesAllowed False)
108−#endif
109111
110112instance StringModifier f => OpenApiOptionModifier (FieldLabelModifier f) where
111113 openApiOptionsModifier o = o {fieldLabelModifier = getStringModifier @f}