getStatus / status

جدولی برای یافتن کد وضعیت HTTP و پیام متناظرش، به‌همراه کمک‌کار دوسویهٔ getStatus: همان داده‌ای که http.STATUS_CODES خودِ Node می‌دهد، بسته‌بندی‌شده تا در مرورگر هم به کار آید.

کاربرد

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

getStatus(404); // 'Not Found'
getStatus('404'); // 'Not Found' — رشته‌های عددی نخست به‌عنوان کد خوانده می‌شوند
getStatus('not found'); // 404 — وگرنه از روی پیام جست‌وجو می‌شود، بی‌اعتنا به بزرگی حروف

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

API

getStatus(code)

پارامترها

پارامتر توضیح نوع پیش‌فرض
code یک کد وضعیت، یک رشتهٔ عددی، یا یک پیام وضعیت number | string الزامی

بازگشت

number | string. اگر number بدهید پیام برمی‌گردد؛ اگر string بدهید کد (رشتهٔ عددی مانند '404' نخست کد خوانده می‌شود و تنها اگر کد شناخته‌شده‌ای نباشد از روی پیام جست‌وجو می‌شود). اگر ورودی با هیچ‌کدام نخواند، خطا پرتاب می‌شود.

status

میدان توضیح نوع
message کد ← پیام Map<number, string>
code پیامِ حروف‌کوچک‌شده ← کد Map<string, number>
codes همهٔ کدهای شناخته‌شده number[]
redirect کدهایی که تغییر مسیر می‌دهند (300، 301، 302، 303، 305، 307، 308) Record<number, true>
empty کدهای بی‌بدنه (204، 205، 304) Record<number, true>
retry کدهایی که تلاش دوباره ارزشش را دارد (502، 503، 504) Record<number, true>

یادداشت‌ها

  1. getStatus با کد یا پیام ناشناخته خطا پرتاب می‌کند: اگر آرگومان نه number باشد و نه string، TypeError؛ در بقیهٔ حالت‌ها Error. وقتی درستی ورودی تضمین‌شده نیست — مثلاً کد وضعیتی که از شبکه خوانده‌اید — آن را در try/catch بپیچید یا نخست status.codes.includes(n) را وارسی کنید.
  2. status.redirect و empty و retry شیءهای ساده‌اند، نه Set: عضویت را با status.retry[code] بسنجید، نه با .has().
  3. هم در مرورگر و هم در Node اجرا می‌شود (ranuts/utils)، پس در سمت کارخواه همان نگاشت کد↔پیامی در دسترس است که یک رسیدگی‌کنندهٔ ranuts/node در سمت سرور به کار می‌برد.