1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.element = exports.ctag = exports.otag = exports.text = void 0;
|
4 |
|
5 | const invalidXMLUnicodeRegex = /[\u0001-\u0008\u000B\u000C\u000E-\u001F\u007F-\u0084\u0086-\u009F\uD800-\uDFFF\uFDD0-\uFDDF\u{1FFFE}-\u{1FFFF}\u{2FFFE}-\u{2FFFF}\u{3FFFE}-\u{3FFFF}\u{4FFFE}-\u{4FFFF}\u{5FFFE}-\u{5FFFF}\u{6FFFE}-\u{6FFFF}\u{7FFFE}-\u{7FFFF}\u{8FFFE}-\u{8FFFF}\u{9FFFE}-\u{9FFFF}\u{AFFFE}-\u{AFFFF}\u{BFFFE}-\u{BFFFF}\u{CFFFE}-\u{CFFFF}\u{DFFFE}-\u{DFFFF}\u{EFFFE}-\u{EFFFF}\u{FFFFE}-\u{FFFFF}\u{10FFFE}-\u{10FFFF}]/gu;
|
6 | const amp = /&/g;
|
7 | const lt = /</g;
|
8 | const apos = /'/g;
|
9 | const quot = /"/g;
|
10 | function text(txt) {
|
11 | return txt
|
12 | .replace(amp, '&')
|
13 | .replace(lt, '<')
|
14 | .replace(invalidXMLUnicodeRegex, '');
|
15 | }
|
16 | exports.text = text;
|
17 | function otag(nodeName, attrs, selfClose = false) {
|
18 | let attrstr = '';
|
19 | for (const k in attrs) {
|
20 | const val = attrs[k]
|
21 | .replace(amp, '&')
|
22 | .replace(lt, '<')
|
23 | .replace(apos, ''')
|
24 | .replace(quot, '"')
|
25 | .replace(invalidXMLUnicodeRegex, '');
|
26 | attrstr += ` ${k}="${val}"`;
|
27 | }
|
28 | return `<${nodeName}${attrstr}${selfClose ? '/' : ''}>`;
|
29 | }
|
30 | exports.otag = otag;
|
31 | function ctag(nodeName) {
|
32 | return `</${nodeName}>`;
|
33 | }
|
34 | exports.ctag = ctag;
|
35 | function element(nodeName, attrs, innerText) {
|
36 | if (typeof attrs === 'string') {
|
37 | return otag(nodeName) + text(attrs) + ctag(nodeName);
|
38 | }
|
39 | else if (innerText) {
|
40 | return otag(nodeName, attrs) + text(innerText) + ctag(nodeName);
|
41 | }
|
42 | else {
|
43 | return otag(nodeName, attrs, true);
|
44 | }
|
45 | }
|
46 | exports.element = element;
|