You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.4 KiB
62 lines
1.4 KiB
/** Make a node */
|
|
exports.mk = function mk (e) {
|
|
return document.createElement(e)
|
|
}
|
|
|
|
/** Find one by query */
|
|
exports.qs = function qs (s) {
|
|
return document.querySelector(s)
|
|
}
|
|
|
|
/** Find all by query */
|
|
exports.qsa = function qsa (s) {
|
|
return document.querySelectorAll(s)
|
|
}
|
|
|
|
/** Convert any to bool safely */
|
|
exports.bool = function bool (x) {
|
|
return (x === 1 || x === '1' || x === true || x === 'true')
|
|
}
|
|
|
|
/** Safe json parse */
|
|
exports.jsp = function jsp (str) {
|
|
try {
|
|
return JSON.parse(str)
|
|
} catch (e) {
|
|
console.error(e)
|
|
return null
|
|
}
|
|
}
|
|
|
|
/** Decode number from 2B encoding */
|
|
exports.parse2B = function parse2B (s, i = 0) {
|
|
return (s.charCodeAt(i++) - 1) + (s.charCodeAt(i) - 1) * 127
|
|
}
|
|
|
|
/** Decode number from 3B encoding */
|
|
exports.parse3B = function parse3B (s, i = 0) {
|
|
return (s.charCodeAt(i) - 1) + (s.charCodeAt(i + 1) - 1) * 127 + (s.charCodeAt(i + 2) - 1) * 127 * 127
|
|
}
|
|
|
|
/** Encode using 2B encoding, returns string. */
|
|
exports.encode2B = function encode2B (n) {
|
|
let lsb, msb
|
|
lsb = (n % 127)
|
|
n = ((n - lsb) / 127)
|
|
lsb += 1
|
|
msb = (n + 1)
|
|
return String.fromCharCode(lsb) + String.fromCharCode(msb)
|
|
}
|
|
|
|
/** Encode using 3B encoding, returns string. */
|
|
exports.encode3B = function encode3B (n) {
|
|
let lsb, msb, xsb
|
|
lsb = (n % 127)
|
|
n = (n - lsb) / 127
|
|
lsb += 1
|
|
msb = (n % 127)
|
|
n = (n - msb) / 127
|
|
msb += 1
|
|
xsb = (n + 1)
|
|
return String.fromCharCode(lsb) + String.fromCharCode(msb) + String.fromCharCode(xsb)
|
|
}
|
|
|