nuxt-supabase-query-as-async-data
Version:
Nuxt module for using Supabase queries as asyncData
105 lines (70 loc) • 2.8 kB
Markdown
A Nuxt module that enhances developer experience when using Supabase by enabling fluent queries (e.g., `supabase.from(...).select(...)`) to integrate directly with `useAsyncData()` via a convenient `.asAsyncData()` method—no manual wrapping required.
[](https://www.npmjs.com/package/nuxt-supabase-query-as-async-data)
[](https://github.com/leynier/nuxt-supabase-query-as-async-data/blob/main/LICENSE)
---
## 🧭 Introduction
`nuxt-supabase-query-as-async-data` lets you fluently convert Supabase query chains into Nuxt's `useAsyncData()` calls by appending `.asAsyncData(key)`. This simplifies server-side rendering and data fetching with minimal boilerplate.
## 🚀 Features
- Adds `.asAsyncData()` to Supabase query builders
- Wraps seamlessly with `useAsyncData()`
- Zero-config plugin—no imports needed
- Full TypeScript support and IntelliSense
## 📦 Installation
```bash
# Using npm
npm install nuxt-supabase-query-as-async-data
# Using yarn
yarn add nuxt-supabase-query-as-async-data
# Using pnpm
pnpm add nuxt-supabase-query-as-async-data
```
### 📦 Peer Dependency
This module depends on `@supabase/postgrest-js`. If you're already using:
- `@supabase/supabase-js`, or
- the `@nuxtjs/supabase` module,
...you’re good to go. Otherwise, install it manually:
```bash
npm install @supabase/postgrest-js
```
## 🧩 Usage
Register the module in your `nuxt.config.ts`:
```ts
export default defineNuxtConfig({
modules: [
'nuxt-supabase-query-as-async-data'
]
})
```
Once installed, Supabase queries gain the `.asAsyncData()` method automatically:
```ts
const { data, pending, error } = await supabase
.from('users')
.select('*')
.eq('id', 1)
.asAsyncData('user-query');
```
Equivalent to:
```ts
const { data, pending, error } = await useAsyncData(
'user-query',
() => supabase.from('users').select('*').eq('id', 1)
);
```
This module uses declaration merging to provide type safety and auto-completion for `.asAsyncData()` on all compatible Supabase query builders.
- Nuxt 3
- Supabase client v2+
- `@supabase/postgrest-js`
Contributions are welcome! Feel free to open an issue or submit a pull request.
1. Fork the repository
2. Create a new branch: `git checkout -b feature/my-feature`
3. Make your changes and commit: `git commit -am 'Add my feature'`
4. Push to your fork: `git push origin feature/my-feature`
5. Open a Pull Request
This project is licensed under the [MIT License](LICENSE).
---
Made with ❤️ by Leynier Gutiérrez González