Yoga.HTTP.API.Route.OpenAPI
- Package
- purescript-yoga-http-api
- Repository
- rowtype-yoga/purescript-yoga-http-api
#RenderHeadersSchema Source
class RenderHeadersSchema :: Row Type -> Constraintclass RenderHeadersSchema (headers :: Row Type) where
Render headers row as OpenAPI parameter array
Members
renderHeadersSchema :: Proxy headers -> Array Foreign
Instances
(RowToList headers rl, RenderHeadersSchemaRL rl headers) => RenderHeadersSchema headers
#RenderHeadersSchemaRL Source
class RenderHeadersSchemaRL :: RowList Type -> Row Type -> Constraintclass RenderHeadersSchemaRL (rl :: RowList Type) (headers :: Row Type) | rl -> headers where
Helper class using RowList
Members
renderHeadersSchemaRL :: Proxy rl -> Array Foreign
Instances
RenderHeadersSchemaRL Nil ()(RenderHeadersSchemaRL tail tailRow, Cons name BearerToken tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name BearerToken tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Description desc BearerToken) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Description desc BearerToken) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Example ex BearerToken) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Example ex BearerToken) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Deprecated BearerToken) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Deprecated BearerToken) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name BasicAuth tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name BasicAuth tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Description desc BasicAuth) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Description desc BasicAuth) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Example ex BasicAuth) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Example ex BasicAuth) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Deprecated BasicAuth) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Deprecated BasicAuth) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name ApiKeyHeader tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name ApiKeyHeader tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Description desc ApiKeyHeader) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Description desc ApiKeyHeader) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Example ex ApiKeyHeader) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Example ex ApiKeyHeader) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Deprecated ApiKeyHeader) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Deprecated ApiKeyHeader) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name DigestAuth tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name DigestAuth tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Description desc DigestAuth) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Description desc DigestAuth) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Example ex DigestAuth) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Example ex DigestAuth) tail) headers(RenderHeadersSchemaRL tail tailRow, Cons name (Deprecated DigestAuth) tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name (Deprecated DigestAuth) tail) headers(IsSymbol name, HeaderValueType ty, HasDescription ty, HasExample ty, HasFormat ty, HasMinimum ty, HasMaximum ty, HasPattern ty, HasMinLength ty, HasMaxLength ty, HasTitle ty, HasNullable ty, HasDefault ty, HasDeprecated ty, HasEnum ty, HasExamples ty, RenderHeadersSchemaRL tail tailRow, Cons name ty tailRow headers, Lacks name tailRow) => RenderHeadersSchemaRL (Cons name ty tail) headers
#RenderPathParamsSchema Source
class RenderPathParamsSchema :: Row Type -> Constraintclass RenderPathParamsSchema (params :: Row Type) where
Render path parameters row as OpenAPI parameter array
Members
renderPathParamsSchema :: Proxy params -> Array Foreign
Instances
(RowToList params rl, RenderPathParamsSchemaRL rl params) => RenderPathParamsSchema params
#RenderPathParamsSchemaRL Source
class RenderPathParamsSchemaRL :: RowList Type -> Row Type -> Constraintclass RenderPathParamsSchemaRL (rl :: RowList Type) (params :: Row Type) | rl -> params where
Helper class using RowList
Members
renderPathParamsSchemaRL :: Proxy rl -> Array Foreign
Instances
RenderPathParamsSchemaRL Nil ()(IsSymbol name, HeaderValueType ty, HasDescription ty, HasExample ty, HasFormat ty, HasMinimum ty, HasMaximum ty, HasPattern ty, HasMinLength ty, HasMaxLength ty, HasTitle ty, HasNullable ty, HasDefault ty, HasDeprecated ty, HasEnum ty, HasExamples ty, RenderPathParamsSchemaRL tail tailRow, Cons name ty tailRow params, Lacks name tailRow) => RenderPathParamsSchemaRL (Cons name ty tail) params
#RenderQueryParamsSchema Source
class RenderQueryParamsSchema :: Row Type -> Constraintclass RenderQueryParamsSchema (params :: Row Type) where
Render query parameters row as OpenAPI parameter array
Members
renderQueryParamsSchema :: Proxy params -> Array Foreign
Instances
(RowToList params rl, RenderQueryParamsSchemaRL rl params) => RenderQueryParamsSchema params
#RenderQueryParamsSchemaRL Source
class RenderQueryParamsSchemaRL :: RowList Type -> Row Type -> Constraintclass RenderQueryParamsSchemaRL (rl :: RowList Type) (params :: Row Type) | rl -> params where
Helper class using RowList
Members
renderQueryParamsSchemaRL :: Proxy rl -> Array Foreign
Instances
RenderQueryParamsSchemaRL Nil ()(IsSymbol name, HeaderValueType ty, HasDescription ty, HasExample ty, HasFormat ty, HasMinimum ty, HasMaximum ty, HasPattern ty, HasMinLength ty, HasMaxLength ty, HasTitle ty, HasNullable ty, HasDefault ty, HasDeprecated ty, HasEnum ty, HasExamples ty, RenderQueryParamsSchemaRL tail tailRow, Cons name ty tailRow params, Lacks name tailRow) => RenderQueryParamsSchemaRL (Cons name ty tail) params
#RenderCookieParamsSchema Source
class RenderCookieParamsSchema :: Row Type -> Constraintclass RenderCookieParamsSchema (params :: Row Type) where
Render cookie parameters row as OpenAPI parameter array
Members
renderCookieParamsSchema :: Proxy params -> Array Foreign
Instances
(RowToList params rl, RenderCookieParamsSchemaRL rl params) => RenderCookieParamsSchema params
#RenderCookieParamsSchemaRL Source
class RenderCookieParamsSchemaRL :: RowList Type -> Row Type -> Constraintclass RenderCookieParamsSchemaRL (rl :: RowList Type) (params :: Row Type) | rl -> params where
Helper class using RowList
Members
renderCookieParamsSchemaRL :: Proxy rl -> Array Foreign
Instances
RenderCookieParamsSchemaRL Nil ()(RenderCookieParamsSchemaRL tail tailRow, Cons name ApiKeyCookie tailRow params, Lacks name tailRow) => RenderCookieParamsSchemaRL (Cons name ApiKeyCookie tail) params(RenderCookieParamsSchemaRL tail tailRow, Cons name (Description desc ApiKeyCookie) tailRow params, Lacks name tailRow) => RenderCookieParamsSchemaRL (Cons name (Description desc ApiKeyCookie) tail) params(RenderCookieParamsSchemaRL tail tailRow, Cons name (Example ex ApiKeyCookie) tailRow params, Lacks name tailRow) => RenderCookieParamsSchemaRL (Cons name (Example ex ApiKeyCookie) tail) params(RenderCookieParamsSchemaRL tail tailRow, Cons name (Deprecated ApiKeyCookie) tailRow params, Lacks name tailRow) => RenderCookieParamsSchemaRL (Cons name (Deprecated ApiKeyCookie) tail) params(IsSymbol name, HeaderValueType ty, HasDescription ty, HasExample ty, HasFormat ty, HasMinimum ty, HasMaximum ty, HasPattern ty, HasMinLength ty, HasMaxLength ty, HasTitle ty, HasNullable ty, HasDefault ty, HasDeprecated ty, HasEnum ty, HasExamples ty, RenderCookieParamsSchemaRL tail tailRow, Cons name ty tailRow params, Lacks name tailRow) => RenderCookieParamsSchemaRL (Cons name ty tail) params
#GetContentType Source
class GetContentType (encoding :: Type) whereExtract MIME type from encoding wrapper types
Members
getContentType :: Proxy encoding -> String
Instances
GetContentType NoBodyGetContentType (JSON a)GetContentType (FormData a)GetContentType (MultipartFormData a)GetContentType PlainTextGetContentType (XML a)(IsSymbol mime) => GetContentType (CustomContentType mime a)GetContentType StringGetContentType IntGetContentType NumberGetContentType BooleanGetContentType Unit(GetContentType a) => GetContentType (Array a)(GetContentType a) => GetContentType (Maybe a)GetContentType (Record row)(GetContentType a) => GetContentType (Description desc a)(GetContentType a) => GetContentType (Example ex a)(GetContentType a) => GetContentType (Format fmt a)(GetContentType a) => GetContentType (Nullable a)(GetContentType a) => GetContentType (Deprecated a)(GetContentType a) => GetContentType (Enum a)(GetContentType a) => GetContentType (Schema name a)(GetContentType a) => GetContentType (Minimum v a)(GetContentType a) => GetContentType (Maximum v a)(GetContentType a) => GetContentType (Pattern pat a)(GetContentType a) => GetContentType (MinLength v a)(GetContentType a) => GetContentType (MaxLength v a)(GetContentType a) => GetContentType (Title t a)(GetContentType a) => GetContentType (Default val a)
#RenderRequestBodySchema Source
class RenderRequestBodySchema (encoding :: Type) whereRender request body schema for OpenAPI requestBody section Returns Nothing for NoBody, Just requestBody object for JSON/FormData
Members
renderRequestBodySchema :: Proxy encoding -> Maybe { content :: Foreign, required :: Boolean }
Instances
RenderRequestBodySchema NoBody(RenderJSONSchema a) => RenderRequestBodySchema (JSON a)(RenderJSONSchema a) => RenderRequestBodySchema (FormData a)(RenderJSONSchema a) => RenderRequestBodySchema (MultipartFormData a)RenderRequestBodySchema PlainText(RenderJSONSchema a) => RenderRequestBodySchema (XML a)(IsSymbol mime, RenderJSONSchema a) => RenderRequestBodySchema (CustomContentType mime a)(RenderJSONSchema (Record row)) => RenderRequestBodySchema (Record row)
#RenderResponseHeadersSchema Source
class RenderResponseHeadersSchema :: Row Type -> Constraintclass RenderResponseHeadersSchema (headers :: Row Type) where
Render response headers row as OpenAPI header object (for responses section)
Members
renderResponseHeadersSchema :: Proxy headers -> Object ResponseHeaderObject
Instances
(RowToList headers rl, RenderResponseHeadersSchemaRL rl headers) => RenderResponseHeadersSchema headers
#RenderResponseHeadersSchemaRL Source
class RenderResponseHeadersSchemaRL :: RowList Type -> Row Type -> Constraintclass RenderResponseHeadersSchemaRL (rl :: RowList Type) (headers :: Row Type) | rl -> headers where
Helper class using RowList
Members
Instances
RenderResponseHeadersSchemaRL Nil ()(IsSymbol name, HeaderValueType ty, HasDescription ty, HasExample ty, HasDeprecated ty, HasFormat ty, HasEnum ty, RenderResponseHeadersSchemaRL tail tailRow, Cons name ty tailRow headers, Lacks name tailRow) => RenderResponseHeadersSchemaRL (Cons name ty tail) headers
#RenderResponseSchema Source
class RenderResponseSchema :: Row Type -> Type -> Constraintclass RenderResponseSchema (headers :: Row Type) (body :: Type) where
Render complete response object for OpenAPI (status 200 with headers and body)
Members
renderResponseSchema :: Proxy headers -> Proxy body -> { "200" :: { content :: Foreign, description :: String, headers :: Object ResponseHeaderObject } }
Instances
(RenderResponseHeadersSchema headers, RenderJSONSchema body, GetContentType body) => RenderResponseSchema headers body
#RenderVariantResponseSchema Source
class RenderVariantResponseSchema :: Row Type -> Constraintclass RenderVariantResponseSchema (variantRow :: Row Type) where
Render variant response schema as OpenAPI responses object Maps each variant case to an HTTP status code and response object
Members
renderVariantResponseSchema :: Proxy variantRow -> Object ResponseObject
Instances
(RowToList variantRow rl, RenderVariantResponseSchemaRL rl) => RenderVariantResponseSchema variantRow
#RenderVariantResponseSchemaRL Source
class RenderVariantResponseSchemaRL :: RowList Type -> Constraintclass RenderVariantResponseSchemaRL (rl :: RowList Type) where
Helper class that processes RowList for variant responses
Members
Instances
RenderVariantResponseSchemaRL Nil(IsSymbol label, StatusCodeMap label, ToResponse recordType headers body, RenderResponseHeadersSchema headers, RenderJSONSchema body, GetContentType body, RenderVariantResponseSchemaRL tail) => RenderVariantResponseSchemaRL (Cons label recordType tail)
#RenderJSONSchema Source
class RenderJSONSchema :: forall k. k -> Constraintclass RenderJSONSchema ty where
Render a PureScript type as an OpenAPI JSON schema
Members
renderJSONSchema :: Proxy ty -> Foreign
Instances
RenderJSONSchema StringRenderJSONSchema IntRenderJSONSchema NumberRenderJSONSchema BooleanRenderJSONSchema Unit(RenderJSONSchema a) => RenderJSONSchema (Array a)(RenderJSONSchema a) => RenderJSONSchema (Maybe a)(RowToList row rl, RenderRecordSchemaRL rl row) => RenderJSONSchema (Record row)(RenderJSONSchema a) => RenderJSONSchema (JSON a)(RenderJSONSchema a) => RenderJSONSchema (FormData a)(RenderJSONSchema a) => RenderJSONSchema (MultipartFormData a)RenderJSONSchema PlainText(RenderJSONSchema a) => RenderJSONSchema (XML a)(RenderJSONSchema a) => RenderJSONSchema (CustomContentType mime a)RenderJSONSchema NoBody(RenderJSONSchema a, IsSymbol desc) => RenderJSONSchema (Description desc a)(RenderJSONSchema a, IsSymbol ex) => RenderJSONSchema (Example ex a)(RenderJSONSchema a, IsSymbol fmt) => RenderJSONSchema (Format fmt a)(RenderJSONSchema a) => RenderJSONSchema (Nullable a)(RenderJSONSchema a) => RenderJSONSchema (Deprecated a)(RenderJSONSchema a, HasEnum (Enum a)) => RenderJSONSchema (Enum a)(RenderJSONSchema a) => RenderJSONSchema (Examples examplesRow a)(IsSymbol name, RenderJSONSchema a) => RenderJSONSchema (Schema name a)(RenderJSONSchema a, Reflectable v Int) => RenderJSONSchema (MinLength v a)(RenderJSONSchema a, Reflectable v Int) => RenderJSONSchema (MaxLength v a)(RenderJSONSchema a, Reflectable v Int) => RenderJSONSchema (Minimum v a)(RenderJSONSchema a, Reflectable v Int) => RenderJSONSchema (Maximum v a)(RenderJSONSchema a, IsSymbol pat) => RenderJSONSchema (Pattern pat a)(RenderJSONSchema a, IsSymbol t) => RenderJSONSchema (Title t a)(RenderJSONSchema a, IsSymbol val) => RenderJSONSchema (Default val a)
#RenderRecordSchemaRL Source
class RenderRecordSchemaRL :: RowList Type -> Row Type -> Constraintclass RenderRecordSchemaRL (rl :: RowList Type) (row :: Row Type) | rl -> row where
Helper class to render record fields as OpenAPI properties
Members
renderRecordSchemaRL :: Proxy rl -> Object ForeigngetRequiredFields :: Proxy rl -> Array String
Instances
RenderRecordSchemaRL Nil ()(IsSymbol name, RenderJSONSchema ty, RenderRecordSchemaRL tail tailRow, Cons name ty tailRow row, Lacks name tailRow) => RenderRecordSchemaRL (Cons name ty tail) row
#DetectSecurity Source
class DetectSecurity :: Row Type -> Constraintclass DetectSecurity (headers :: Row Type) where
Detect security requirements in request headers Returns an array of security requirement objects (e.g., [{ bearerAuth: [] }])
Members
detectSecurity :: Proxy headers -> Array Foreign
Instances
(RowToList headers rl, DetectSecurityRL rl) => DetectSecurity headers
#DetectSecurityRL Source
class DetectSecurityRL :: RowList Type -> Constraintclass DetectSecurityRL (rl :: RowList Type) where
Helper class using RowList to find security-related headers
Members
detectSecurityRL :: Proxy rl -> Array Foreign
Instances
DetectSecurityRL Nil(DetectSecurityRL tail) => DetectSecurityRL (Cons name BearerToken tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name (Description desc BearerToken) tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name (Example ex BearerToken) tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name (Deprecated BearerToken) tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name BasicAuth tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name (Description desc BasicAuth) tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name (Example ex BasicAuth) tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name (Deprecated BasicAuth) tail)(DetectSecurityRL tail, IsSymbol name) => DetectSecurityRL (Cons name ApiKeyHeader tail)(DetectSecurityRL tail, IsSymbol name) => DetectSecurityRL (Cons name (Description desc ApiKeyHeader) tail)(DetectSecurityRL tail, IsSymbol name) => DetectSecurityRL (Cons name (Example ex ApiKeyHeader) tail)(DetectSecurityRL tail, IsSymbol name) => DetectSecurityRL (Cons name (Deprecated ApiKeyHeader) tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name DigestAuth tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name (Description desc DigestAuth) tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name (Example ex DigestAuth) tail)(DetectSecurityRL tail) => DetectSecurityRL (Cons name (Deprecated DigestAuth) tail)(DetectSecurityRL tail, HeaderValueType ty) => DetectSecurityRL (Cons name ty tail)
#DetectCookieSecurity Source
class DetectCookieSecurity :: Row Type -> Constraintclass DetectCookieSecurity (cookies :: Row Type) where
Detect security requirements in request cookies Returns an array of security requirement objects (e.g., [{ sessionIdCookie: [] }])
Members
detectCookieSecurity :: Proxy cookies -> Array Foreign
Instances
(RowToList cookies rl, DetectCookieSecurityRL rl) => DetectCookieSecurity cookies
#DetectCookieSecurityRL Source
class DetectCookieSecurityRL :: RowList Type -> Constraintclass DetectCookieSecurityRL (rl :: RowList Type) where
Helper class using RowList to find security-related cookies
Members
detectCookieSecurityRL :: Proxy rl -> Array Foreign
Instances
DetectCookieSecurityRL Nil(DetectCookieSecurityRL tail, IsSymbol name) => DetectCookieSecurityRL (Cons name ApiKeyCookie tail)(DetectCookieSecurityRL tail, IsSymbol name) => DetectCookieSecurityRL (Cons name (Description desc ApiKeyCookie) tail)(DetectCookieSecurityRL tail, IsSymbol name) => DetectCookieSecurityRL (Cons name (Example ex ApiKeyCookie) tail)(DetectCookieSecurityRL tail, IsSymbol name) => DetectCookieSecurityRL (Cons name (Deprecated ApiKeyCookie) tail)(DetectCookieSecurityRL tail, HeaderValueType ty) => DetectCookieSecurityRL (Cons name ty tail)
#ToOpenAPI Source
class ToOpenAPI (route :: Type) whereGenerate complete OpenAPI operation object for a route Note: The instance for this typeclass is defined in Route.purs since it depends on the Route type defined there
Members
toOpenAPIImpl :: Proxy route -> String
#CollectOperations Source
class CollectOperations (routes :: Type) whereCollect OpenAPI operations from a type-level structure of routes. Use a Record to combine multiple named routes: CollectOperations { getUser :: RouteA, createUser :: RouteB }
Members
collectOperations :: Proxy routes -> Array OperationEntry
Instances
(RowToList row rl, CollectNamedOperationsRL rl) => CollectOperations (Record row)
#CollectNamedOperationsRL Source
class CollectNamedOperationsRL :: RowList Type -> Constraintclass CollectNamedOperationsRL (rl :: RowList Type) where
Members
collectNamedOperationsRL :: Proxy rl -> Array OperationEntry
Instances
CollectNamedOperationsRL Nil(IsSymbol label, CollectOperations routeType, CollectNamedOperationsRL tail) => CollectNamedOperationsRL (Cons label routeType tail)
#OperationEntry Source
type OperationEntry = { method :: String, operation :: String, path :: String }#buildOpenAPISpec Source
buildOpenAPISpec :: forall @routes r. CollectOperations routes => CollectRouteSchemas routes => ValidateSchemaNames routes => Options r (OpenAPIInfoR UndefinedOr) => Record r -> OpenAPISpec#buildOpenAPISpec' Source
buildOpenAPISpec' :: forall @routes. CollectOperations routes => CollectRouteSchemas routes => ValidateSchemaNames routes => OpenAPIInfoUor -> { servers :: Opt (Array ServerObject) } -> OpenAPISpecBuild a complete OpenAPI 3.0 spec with optional servers configuration.
#ServerObject Source
type ServerObject = { description :: Maybe String, url :: String }Type for OpenAPI server object
#OpenAPISpec Source
#CollectSchemas Source
class CollectSchemas (ty :: Type) whereCollects all Schema wrappers found in a type and returns their definitions
Members
collectSchemas :: Proxy ty -> Object Foreign
Instances
CollectSchemas StringCollectSchemas IntCollectSchemas NumberCollectSchemas BooleanCollectSchemas Unit(CollectSchemas a) => CollectSchemas (Array a)(CollectSchemas a) => CollectSchemas (Maybe a)(RowToList row rl, CollectSchemasRL rl) => CollectSchemas (Record row)(CollectSchemas a) => CollectSchemas (JSON a)(CollectSchemas a) => CollectSchemas (FormData a)(CollectSchemas a) => CollectSchemas (MultipartFormData a)CollectSchemas PlainText(CollectSchemas a) => CollectSchemas (XML a)(CollectSchemas a) => CollectSchemas (CustomContentType mime a)CollectSchemas NoBody(IsSymbol name, RenderJSONSchema inner, CollectSchemas inner) => CollectSchemas (Schema name inner)(CollectSchemas a) => CollectSchemas (Description desc a)(CollectSchemas a) => CollectSchemas (Example ex a)(CollectSchemas a) => CollectSchemas (Format fmt a)(CollectSchemas a) => CollectSchemas (Minimum v a)(CollectSchemas a) => CollectSchemas (Maximum v a)(CollectSchemas a) => CollectSchemas (Pattern pat a)(CollectSchemas a) => CollectSchemas (MinLength v a)(CollectSchemas a) => CollectSchemas (MaxLength v a)(CollectSchemas a) => CollectSchemas (Title t a)(CollectSchemas a) => CollectSchemas (Nullable a)(CollectSchemas a) => CollectSchemas (Default val a)(CollectSchemas a) => CollectSchemas (Deprecated a)(CollectSchemas a) => CollectSchemas (Enum a)(CollectSchemas a) => CollectSchemas (Examples examplesRow a)
#CollectSchemasRL Source
class CollectSchemasRL :: RowList Type -> Constraintclass CollectSchemasRL (rl :: RowList Type) where
Helper class to collect schemas from record fields
Members
collectSchemasRL :: Proxy rl -> Object Foreign
Instances
CollectSchemasRL Nil(IsSymbol name, CollectSchemas ty, CollectSchemasRL tail) => CollectSchemasRL (Cons name ty tail)
#CollectVariantSchemasRL Source
class CollectVariantSchemasRL :: RowList Type -> Constraintclass CollectVariantSchemasRL (rl :: RowList Type) where
Collects schemas from all response bodies in a variant
Members
collectVariantSchemasRL :: Proxy rl -> Object Foreign
Instances
CollectVariantSchemasRL Nil(ToResponse recordType headers body, CollectSchemas body, CollectVariantSchemasRL tail) => CollectVariantSchemasRL (Cons label recordType tail)
#CollectRouteSchemas Source
class CollectRouteSchemas (route :: Type) whereCollects schemas from a route's request and response types
Members
collectRouteSchemas :: Proxy route -> Object Foreign
Instances
(RowToList row rl, CollectRouteSchemasRL rl) => CollectRouteSchemas (Record row)
#CollectRouteSchemasRL Source
class CollectRouteSchemasRL :: RowList Type -> Constraintclass CollectRouteSchemasRL (rl :: RowList Type) where
Helper class for collecting schemas from a record of routes
Members
collectRouteSchemasRL :: Proxy rl -> Object Foreign
Instances
CollectRouteSchemasRL Nil(CollectRouteSchemas routeType, CollectRouteSchemasRL tail) => CollectRouteSchemasRL (Cons label routeType tail)
#CollectSchemaNames Source
class CollectSchemaNames :: Type -> Row Type -> Constraintclass CollectSchemaNames (ty :: Type) (names :: Row Type) | ty -> names
Collects schema names at the type level as a Row. Used with Row.Union + Row.Nub to detect name collisions at compile time. Two Schema wrappers with the same name but different types cause a compile error.
Instances
CollectSchemaNames String ()CollectSchemaNames Int ()CollectSchemaNames Number ()CollectSchemaNames Boolean ()CollectSchemaNames Unit ()(CollectSchemaNames a names) => CollectSchemaNames (Array a) names(CollectSchemaNames a names) => CollectSchemaNames (Maybe a) names(RowToList row rl, CollectSchemaNamesRL rl names) => CollectSchemaNames (Record row) names(CollectSchemaNames a names) => CollectSchemaNames (JSON a) names(CollectSchemaNames a names) => CollectSchemaNames (FormData a) names(CollectSchemaNames a names) => CollectSchemaNames (MultipartFormData a) namesCollectSchemaNames PlainText ()(CollectSchemaNames a names) => CollectSchemaNames (XML a) names(CollectSchemaNames a names) => CollectSchemaNames (CustomContentType mime a) namesCollectSchemaNames NoBody ()(CollectSchemaNames inner innerNames, Cons name inner innerNames names, Lacks name innerNames) => CollectSchemaNames (Schema name inner) names(CollectSchemaNames a names) => CollectSchemaNames (Description desc a) names(CollectSchemaNames a names) => CollectSchemaNames (Example ex a) names(CollectSchemaNames a names) => CollectSchemaNames (Format fmt a) names(CollectSchemaNames a names) => CollectSchemaNames (Minimum v a) names(CollectSchemaNames a names) => CollectSchemaNames (Maximum v a) names(CollectSchemaNames a names) => CollectSchemaNames (Pattern pat a) names(CollectSchemaNames a names) => CollectSchemaNames (MinLength v a) names(CollectSchemaNames a names) => CollectSchemaNames (MaxLength v a) names(CollectSchemaNames a names) => CollectSchemaNames (Title t a) names(CollectSchemaNames a names) => CollectSchemaNames (Nullable a) names(CollectSchemaNames a names) => CollectSchemaNames (Default val a) names(CollectSchemaNames a names) => CollectSchemaNames (Deprecated a) names(CollectSchemaNames a names) => CollectSchemaNames (Enum a) names(CollectSchemaNames a names) => CollectSchemaNames (Examples examplesRow a) names
#CollectSchemaNamesRL Source
class CollectSchemaNamesRL :: RowList Type -> Row Type -> Constraintclass CollectSchemaNamesRL (rl :: RowList Type) (names :: Row Type) | rl -> names
Helper class to collect schema names from record fields
Instances
CollectSchemaNamesRL Nil ()(CollectSchemaNames ty fieldNames, CollectSchemaNamesRL tail tailNames, Union fieldNames tailNames names) => CollectSchemaNamesRL (Cons name ty tail) names
#CollectVariantSchemaNames Source
class CollectVariantSchemaNames :: RowList Type -> Row Type -> Constraintclass CollectVariantSchemaNames (rl :: RowList Type) (names :: Row Type) | rl -> names
Collects schema names from all response bodies in a variant
Instances
CollectVariantSchemaNames Nil ()(ToResponse recordType headers body, CollectSchemaNames body bodyNames, CollectVariantSchemaNames tail tailNames, Union bodyNames tailNames names) => CollectVariantSchemaNames (Cons label recordType tail) names
#CollectRouteSchemaNames Source
class CollectRouteSchemaNames :: Type -> Row Type -> Constraintclass CollectRouteSchemaNames (route :: Type) (names :: Row Type) | route -> names
Collects schema names from a route's request and response types
Instances
(RowToList row rl, CollectRouteSchemaNameRL rl names) => CollectRouteSchemaNames (Record row) names
#CollectRouteSchemaNameRL Source
class CollectRouteSchemaNameRL :: RowList Type -> Row Type -> Constraintclass CollectRouteSchemaNameRL (rl :: RowList Type) (names :: Row Type) | rl -> names
Helper for collecting schema names from a record of routes
Instances
CollectRouteSchemaNameRL Nil ()(CollectRouteSchemaNames routeType routeNames, CollectRouteSchemaNameRL tail tailNames, Union routeNames tailNames names) => CollectRouteSchemaNameRL (Cons label routeType tail) names
#ValidateNoDuplicatesRL Source
class ValidateNoDuplicatesRL :: RowList Type -> Row Type -> Constraintclass ValidateNoDuplicatesRL (rl :: RowList Type) (full :: Row Type)
Walks a RowList and checks each entry against the full row. If the RowList has duplicate labels from Union, Cons will unify their types. Same name + same type: Cons succeeds. Same name + different type: Cons fails.
Instances
ValidateNoDuplicatesRL Nil full(Cons name ty _rest full, ValidateNoDuplicatesRL tail full) => ValidateNoDuplicatesRL (Cons name ty tail) full
#ValidateSchemaNames Source
class ValidateSchemaNames (routes :: Type) Validates that all Schema wrappers in a route collection have unique names. Same name with same type is allowed (deduplication). Same name with different types is a compile error.
Instances
(CollectRouteSchemaNames routes names, RowToList names rl, ValidateNoDuplicatesRL rl names) => ValidateSchemaNames routes
- Modules
- Yoga.
HTTP. API. Path - Yoga.
HTTP. API. Route - Yoga.
HTTP. API. Route. Auth - Yoga.
HTTP. API. Route. BearerToken - Yoga.
HTTP. API. Route. Encoding - Yoga.
HTTP. API. Route. Handler - Yoga.
HTTP. API. Route. HeaderError - Yoga.
HTTP. API. Route. HeaderValue - Yoga.
HTTP. API. Route. Method - Yoga.
HTTP. API. Route. OpenAPI - Yoga.
HTTP. API. Route. OpenAPIMetadata - Yoga.
HTTP. API. Route. RenderMethod - Yoga.
HTTP. API. Route. Response - Yoga.
HTTP. API. Route. Route - Yoga.
HTTP. API. Route. RouteHandler - Yoga.
HTTP. API. Route. StatusCode