Safe Haskell | None |
---|---|
Language | Haskell2010 |
Temporal.EphemeralServer
Contents
Description
Run an Temporal server in a programatically for testing and development.
Synopsis
- launchTestServer :: Runtime -> [String] -> IO (Either EphemeralServerError (PortNumber, EphemeralServer))
- launchDevServer :: Runtime -> TemporalDevServerConfig -> IO (Either EphemeralServerError EphemeralServer)
- withDevServer :: MonadUnliftIO m => Runtime -> TemporalDevServerConfig -> (EphemeralServer -> m a) -> m a
- withTestServer :: MonadUnliftIO m => Runtime -> TestServerConfig -> (EphemeralServer -> m a) -> m a
- getFreePort :: IO PortNumber
- openFreePort :: IO (PortNumber, Socket)
- data EphemeralServerError = EphemeralServerError ByteString
- data EphemeralExeVersion
- data EphemeralExe
- data SDKDefault = SDKDefault {
- sdkName :: String
- sdkVersion :: String
- data TemporalDevServerConfig = TemporalDevServerConfig {}
- defaultTemporalDevServerConfig :: TemporalDevServerConfig
- data EphemeralServer
- shutdownEphemeralServer :: EphemeralServer -> IO (Either ByteString ())
- data PortNumber
Documentation
launchTestServer :: Runtime -> [String] -> IO (Either EphemeralServerError (PortNumber, EphemeralServer)) Source #
launchDevServer :: Runtime -> TemporalDevServerConfig -> IO (Either EphemeralServerError EphemeralServer) Source #
withDevServer :: MonadUnliftIO m => Runtime -> TemporalDevServerConfig -> (EphemeralServer -> m a) -> m a Source #
withTestServer :: MonadUnliftIO m => Runtime -> TestServerConfig -> (EphemeralServer -> m a) -> m a Source #
getFreePort :: IO PortNumber Source #
Open a TCP socket, get its port and close the socket. Useful when you have an external service that needs a fresh port.
There is a small race condition present: It's possible to get a free port only for it to be bound by some other process or thread before used
openFreePort :: IO (PortNumber, Socket) Source #
Open a TCP socket on a random free port. This is like warp'
s
openFreePort.
data EphemeralServerError Source #
Constructors
EphemeralServerError ByteString |
Instances
Exception EphemeralServerError Source # | |
Defined in Temporal.EphemeralServer | |
Show EphemeralServerError Source # | |
Defined in Temporal.EphemeralServer Methods showsPrec :: Int -> EphemeralServerError -> ShowS # show :: EphemeralServerError -> String # showList :: [EphemeralServerError] -> ShowS # |
Core configuration
data EphemeralExeVersion #
Constructors
Default SDKDefault | Use a default version for the given SDK name and version. |
Fixed String | Specific version. |
Instances
ToJSON EphemeralExeVersion | |
Defined in Temporal.Core.EphemeralServer Methods toJSON :: EphemeralExeVersion -> Value # toEncoding :: EphemeralExeVersion -> Encoding # toJSONList :: [EphemeralExeVersion] -> Value # toEncodingList :: [EphemeralExeVersion] -> Encoding # omitField :: EphemeralExeVersion -> Bool # |
data EphemeralExe #
Constructors
ExistingPath FilePath | Existing path on the filesystem for the executable. |
CachedDownload EphemeralExeVersion (Maybe FilePath) | Download the executable if not already there. |
Instances
ToJSON EphemeralExe | |
Defined in Temporal.Core.EphemeralServer Methods toJSON :: EphemeralExe -> Value # toEncoding :: EphemeralExe -> Encoding # toJSONList :: [EphemeralExe] -> Value # toEncodingList :: [EphemeralExe] -> Encoding # omitField :: EphemeralExe -> Bool # |
data SDKDefault #
Constructors
SDKDefault | |
Fields
|
data TemporalDevServerConfig #
Constructors
TemporalDevServerConfig | |
Instances
ToJSON TemporalDevServerConfig | |
Defined in Temporal.Core.EphemeralServer Methods toJSON :: TemporalDevServerConfig -> Value # toEncoding :: TemporalDevServerConfig -> Encoding # toJSONList :: [TemporalDevServerConfig] -> Value # |
data EphemeralServer #
shutdownEphemeralServer :: EphemeralServer -> IO (Either ByteString ()) #
data PortNumber #
Port number.
Use the Num
instance (i.e. use a literal) to create a
PortNumber
value.
>>>
1 :: PortNumber
1>>>
read "1" :: PortNumber
1>>>
show (12345 :: PortNumber)
"12345">>>
50000 < (51000 :: PortNumber)
True>>>
50000 < (52000 :: PortNumber)
True>>>
50000 + (10000 :: PortNumber)
60000