const characterReferences = {'"': 'quot', '&': 'amp', '<': 'lt', '>': 'gt'} /** * Encode only the dangerous HTML characters. * * This ensures that certain characters which have special meaning in HTML are * dealt with. * Technically, we can skip `>` and `"` in many cases, but CM includes them. * * @param {string} value * Value to encode. * @returns {string} * Encoded value. */ export function encode(value) { return value.replace(/["&<>]/g, replace) /** * @param {string} value * @returns {string} */ function replace(value) { // @ts-expect-error Hush, it’s fine. return '&' + characterReferences[value] + ';' } }