# AbsintheProjector v0.1.1 - Table of Contents

> Absinthe middleware that turns each GraphQL query's selection set into an exact Ecto preload tree — no association N+1, no association overfetch, no dataloader spread, no hand-maintained whitelists.

## Pages

- [README](readme.md)

## Modules

- [AbsintheProjector](AbsintheProjector.md): Absinthe middleware that projects an incoming query's selection set into an
exact `Repo.preload/2` tree.
- [AbsintheProjector.Engine](AbsintheProjector.Engine.md): Turns a projected GraphQL selection set into an exact `Repo.preload/2` tree.
- [AbsintheProjector.Envelope](AbsintheProjector.Envelope.md): Walks a projected GraphQL selection down a pagination-envelope key path,
returning the innermost selection that `AbsintheProjector.Engine` should
project against the declared `:schema`.
- [AbsintheProjector.Introspection](AbsintheProjector.Introspection.md): Discovers the associations of an Ecto schema through Ecto's compile-time
reflection API — never a hand-maintained whitelist.
- [AbsintheProjector.Introspection.Association](AbsintheProjector.Introspection.Association.md): Metadata for a single Ecto association discovered via reflection.

