codekingpro/portable-devtools
115k
1/**
2 * converts a list of change objects to a serialized XML format
3 */
4export function convertChangesToXML(changes) {
5 const ret = [];
6 for (let i = 0; i < changes.length; i++) {
7 const change = changes[i];
8 if (change.added) {
9 ret.push('<ins>');
10 }
11 else if (change.removed) {
12 ret.push('<del>');
13 }
14 ret.push(escapeHTML(change.value));
15 if (change.added) {
16 ret.push('</ins>');
17 }
18 else if (change.removed) {
19 ret.push('</del>');
20 }
21 }
22 return ret.join('');
23}
24function escapeHTML(s) {
25 let n = s;
26 n = n.replace(/&/g, '&');
27 n = n.replace(/</g, '<');
28 n = n.replace(/>/g, '>');
29 n = n.replace(/"/g, '"');
30 return n;
31}
32 