Sha256: f26e60ac125b1335897395337b1bbcbe4aed9ee16ec34b1f3a42f3388acd496a
Contents?: true
Size: 863 Bytes
Versions: 7
Compression:
Stored size: 863 Bytes
Contents
/** * Properly escape JSON for usage as an object literal inside of a `<script>` tag. * JS implementation of http://golang.org/pkg/encoding/json/#HTMLEscape * More info: http://timelessrepo.com/json-isnt-a-javascript-subset */ 'use strict'; var ESCAPE_LOOKUP = { '&': '\\u0026', '>': '\\u003e', '<': '\\u003c', '\u2028': '\\u2028', '\u2029': '\\u2029' }; var ESCAPE_REGEX = /[&><\u2028\u2029]/g; function escaper(match) { return ESCAPE_LOOKUP[match]; } module.exports = function(obj) { return JSON.stringify(obj).replace(ESCAPE_REGEX, escaper); }; /***/ var TERMINATORS_LOOKUP = { '\u2028': '\\u2028', '\u2029': '\\u2029' }; var TERMINATORS_REGEX = /[\u2028\u2029]/g; function sanitizer(match) { return TERMINATORS_LOOKUP[match]; } module.exports.sanitize = function(str) { return str.replace(TERMINATORS_REGEX, sanitizer); };
Version data entries
7 entries across 7 versions & 2 rubygems