ngx-export-tools-1.2.2.1: NgxExport/Tools/Types.hs
-----------------------------------------------------------------------------
-- |
-- Module : NgxExport.Tools.Types
-- Copyright : (c) Alexey Radkov 2023
-- License : BSD-style
--
-- Maintainer : alexey.radkov@gmail.com
-- Stability : stable
-- Portability : portable
--
-----------------------------------------------------------------------------
module NgxExport.Tools.Types (
-- * Exported types
NgxExportService
) where
import qualified Data.ByteString.Lazy as L
-- | Allows writing fancier declarations of services.
--
-- For example, service /signalUpconf/ in
--
-- @
-- type Upconf = [Text]
--
-- signalUpconf :: Upconf -> 'Bool' -> 'IO' 'L.ByteString'
-- signalUpconf = 'NgxExport.Tools.Combinators.voidHandler'' . mapConcurrently_ getUrl
--
-- 'NgxExport.Tools.SimpleService.ngxExportSimpleServiceTyped' \'signalUpconf \'\'Upconf $
-- 'NgxExport.Tools.SimpleService.PersistentService' Nothing
-- @
--
-- can be rewritten in a fancier way:
--
-- @
-- signalUpconf :: Upconf -> __/NgxExportService/__
-- signalUpconf = 'NgxExport.Tools.Combinators.voidHandler'' . mapConcurrently_ getUrl
-- @
--
-- @since 1.2.2
type NgxExportService = Bool -- ^ First-run flag
-> IO L.ByteString