Initalize
This commit is contained in:
36
node_modules/preact/jsx-runtime/src/utils.js
generated
vendored
Normal file
36
node_modules/preact/jsx-runtime/src/utils.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
const ENCODED_ENTITIES = /["&<]/;
|
||||
|
||||
/** @param {string} str */
|
||||
export function encodeEntities(str) {
|
||||
// Skip all work for strings with no entities needing encoding:
|
||||
if (str.length === 0 || ENCODED_ENTITIES.test(str) === false) return str;
|
||||
|
||||
let last = 0,
|
||||
i = 0,
|
||||
out = '',
|
||||
ch = '';
|
||||
|
||||
// Seek forward in str until the next entity char:
|
||||
for (; i < str.length; i++) {
|
||||
switch (str.charCodeAt(i)) {
|
||||
case 34:
|
||||
ch = '"';
|
||||
break;
|
||||
case 38:
|
||||
ch = '&';
|
||||
break;
|
||||
case 60:
|
||||
ch = '<';
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
// Append skipped/buffered characters and the encoded entity:
|
||||
if (i !== last) out += str.slice(last, i);
|
||||
out += ch;
|
||||
// Start the next seek/buffer after the entity's offset:
|
||||
last = i + 1;
|
||||
}
|
||||
if (i !== last) out += str.slice(last, i);
|
||||
return out;
|
||||
}
|
||||
Reference in New Issue
Block a user