README.md

# AshDefaultSort

Configure a default sort to apply when a read action has no sort.

## Installation

Add `ash_default_sort` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:ash_default_sort, "~> 0.1.0"}
  ]
end
```

## Usage

```elixir
defmodule Post do
  use Ash.Resource,
    data_layer: Ash.DataLayer.Postgres,
    extensions: [AshDefaultSort]

  actions do
    read :read do
      primary? true
    end
  
    read :read_sorted do
      prepare build(sort: [id: :desc])
    end

    read :read_all do
    end

    read :read_every do
    end

  default_sort do
    sort [like_count: :desc, created_at: :desc]
    include_primary_read? false
    except [:read_all]
  end
end
```

In the example above, [like_count: :desc, created_at: :desc] is applied to `read_every`.

This is because `read` is excluded by `include_primary_read? false`, `read_sorted` is not affected because it already includes a sort, and `read_all` is excluded by the `except` option.

## License

MIT