Habilidades fp-ts-errors
📦

fp-ts-errors

Seguro

Domina el Manejo de Errores con fp-ts en TypeScript

Deja de luchar con código espagueti de try/catch. Aprende a manejar errores como valores con tipado seguro usando Either y TaskEither de fp-ts para un manejo de errores predecible y componible.

Soporta: Claude Codex Code(CC)
🥉 74 Bronce
1

Descargar el ZIP de la skill

2

Subir en Claude

Ve a Configuración → Capacidades → Skills → Subir skill

3

Activa y empieza a usar

Pruébalo

Usando "fp-ts-errors". Validar un formulario de registro de usuario con email inválido, password corta y age faltante

Resultado esperado:

Left(['Formato de email inválido', 'Password debe tener al menos 8 caracteres', 'Age es requerido']) - Los tres errores de validación retornados juntos en lugar de fallar en el primero

Usando "fp-ts-errors". Encadenar getUser(userId), getProduct(productId), y createOrder(user, product) donde getUser retorna Left('User not found')

Resultado esperado:

Left('User not found') - La cadena se detiene en el primer fallo, las operaciones subsecuentes nunca se ejecutan, y el error se propaga limpiamente

Usando "fp-ts-errors". Obtener datos de usuario con TaskEither, la petición de red falla con error de conexión

Resultado esperado:

Left({ code: 'NETWORK', message: 'Failed to connect to server' }) - Error estructurado con código de error para manejo programático y mensaje legible para mostrar

Auditoría de seguridad

Seguro
v1 • 2/25/2026

This skill is educational documentation teaching fp-ts error handling patterns in TypeScript. The static analyzer produced 127 false positives by misidentifying Markdown code block backticks as shell commands. All network references are code examples demonstrating TaskEither usage, not executable code. No actual command execution, network calls, or system access exists in this skill.

1
Archivos escaneados
857
Líneas analizadas
0
hallazgos
1
Auditorías totales
No se encontraron problemas de seguridad
Auditado por: claude

Puntuación de calidad

38
Arquitectura
100
Mantenibilidad
87
Contenido
50
Comunidad
100
Seguridad
91
Cumplimiento de la especificación

Lo que puedes crear

Validación de Formularios con Acumulación de Errores

Valida formularios de entrada de usuario y acumula todos los errores de validación a la vez en lugar de fallar en el primer error.

Pipeline de Manejo de Errores de API

Construye capas de API robustas que manejan errores de red, códigos de estado HTTP y fallos de parseo JSON con resultados de error tipados.

Cadenas de Operaciones de Base de Datos

Encadena múltiples operaciones de base de datos donde cualquier fallo retorna un error estructurado sin lanzar excepciones.

Prueba estos prompts

Patrón Either Básico
Ayúdame a convertir esta función para usar fp-ts Either en lugar de lanzar errores: [pegar función]. Muestra cómo manejar el caso de error con fold.
Encadenar Múltiples Operaciones
Necesito encadenar estas tres operaciones: getUser, validatePermissions y createResource. Cada una puede fallar con diferentes tipos de error. Muéstrame cómo usar chainW para combinarlas con fp-ts Either.
Validación de Formulario con Todos los Errores
Crea un validador de formularios usando fp-ts que valide los campos email, password y age. Usa la validación aplicativa para acumular TODOS los errores a la vez, no solo el primero.
Reintento Asíncrono con TaskEither
Muéstrame cómo envolver esta llamada fetch con TaskEither y agregar lógica de reintentos con backoff exponencial. Maneja tanto errores de red como respuestas HTTP no-200 con tipos de error estructurados.

Mejores prácticas

  • Envuelve código que lanza excepciones en los límites (APIs externas, I/O de archivos, parseo JSON) y retorna Either internamente
  • Usa tipos de error descriptivos (uniones o interfaces) en lugar de strings simples para mejor seguridad de tipos
  • Aplica TaskEither para operaciones asíncronas para mantener evaluación perezosa y evitar ejecución prematura

Evitar

  • Llamar fold demasiado pronto en la cadena - maneja errores al final, no después de cada paso
  • Mezclar Either con excepciones lanzadas - comprométete con una estrategia de manejo de errores consistentemente
  • Usar Left para flujo de control esperado como 'not found' - reserva errores para casos verdaderamente excepcionales

Preguntas frecuentes

¿Cuándo debo usar Either versus TaskEither?
Usa Either para operaciones síncronas que pueden fallar. Usa TaskEither para operaciones asíncronas (Promises) que pueden fallar. TaskEither es perezoso y retorna una función que produce Promise<Either<E, A>>.
¿Cómo convierto código try/catch existente a fp-ts?
Envuelve el código que lanza excepciones con E.tryCatch para código síncrono o TE.tryCatch para código asíncrono. Proporciona una función onError para transformar las excepciones capturadas a tu tipo de error.
¿Cuál es la diferencia entre chain y chainW?
chain requiere que ambos tipos Either tengan el mismo tipo de error. chainW (wider) automáticamente crea unión de diferentes tipos de error, útil cuando se encadenan operaciones con diferentes tipos de error.
¿Cómo obtengo el valor de un Either?
Usa fold para manejar ambos casos explícitamente, getOrElse para proporcionar un default para Left, o unsafeGetRight solo cuando estés seguro de que es Right. Evita unsafeGetRight en código de producción.
¿Puedo usar fp-ts con mi código existente basado en Promises?
Sí. Usa TE.tryCatch para envolver Promises, y usa toPromise o ejecuta la función TaskEither para convertir de vuelta a Promise cuando sea necesario para APIs externas.
¿Cómo acumulo múltiples errores de validación en lugar de fallar rápidamente?
Usa sequenceS con getApplicativeValidation y un Semigroup para tu tipo de error. Esto combina todas las validaciones y acumula errores usando la operación concat del Semigroup.

Detalles del desarrollador

Estructura de archivos

📄 SKILL.md