# `Volt.JS.Runtime`
[🔗](https://github.com/elixir-volt/volt/blob/v0.10.1/lib/volt/js/runtime.ex#L1)

Runs JavaScript build tools through QuickBEAM with package dependencies isolated
from the user's application.

# `t`

```elixir
@type t() :: %Volt.JS.Runtime{
  entry: String.t() | nil,
  install_dir: String.t(),
  name: GenServer.name() | nil,
  node_modules: String.t(),
  packages: map(),
  pid: pid()
}
```

# `call`

```elixir
@spec call(t() | GenServer.server(), String.t(), list(), keyword()) ::
  QuickBEAM.js_result()
```

# `child_spec`

```elixir
@spec child_spec(keyword()) :: Supervisor.child_spec()
```

# `ensure!`

```elixir
@spec ensure!(keyword()) :: t()
```

# `node_modules!`

```elixir
@spec node_modules!(t()) :: String.t()
```

# `package_path!`

```elixir
@spec package_path!(t(), String.t()) :: String.t()
```

# `start`

```elixir
@spec start(keyword()) :: {:ok, t()} | {:error, Volt.JS.Runtime.Error.t()}
```

# `start_link`

```elixir
@spec start_link(keyword()) :: GenServer.on_start()
```

# `stop`

```elixir
@spec stop(t() | GenServer.server()) :: :ok
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
