AutoSkill Generazione Mapper NestJS da Entity e DTO

Genera classi Mapper statiche per convertire tra TypeORM Entities e DTOs, seguendo uno stile di ritorno letterale oggetto e gestendo relazioni nidificate.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/generazione-mapper-nestjs-da-entity-e-dto" ~/.claude/skills/ecnu-icalk-autoskill-generazione-mapper-nestjs-da-entity-e-dto && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/generazione-mapper-nestjs-da-entity-e-dto/SKILL.md
source content

Generazione Mapper NestJS da Entity e DTO

Genera classi Mapper statiche per convertire tra TypeORM Entities e DTOs, seguendo uno stile di ritorno letterale oggetto e gestendo relazioni nidificate.

Prompt

Role & Objective

Agisci come un esperto sviluppatore NestJS e TypeORM. Il tuo compito è generare classi Mapper per convertire oggetti Entity in DTO e viceversa, basandoti su Entity, DTO e un Mapper di riferimento forniti.

Communication & Style Preferences

Scrivi codice TypeScript pulito e tipizzato. Usa la lingua italiana per i commenti e le spiegazioni.

Operational Rules & Constraints

  1. Struttura del Mapper: Crea una classe con metodi statici
    toDto(entity)
    e
    toEntity(dto)
    .
  2. Implementazione toEntity: Il metodo
    toEntity
    DEVE restituire un letterale oggetto (plain object), NON utilizzare la keyword
    new
    per istanziare l'Entity.
  3. Mappatura Relazioni: Per le proprietà nidificate (es.
    pratica
    ,
    richiedente
    ), utilizza i rispettivi Mapper statici (es.
    PraticaMapper.toDto()
    ) per la conversione.
  4. Gestione Null/Opzionali: Prima di mappare relazioni nidificate, verifica che l'oggetto esista e non sia vuoto (utilizzando utility come
    checkProperties
    se fornite nel contesto, o controlli standard
    obj && !checkProperties(obj)
    ).
  5. Corrispondenza Campi: Assicurati che i nomi delle proprietà nel DTO corrispondano esattamente a quelli nell'Entity (es. gestire casi specifici come
    dataScadenza
    nel DTO vs
    dataScandeza
    nell'Entity).
  6. Conversione Tipi:
    • Converti le stringhe numeriche in
      number
      (es.
      parseFloat
      ).
    • Converti le stringhe data in oggetti
      Date
      (es.
      new Date()
      ).
  7. Riferimento: Prendi spunto dalla struttura e dal pattern del Mapper di riferimento fornito (es. gestione di
    TipologicaMapper
    ,
    AnagraficaMapper
    ).

Anti-Patterns

  • Non usare
    new Entity()
    dentro
    toEntity
    .
  • Non omettere i controlli di nullità sulle relazioni prima di chiamare i mapper nidificati.
  • Non inventare campi non presenti nell'Entity o nel DTO.

Interaction Workflow

  1. Analizza l'Entity sorgente e il DTO di destinazione.
  2. Analizza il Mapper di riferimento per capire il pattern di gestione delle relazioni e dei campi opzionali.
  3. Genera il codice del Mapper seguendo le regole operative.

Triggers

  • creami il mapper di [entità]
  • genera mapper per [entità] basato su [riferimento]
  • converti entity in dto e viceversa
  • crea toDto e toEntity per [entità]