/
uzer_007
/
Rixea
Обзор
Документация
Войти
/
uzer_007
/
Rixea
Код
Запросы
0
Задачи
Вики
Пакеты
5
Релизы
2
CI/CD
Аналитика
Безопасность
master
web_src/js/utils/html.ts
32 строки
1 KB
uzer_007
feat: первая версия Rixea
02 авг 2026, 22:16
02 авг 2026, 22:16
d4f7504
Код
Авторство
О чём код?
export function htmlEscape(s: string, ...args: Array<any>): string { if (args.length !== 0) throw new Error('use html or htmlRaw instead of htmlEscape'); // check legacy usages return s.replace(/&/g, '&') .replace(/"/g, '"') .replace(/'/g, ''') .replace(/</g, '<') .replace(/>/g, '>'); } class rawObject { private readonly value: string; constructor(v: string) { this.value = v } toString(): string { return this.value } } export function html(tmpl: TemplateStringsArray, ...parts: Array<any>): string { let output = tmpl[0]; for (let i = 0; i < parts.length; i++) { const value = parts[i]; const valueEscaped = (value instanceof rawObject) ? value.toString() : htmlEscape(String(value)); output = output + valueEscaped + tmpl[i + 1]; } return output; } export function htmlRaw(s: string | TemplateStringsArray, ...tmplParts: Array<any>): rawObject { if (typeof s === 'string') { if (tmplParts.length !== 0) throw new Error("either htmlRaw('str') or htmlRaw`tmpl`"); return new rawObject(s); } return new rawObject(html(s, ...tmplParts)); }