README.md

# ScrollexEcto

ScrollexEcto is a flexible pagination library for Elixir and Ecto, supporting both offset-based and cursor-based pagination.

## Installation

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

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

## Usage
Add ScrollexEcto to your Repo module:
```elixir
defmodule MyApp.Repo do
  use Ecto.Repo,
    otp_app: :my_app,
    adapter: Ecto.Adapters.Postgres

  use ScrollexEcto,
    page_size: 10,
    order_field: :inserted_at,
    id_field: :id
end
```
Then you can use it in your queries:
```elixir
# Offset-based pagination
MyApp.Repo.paginate(MyApp.Item, %{"page" => 2, "page_size" => 20})

# Cursor-based pagination
MyApp.Repo.paginate(MyApp.Item, %{"page_type" => "cursor", "cursor" => "some_cursor", "page_size" => 20})
```

For more detailed usage and configuration options, please refer to the (documentation)[https://hexdocs.pm/scrollex_ecto].

## Author

ScrollexEcto is created and maintained by Yatender Singh Suman.

## License

Copyright (c) 2024 Yatender Singh Suman

ScrollexEcto is released under the MIT License. See the [LICENSE](https://github.com/yatender-oktalk/scrollex_ecto/blob/main/LICENSE) file for details.