UNPKG

nornj

Version:

A powerful template engine that can works with React, JSX enhancement or alternative tools.

68 lines (55 loc) 1.3 kB
"use strict"; 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 = { '&': '&amp;', '>': '&gt;', '<': '&lt;', '"': '&quot;', "'": '&#x27;' // 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 });