Todos los retos

TypeScript · media

Tragarse el 500

#29

Situación

El helper de la API se traga todos los fallos y devuelve null. La UI pinta un éxito vacío mientras a la guardia de ops le salta un 500 de verdad. Si algo falla, fetchOrder tiene que rechazar: los errores no se tapan.

Objetivo

El éxito sigue devolviendo el pedido; los fallos tienen que salir a la superficie, no convertirse en un null silencioso. fetchOrder(1){ id: 1 }. fetchOrder(500) rechaza con un mensaje que contenga ORDER_500.

El repo al empezar

workspace/
└── src/
    └── api.ts   (catch → null; UI shows "success")

Checks que pondrás en verde

  • exporta fetchOrder
  • fetchOrder(1) devuelve el pedido
  • fetchOrder(500) rechaza con ORDER_500

Conceptos

errorsasync-await

Juégalo en tu terminal

Con sharpen instalado, este comando abre exactamente este reto en tu arena local:

sharpen 29

¿Primera vez? La instalación completa está justo debajo.

Cómo jugar

  1. 1 Instala Claude Code si aún no lo tienes: claude.com/claude-code
  2. 2 Instala sharpen desde npm:
    npm install -g @juanwmedia/sharpen
  3. 3 Y lánzala; la arena se abre en tu navegador:
    sharpen 29
  4. o O pruébala sin instalar nada:
    npx @juanwmedia/sharpen 29
  5. 4 Y para actualizar cuando salga una versión nueva:
    sharpen update