bungibindies/bun/spawn

PARTIAL IMPLEMENTATION OF Bun.spawn() AND Bun.spawnSync()

Types

pub type AsyncSubprocessObject
pub type OptionsToSubprocess {
  OptionsToSubprocess(
    cmd: List(String),
    cwd: Option(String),
    env: Option(Dict(String, String)),
    stderr: Option(Out),
    stdout: Option(Out),
  )
}

Constructors

  • OptionsToSubprocess(
      cmd: List(String),
      cwd: Option(String),
      env: Option(Dict(String, String)),
      stderr: Option(Out),
      stdout: Option(Out),
    )

    Arguments

    cmd

    The command and arguments to run.

    cwd

    The working directory to run the command in. Defaults to the current working directory.

    env

    Environment variables to set for the command.

    stderr

    Where to send the error output of the command. If not specified, defaults to Pipe for async and Inherit for sync.

    If Pipe, the output will be available in the stderr property of the result. If Inherit, the output will be sent to the same place as the parent process. If Ignore, the output will be send nowhere and will instead be ignored.

    stdout

    Where to send the output of the command. If not specified, defaults to Pipe for async and Inherit for sync.

    If Pipe, the output will be available in the stdout property of the result. If Inherit, the output will be sent to the same place as the parent process. If Ignore, the output will be send nowhere and will instead be ignored.

pub type Out {
  Pipe
  Inherit
  Ignore
}

Constructors

  • Pipe
  • Inherit
  • Ignore
pub type SubProcess {
  AsyncSubprocess(AsyncSubprocessObject)
  SyncSubprocess(SyncSubprocessObject)
}

Constructors

  • AsyncSubprocess(AsyncSubprocessObject)
  • SyncSubprocess(SyncSubprocessObject)
pub type SyncSubprocessObject

Values

pub fn async(with options: OptionsToSubprocess) -> SubProcess

This function is used to spawn a new process asynchronously. It returns an AsyncSubprocess object that can be used AsyncSubprocessDatah the spawned process.

pub fn exit_code(
  from subprocess: AsyncSubprocessObject,
) -> Result(Int, Nil)

Synchronously get the exit code of the subprocess If the process hasn’t exited yet, this will return Error(Nil)

pub fn exited(
  from subprocess: AsyncSubprocessObject,
) -> Promise(Int)

Asynchronously get the exit code of the subprocess The promise will resolve when the process exits.

pub fn kill(
  from subprocess: AsyncSubprocessObject,
  code killcode: Option(Int),
) -> Nil

Kills a subprocess

pub fn pid(from subprocess: AsyncSubprocessObject) -> Int

Get the PID of the subprocess.

pub fn reref(from subprocess: AsyncSubprocessObject) -> Nil

This method will tell Bun to wait for this process to exit after you already called unref(). Before shutting down, Bun will wait for all subprocesses to exit by default

pub fn stderr(from subprocess: SubProcess) -> Result(String, Nil)

Attempts to fetch stderr from the subprocess.

pub fn stdout(from subprocess: SubProcess) -> Result(String, Nil)

Attempts to fetch stdout from the subprocess.

pub fn success(from subprocess: SyncSubprocessObject) -> Bool

Get the success status from the subprocess.

pub fn sync(with options: OptionsToSubprocess) -> SubProcess

This function is used to spawn a new process synchronously. It returns a SyncSubprocess object that can be used to interact with the spawned process.

pub fn unref(from subprocess: AsyncSubprocessObject) -> Nil

Before shutting down, Bun will wait for all subprocesses to exit by default This method will tell Bun to not wait for this process to exit before shutting down.

Search Document