Skip to content

getStatus / status

Una tabla que empareja códigos de estado HTTP con sus mensajes, más el ayudante bidireccional getStatus: los mismos datos que ofrece el propio http.STATUS_CODES de Node, empaquetados también para el navegador.

Uso

ts
import { getStatus, status } from 'ranuts/utils';

getStatus(404); // 'Not Found'
getStatus('404'); // 'Not Found' — las cadenas numéricas se leen antes como código
getStatus('not found'); // 404 — si no, busca por mensaje, sin distinguir mayúsculas

status.redirect[302]; // true
status.empty[204]; // true
status.retry[503]; // true

API

getStatus(code)

Parámetros

ParámetroDescripciónTipoPor defecto
codeUn código de estado, una cadena numérica o un mensaje de estadonumber | stringObligatorio

Devuelve

number | string. Pásale un number y recibes el mensaje; pásale un string y recibes el código (una cadena numérica como '404' se lee primero como código, y solo se busca como mensaje si no es un código conocido). Lanza una excepción si la entrada no encaja en ninguno de los dos.

status

CampoDescripciónTipo
messageCódigo → mensajeMap<number, string>
codeMensaje en minúsculas → códigoMap<string, number>
codesTodos los códigos conocidosnumber[]
redirectCódigos que redirigen (300, 301, 302, 303, 305, 307, 308)Record<number, true>
emptyCódigos sin cuerpo (204, 205, 304)Record<number, true>
retryCódigos que merece la pena reintentar (502, 503, 504)Record<number, true>

Notas

  1. getStatus lanza una excepción con un código o mensaje desconocido: TypeError si el argumento no es number ni string, y Error en los demás casos. Envuélvelo en try/catch (o comprueba antes status.codes.includes(n)) cuando la entrada no venga garantizada, como un código de estado leído de la red.
  2. status.redirect, empty y retry son objetos corrientes, no Set: comprueba la pertenencia con status.retry[code], no con .has().
  3. Corre tanto en el navegador como en Node (ranuts/utils), así que en el cliente dispones de la misma correspondencia código↔mensaje que usaría un manejador de ranuts/node en el servidor.

Publicado bajo la licencia MIT.