# `Weld.Workspace`
[🔗](https://github.com/nshkrdotcom/weld/blob/main/lib/weld/workspace.ex#L1)

Discovers and loads a monorepo workspace into a graph-native representation.

# `t`

```elixir
@type t() :: %Weld.Workspace{
  discovery: Weld.Workspace.Discovery.result(),
  graph: Weld.Graph.t(),
  manifest: Weld.Manifest.t(),
  projects: %{optional(String.t()) =&gt; Weld.Workspace.Project.t()}
}
```

# `file_owner`

```elixir
@spec file_owner(t(), Path.t()) :: {:project, String.t()} | :global | :unknown
```

# `load!`

```elixir
@spec load!(Weld.Manifest.t()) :: t()
```

# `projects`

```elixir
@spec projects(t()) :: [Weld.Workspace.Project.t()]
```

---

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