| 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 :: PortNumber1>>>read "1" :: PortNumber1>>>show (12345 :: PortNumber)"12345">>>50000 < (51000 :: PortNumber)True>>>50000 < (52000 :: PortNumber)True>>>50000 + (10000 :: PortNumber)60000