Newer
Older
client_dwatch / lib / api / json-body.ts
/**
 * JSON の本文がオブジェクト(`null`・配列・数値・文字列でない)か(指示書BB A5・D19・D-182。`lib/prechecks/status-update.ts` と同じ判定)。
 *
 * ★`request.json()` が読めても、中身が `null` や配列だと `body.token` 等で TypeError になり、標準でない500になる★。
 *   ルートは `unknown` で受けてこの関数で狭める(型で嘘をつかない)。オブジェクトでなければ 422「JSONの形式が不正です」。
 */
export function isJsonObject(body: unknown): body is Record<string, unknown> {
  return body !== null && typeof body === "object" && !Array.isArray(body);
}