All files / src/utils sanitizeHtml.ts

100% Statements 22/22
100% Branches 4/4
100% Functions 1/1
100% Lines 22/22

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29    1x     1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x   1x 124x 124x 119x 119x   1x  
import type { Config } from "dompurify";
 
import DOMPurify from "dompurify";
 
// DOMPurify-backed sanitizer. Keeps defaults and adds minimal SVG tags/attrs for icon sprites.
const config: Config = {
  ADD_TAGS: ["svg", "symbol", "defs", "use", "path", "g"],
  ADD_ATTR: [
    "viewBox",
    "xmlns",
    "fill",
    "stroke",
    "d",
    "width",
    "height",
    "focusable",
    "xlink:href",
  ],
  FORBID_TAGS: ["img"],
};
 
export function sanitizeHtml(dirtyHtml: string | null | undefined): string {
  const input = (dirtyHtml ?? "").toString();
  if (input.trim() === "") return "";
  return DOMPurify.sanitize(input, config) as string;
}
 
export default sanitizeHtml;