nornj
Version:
A powerful template engine that can works with React, JSX enhancement or alternative tools.
68 lines (55 loc) • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.escape = escape;
exports.unescape = unescape;
var _core = _interopRequireDefault(require("../core"));
var _tools = require("./tools");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var ESCAPE_LOOKUP = {
'&': '&',
'>': '>',
'<': '<',
'"': '"',
"'": ''' // eslint-disable-line
};
var REGEX_ESCAPE = /[&><"']/g;
function escape(str) {
if (str == null) {
return '';
} else if (!str.replace) {
return str;
}
return str.replace(REGEX_ESCAPE, function (match) {
return ESCAPE_LOOKUP[match];
});
}
var UNESCAPE_LOOKUP = {
nbsp: "\xA0",
ensp: "\u2002",
emsp: "\u2003",
thinsp: "\u2009",
zwnj: "\u200C",
zwj: "\u200D",
lt: '<',
gt: '>',
amp: '&',
quot: '"',
'#x27': "'" // eslint-disable-line
};
var REGEX_UNESCAPE = new RegExp('&(' + Object.keys(UNESCAPE_LOOKUP).join('|') + ');', 'g');
function unescape(str) {
if (str == null) {
return '';
} else if (!str.replace) {
return str;
}
return str.replace(REGEX_UNESCAPE, function (all, match) {
return UNESCAPE_LOOKUP[match];
});
}
(0, _tools.assign)(_core["default"], {
escape: escape,
unescape: unescape
});