BIOApp

trait BIOApp

Safe App type that executes a IO. Shutdown occurs after the IO completes, as follows:

Safe App type that executes a IO. Shutdown occurs after the IO completes, as follows:

  • If completed with ExitCode.Success, the main method exits and shutdown is handled by the platform.

  • If completed with any other ExitCode, sys.exit is called with the specified code.

  • If the IO raises an error, the stack trace is printed to standard error and sys.exit(1) is called.

When a shutdown is requested via a signal, the IO is canceled and we wait for the IO to release any resources. The process exits with the numeric value of the signal plus 128.

 import cats.effect._
 import cats.implicits._
 import monix.bio._

 object MyApp extends BIOApp {
   def run(args: List[String]): UIO[ExitCode] =
     args.headOption match {
       case Some(name) =>
         UIO(println(s"Hello, \${name}.")).as(ExitCode.Success)
       case None =>
         UIO(System.err.println("Usage: MyApp name")).as(ExitCode(2))
     }
 }

N.B. this is homologous with cats.effect.IOApp, but meant for usage with IO.

Works on top of JavaScript as well ;-)

class Object
trait Matchable
class Any

Value members

Abstract methods

def run(args: List[String]): UIO[ExitCode]

Concrete methods

final def main(args: Array[String]): Unit
protected def options: Options

Options for executing the Task action. The default value is defined in defaultOptions, but can be overridden.

Options for executing the Task action. The default value is defined in defaultOptions, but can be overridden.

protected def scheduler: Scheduler

Scheduler for executing the Task action. Defaults to global, but can be overridden.

Scheduler for executing the Task action. Defaults to global, but can be overridden.

Implicits

Implicits

implicit lazy protected val catsEffect: ConcurrentEffect[Task]

Provides the cats.effect.ConcurrentEffect instance of this runtime environment.

Provides the cats.effect.ConcurrentEffect instance of this runtime environment.