eslint-formatter-junit
Version:
ESLint’s official `junit` formatter, unofficially published as a standalone module
35 lines (32 loc) • 813 B
JavaScript
/**
* @fileoverview XML character escaper
* @author George Chung
*/
//------------------------------------------------------------------------------
// Public Interface
//------------------------------------------------------------------------------
/**
* Returns the escaped value for a character
* @param {string} s string to examine
* @returns {string} severity level
* @private
*/
module.exports = function (s) {
return `${s}`.replace(/[<>&"'\x00-\x1F\x7F\u0080-\uFFFF]/gu, c => {
// eslint-disable-line no-control-regex -- Converting controls to entities
switch (c) {
case '<':
return '<';
case '>':
return '>';
case '&':
return '&';
case '"':
return '"';
case "'":
return ''';
default:
return `&#${c.charCodeAt(0)};`;
}
});
};