Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80522 views
1
/**
2
* Properly escape JSON for usage as an object literal inside of a `<script>` tag.
3
* JS implementation of http://golang.org/pkg/encoding/json/#HTMLEscape
4
* More info: http://timelessrepo.com/json-isnt-a-javascript-subset
5
*/
6
7
'use strict';
8
9
var ESCAPE_LOOKUP = {
10
'&': '\\u0026',
11
'>': '\\u003e',
12
'<': '\\u003c',
13
'\u2028': '\\u2028',
14
'\u2029': '\\u2029'
15
};
16
17
var ESCAPE_REGEX = /[&><\u2028\u2029]/g;
18
19
function escaper(match) {
20
return ESCAPE_LOOKUP[match];
21
}
22
23
module.exports = function(obj) {
24
return JSON.stringify(obj).replace(ESCAPE_REGEX, escaper);
25
};
26
27
/***/
28
29
var TERMINATORS_LOOKUP = {
30
'\u2028': '\\u2028',
31
'\u2029': '\\u2029'
32
};
33
34
var TERMINATORS_REGEX = /[\u2028\u2029]/g;
35
36
function sanitizer(match) {
37
return TERMINATORS_LOOKUP[match];
38
}
39
40
module.exports.sanitize = function(str) {
41
return str.replace(TERMINATORS_REGEX, sanitizer);
42
};
43
44