5188e842a9
We allow a user-specified type to represent the foreign type of haskell types encountered in the API. This lets users map Integer, Date etc. to representations other than Text, and have those representations available in the returned list of Req. For example, we might want to map a type which has an instance of Generic to both a foreign type name and a class declaration for that foreign type such that it can encode/decode itself to JSON. The previous limitation to a single Text output prevented this case.
56 lines
971 B
Haskell
56 lines
971 B
Haskell
-- | Generalizes all the data needed to make code generation work with
|
|
-- arbitrary programming languages.
|
|
module Servant.Foreign
|
|
( ArgType(..)
|
|
, HeaderArg(..)
|
|
, QueryArg(..)
|
|
, Req(..)
|
|
, Segment(..)
|
|
, SegmentType(..)
|
|
, Url(..)
|
|
-- aliases
|
|
, Path
|
|
, Arg(..)
|
|
, FunctionName(..)
|
|
, PathSegment(..)
|
|
-- lenses
|
|
, argName
|
|
, argType
|
|
, argPath
|
|
, reqUrl
|
|
, reqMethod
|
|
, reqHeaders
|
|
, reqBody
|
|
, reqReturnType
|
|
, reqFuncName
|
|
, path
|
|
, queryStr
|
|
, queryArgName
|
|
, queryArgType
|
|
, headerArg
|
|
-- prisms
|
|
, _PathSegment
|
|
, _HeaderArg
|
|
, _ReplaceHeaderArg
|
|
, _Static
|
|
, _Cap
|
|
, _Normal
|
|
, _Flag
|
|
, _List
|
|
-- rest of it
|
|
, HasForeign(..)
|
|
, HasForeignType(..)
|
|
, GenerateList(..)
|
|
, NoTypes
|
|
, captureArg
|
|
, isCapture
|
|
, defReq
|
|
, listFromAPI
|
|
-- re-exports
|
|
, module Servant.API
|
|
, module Servant.Foreign.Inflections
|
|
) where
|
|
|
|
import Servant.API
|
|
import Servant.Foreign.Internal
|
|
import Servant.Foreign.Inflections
|