#!/usr/bin/env node const BASE_URL = "http://localhost:9551/api/contents/update"; function truncateText(text, maxLen = 256) { if (typeof text !== "string") return ""; return text.length > maxLen ? text.slice(0, maxLen) : text; } async function requestLatest() { const url = `${BASE_URL}?date=latest`; try { const res = await fetch(url, { method: "GET" }); const text = await res.text().catch(() => ""); if (!res.ok) { const preview = truncateText(text, 256); console.error(`[FAIL] latest | ${url} -> ${res.status} ${res.statusText} ${preview ? `| ${preview}` : ""}`); return { ok: false, status: res.status, body: text }; } const preview = truncateText(text, 256); console.log(`[OK] latest | ${url} -> ${preview || res.status}`); return { ok: true, status: res.status, body: text }; } catch (err) { const errMsg = err instanceof Error ? err.message : String(err); console.error(`[ERROR] latest | ${url} -> ${truncateText(errMsg, 256)}`); return { ok: false, error: err }; } } // Node 18+ 환경 가정: fetch 전역 제공. 없으면 종료 안내. if (typeof fetch !== "function") { console.error("현재 Node 런타임에 fetch가 없습니다. Node 18+를 사용하거나 폴리필을 추가하세요."); process.exit(1); } requestLatest().catch((err) => { console.error("예상치 못한 오류:", err); process.exit(1); });