# General Translation Platform: Diagnósticos
URL: https://generaltranslation.com/es/docs/platform/core/reference/diagnostics.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Formatea texto de diagnóstico sin registrarlo ni notificarlo. Referencia de la API para createDiagnosticMessage y formatDiagnosticErrorDetails.

Importa estas funciones y tipos desde `generaltranslation/diagnostics`. Solo generan cadenas: no registran mensajes, no notifican excepciones, no emiten telemetría ni ocultan secretos.

| Exportación                                      | Descripción                                       |
| ------------------------------------------------ | ------------------------------------------------- |
| [`createDiagnosticMessage`](#create-message)     | Combina texto de diagnóstico en un mensaje.       |
| [`DiagnosticMessageInput`](#message-input)       | Campos del mensaje y contexto opcional.           |
| [`DiagnosticSeverity`](#severity)                | Etiquetas de severidad admitidas.                 |
| [`formatDiagnosticErrorDetails`](#error-details) | Convierte un error desconocido en texto opcional. |

## `createDiagnosticMessage` [#create-message]

**Firma** `(input: DiagnosticMessageInput) => string`

Combina los campos proporcionados en este orden: qué ocurrió y por qué, mensaje tranquilizador, solución y salida alternativa, detalles y URL de la documentación. Elimina los espacios sobrantes del texto de las oraciones y añade puntuación donde haga falta. El origen y la severidad, ambos opcionales, forman el prefijo; si `wayOut` empieza en minúscula, puede integrarse en la oración de la solución.

```ts
import { createDiagnosticMessage } from 'generaltranslation/diagnostics';

const message = createDiagnosticMessage({
  source: 'Importer',
  severity: 'Warning',
  whatHappened: 'The file was skipped',
  fix: 'Choose a supported format',
});
// Devuelve una cadena; no se registra nada automáticamente.
console.log(message);
```

## `DiagnosticMessageInput` [#message-input]

**Tipo** object · Entrada **obligatoria** del formateador de mensajes

| Campo          | Descripción                                                | Tipo                 | Opcional | Valor predeterminado |
| -------------- | ---------------------------------------------------------- | -------------------- | -------- | -------------------- |
| `whatHappened` | Explicación principal.                                     | `string`             | No       | —                    |
| `source`       | Prefijo que identifica al invocador.                       | `string`             | Sí       | —                    |
| `severity`     | Etiqueta de prefijo.                                       | `DiagnosticSeverity` | Sí       | —                    |
| `reassurance`  | Lo que sigue siendo seguro o no ha cambiado.               | `string`             | Sí       | —                    |
| `why`          | Causa, que se une a la explicación principal.              | `string`             | Sí       | —                    |
| `fix`          | Acción correctiva sugerida.                                | `string`             | Sí       | —                    |
| `wayOut`       | Acción alternativa.                                        | `string`             | Sí       | —                    |
| `details`      | Detalles adicionales; los arrays se unen con comas.        | `string \| string[]` | Sí       | —                    |
| `docsUrl`      | URL de la documentación que se añade al final del mensaje. | `string`             | Sí       | —                    |

Solo `whatHappened` es obligatorio; los campos opcionales que se omitan no aportan texto. Proporciona cada cláusula con el uso de mayúsculas y minúsculas que le corresponda dentro de la oración. No incluyas secretos en `details` ni en ningún otro campo: el formateador no oculta información sensible.

```ts
import type { DiagnosticMessageInput } from 'generaltranslation/diagnostics';

const input: DiagnosticMessageInput = { whatHappened: 'No files matched' };
```

## `DiagnosticSeverity` [#severity]

**Tipo** `'Error' | 'Warning'`

Controla la etiqueta de texto opcional, no el nivel de registro ni el comportamiento de las excepciones. Si se omite la severidad, no se añade ningún prefijo de severidad.

```ts
import type { DiagnosticSeverity } from 'generaltranslation/diagnostics';

const severity: DiagnosticSeverity = 'Warning';
```

## `formatDiagnosticErrorDetails` [#error-details]

**Firma** `(error: unknown) => string | undefined`

Devuelve `undefined` para `null` o `undefined`; de lo contrario, devuelve `String(error)`. No extrae los campos estructurados del error ni oculta su contenido.

```ts
import { formatDiagnosticErrorDetails } from 'generaltranslation/diagnostics';

console.log(formatDiagnosticErrorDetails(new Error('Invalid file'))); // Error: Invalid file
console.log(formatDiagnosticErrorDetails(null)); // undefined
```

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
