Skip to content

Latest commit

 

History

History
36 lines (30 loc) · 1.55 KB

README.md

File metadata and controls

36 lines (30 loc) · 1.55 KB

ink-spawn

Component for Ink, spawning child processes.

ink-spawn-combined-example.mov
<>
  <Text>Composed example</Text>
  <Script>
    <Spawn command="echo" args={["task 1", "&&", "sleep", "1"]} shell />
    <Script parallel>
      <Spawn command="echo" args={["task 2.a", "&&", "sleep", "1"]} shell />
      <Spawn command="echo" args={["task 2.b", "&&", "sleep", "1"]} shell />
    </Script>
    <Spawn command="echo" args={["task 3", "&&", "sleep", "1"]} shell />
    <Text>Bye 👋</Text>
  </Script>
</>

Features

  • The <Spawn />
    • starts executing a child process as it mounts,
    • kills the process as it unmounts and prints,
    • renders a configurable status text (running, succeeded, failed),
    • renders the last lines below the status of a running process.
    • propagates terminal interrupts (users pressing Ctrl + C)
  • The <Script />
    • Wraps <Spawn /> and any other elements element.
    • Sequential mode (default): Renders only the subset of completed children and the currently running runnable (<Spawn /> and other nested <Script />).
    • Parallel mode: Renders all children, making processes spawn in parallel.
    • Infinitely composable: Put parallel scripts, inside sequential scripts, inside ...

See examples and JSDoc comments on props for usage.