# `MishkaGervaz.Table.Entities.DataLoader`
[🔗](https://github.com/mishka-group/mishka_gervaz/blob/v0.0.1-alpha.3/lib/mishka_gervaz/table/entities/data_loader.ex#L1)

Entity struct for data_loader configuration.

Allows overriding data loading modules at DSL level.

## Usage

Override entire data_loader module (positional argument):

    data_loader MyApp.Table.CustomDataLoader

Override specific sub-builders (block syntax):

    data_loader do
      query MyApp.Table.DataLoader.QueryBuilder
      filter_parser MyApp.Table.DataLoader.FilterParser
      pagination MyApp.Table.DataLoader.PaginationHandler
      tenant MyApp.Table.DataLoader.TenantResolver
      hooks MyApp.Table.DataLoader.HookRunner
      relation MyApp.Table.DataLoader.RelationLoader
    end

## Defaults

When no overrides are specified, the following defaults are used:

- `query` - `MishkaGervaz.Table.Web.DataLoader.QueryBuilder.Default`
- `filter_parser` - `MishkaGervaz.Table.Web.DataLoader.FilterParser.Default`
- `pagination` - `MishkaGervaz.Table.Web.DataLoader.PaginationHandler.Default`
- `tenant` - `MishkaGervaz.Table.Web.DataLoader.TenantResolver.Default`
- `hooks` - `MishkaGervaz.Table.Web.DataLoader.HookRunner.Default`
- `relation` - `MishkaGervaz.Table.Web.DataLoader.RelationLoader.Default`

See `MishkaGervaz.Table.Dsl.DataLoader` and
`MishkaGervaz.Table.Web.DataLoader`.

# `t`

```elixir
@type t() :: %MishkaGervaz.Table.Entities.DataLoader{
  __spark_metadata__: map() | nil,
  filter_parser: module() | nil,
  hooks: module() | nil,
  module: module() | nil,
  pagination: module() | nil,
  query: module() | nil,
  relation: module() | nil,
  tenant: module() | nil
}
```

# `transform`

Transform the data_loader after DSL compilation.

---

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