nuxt-models

📁 leeovery/claude-nuxt 📅 1 day ago
1
总安装量
1
周安装量
#44277
全站排名
安装命令
npx skills add https://github.com/leeovery/claude-nuxt --skill nuxt-models

Agent 安装分布

amp 1
opencode 1
kimi-cli 1
codex 1
gemini-cli 1

Skill 文档

Nuxt Models

Type-safe domain models with automatic hydration, relations, and property casting.

Core Concepts

models.md – Complete model patterns, lifecycle, relations, casts values.md – Value objects for typed wrappers (DateValue, etc.)

Basic Model

// app/models/Post.ts
import Model from '#layers/base/app/models/Model'
import type { Castable } from '#layers/base/app/types'
import PostStatus from '~/enums/PostStatus'
import DateValue from '~/values/DateValue'
import Author from '~/models/Author'

export default class Post extends Model {
  ulid: string
  title: string
  content: string
  status: PostStatus
  isDraft: boolean
  author: Author
  createdAt: DateValue

  public override primaryKey(): string {
    return 'ulid'
  }

  public override casts(): Record<string, Castable> {
    return {
      status: PostStatus,
      createdAt: DateValue,
    }
  }

  public override relations(): Record<string, typeof Model> {
    return {
      author: Author,
    }
  }

  public isPublished(): boolean {
    return !this.isDraft
  }
}

Model Lifecycle

API Response → booting() → transform() → Property Assignment
     → Relations Hydrated → Casts Applied → booted() → Ready

Usage

// Hydrate from API response
const post = Post.hydrate(apiResponse.data)

// Hydrate collection
const posts = Post.collect(apiResponse.data)

// Access typed properties
post.status.color()           // Enum method
post.createdAt.format()       // Value object method
post.author.name              // Relation property

// Compare models
post.is(otherPost)            // Same primary key?