SuperAPI AI Directory

nuxt-repositories

Coding & development

View repository

Updated 10-16 06:23

About this skill

Nuxt Repositories

Data access layer with CRUD operations and automatic model hydration.

Core Concepts

repositories.md - Complete repository patterns, registration, custom methods

Basic Repository

// app/repositories/PostRepository.ts
import { BaseRepository } from '#layers/base/app/repositories/base-repository'
import { ModelHydrator } from '#layers/base/app/repositories/hydrators/model-hydrator'
import Post from '~/models/Post'

export default class PostRepository extends BaseRepository { protected resource = '/api/posts' protected hydration = true protected hydrator = new ModelHydrator(Post)

// Custom method async listByAuthor(authorUlid: string) { return this.jsonGet(/api/authors/${authorUlid}/posts) } }


## Registration

```typescript
// app/app.config.ts
export default defineAppConfig({
  repositories: {
    posts: PostRepository,
    authors: AuthorRepository,
  },
})

Usage

// Get typed repository instance
const postApi = useRepository('posts')

// CRUD operations (returns hydrated models)
const { data: posts } = await postApi.list()
const { data: post } = await postApi.get('ulid123')
const { data: newPost } = await postApi.create({ title: 'Hello' })
await postApi.update('ulid123', { title: 'Updated' })
await postApi.delete('ulid123')

// With query params
const { data: posts } = await postApi.list({
  include: 'author,comments',
  filter: { status: 'published' },
})