Skip to content

feat(types): expose conversionMode on DocumentType #21

@rarce

Description

@rarce

Resumen

El tipo DocumentType (en src/types/document-type.ts) no incluye el campo conversionMode, aunque la API lo devuelve y DocumentTypeCreateParams sí lo acepta. Esto obliga a los consumers a usar un cast as unknown as {conversionMode?: string} cuando quieren leerlo desde el resultado.

Contexto

Detectado en review de docutray/docutray-cli#34 / docutray/docutray-cli#35. El CLI tuvo que mantener un cast en src/commands/types/create.ts para mostrar el Mode en la salida de types create:

// docutray@0.1.3 no expone conversionMode en DocumentType.
const conversionMode = (result as unknown as {conversionMode?: string}).conversionMode

Estado actual (docutray@0.1.3)

DocumentType declara:

interface DocumentType {
  id: string
  name: string
  codeType: string
  description: string | null
  isPublic: boolean
  isDraft: boolean
  status: string
  createdAt: string | null
  updatedAt: string | null
  jsonSchema: Record<string, unknown> | null
}

Falta conversionMode?: 'json' | 'toon' | 'multi_prompt' (la API lo devuelve, y el create lo acepta como input — la asimetría es lo que motiva el cast en el CLI).

Fix propuesto

Agregar el campo opcional al tipo:

interface DocumentType {
  // ...resto
  /** Conversion mode used when extracting from this document type. */
  conversionMode?: 'json' | 'toon' | 'multi_prompt'
}

Idealmente el tipo del field se reusa del que ya existe en DocumentTypeCreateParams para mantener una sola fuente de verdad.

Criterios de aceptación

  • DocumentType incluye conversionMode?: 'json' | 'toon' | 'multi_prompt'.
  • Test (o snapshot del tipo) que evita regresiones.
  • Después del release, en docutray-cli se puede remover el cast en src/commands/types/create.ts.

Referencias

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions