module Ecluse.Core.Registry.Npm.Serve (
npmRenderer,
npmDenialBody,
) where
import Data.Aeson (object, (.=))
import Data.Aeson qualified as Aeson
import Ecluse.Core.Server.Response (
HelpMessage,
MountRenderer (MountRenderer),
RenderedBody (RenderedBody),
appendHelp,
)
npmRenderer :: MountRenderer
npmRenderer :: MountRenderer
npmRenderer =
(Maybe HelpMessage -> Text -> RenderedBody) -> MountRenderer
MountRenderer (\Maybe HelpMessage
help Text
message -> ByteString -> LByteString -> RenderedBody
RenderedBody ByteString
"application/json" (Maybe HelpMessage -> Text -> LByteString
npmDenialBody Maybe HelpMessage
help Text
message))
npmDenialBody :: Maybe HelpMessage -> Text -> LByteString
npmDenialBody :: Maybe HelpMessage -> Text -> LByteString
npmDenialBody Maybe HelpMessage
help Text
message =
Value -> LByteString
forall a. ToJSON a => a -> LByteString
Aeson.encode ([Pair] -> Value
object [Key
"error" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe HelpMessage -> Text -> Text
appendHelp Maybe HelpMessage
help Text
message])