// 聊天室前端 HTML 安全工具，供 Blade 内联脚本迁移到 Vite 后复用。

const HTML_ESCAPE_MAP = {
    "&": "&amp;",
    "<": "&lt;",
    ">": "&gt;",
    '"': "&quot;",
    "'": "&#039;",
};

/**
 * 转义可被拼入 innerHTML 的动态文本。
 *
 * @param {unknown} value
 * @returns {string}
 */
export function escapeHtml(value) {
    return String(value ?? "").replace(/[&<>"']/g, (char) => HTML_ESCAPE_MAP[char]);
}

/**
 * 转义多行文本，并保留换行展示。
 *
 * @param {unknown} value
 * @returns {string}
 */
export function escapeHtmlWithLineBreaks(value) {
    return escapeHtml(value).replace(/\n/g, "<br>");
}
