import config from "@delement/configs/prettyhtml";
import jsb from "js-beautify";
/**
* Получает отформатированную HTML-строку
* @param html{String}
* @param isFixQuotes{Boolean=}
* @returns {String} Возвращает форматированную HTML-строку (или пустую строку, если исходный HTML пустой).
* @example
* import { getPrettyHTML } from "@delement/ui/utils";
*
* const html = getPrettyHTML("
text
");
*/
export const getPrettyHTML = (html: string = "", isFixQuotes: boolean = true): string => {
if (!html) {
return "";
}
const replaceMasks: Array<[string, string]> = [
[ "=\"{", "='{" ],
[ "}\"", "}'" ],
[ """, "\"" ],
];
const getReplaced = (str: string) => {
replaceMasks.forEach(([ searchValue, replaceValue ]) => str = str.replaceAll(searchValue, replaceValue));
return str;
};
const source: string = isFixQuotes ? getReplaced(html) : html;
return jsb.html_beautify(source, config);
};