homebridge-wemo
Version:
Homebridge plugin to integrate Wemo devices into HomeKit.
53 lines (46 loc) • 1.1 kB
JavaScript
function decodeXML(input) {
return input
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, '\'')
.replace(/&/g, '&')
}
function generateRandomString(length) {
const chars = 'abcdefghijklmnopqrstuvwxyz0123456789'
let nonce = ''
while (nonce.length < length) {
nonce += chars.charAt(Math.floor(Math.random() * chars.length))
}
return nonce
}
const hasProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)
function parseError(err, hideStack = []) {
let toReturn = err.message
if (err?.stack?.length > 0 && !hideStack.includes(err.message)) {
const stack = err.stack.split('\n')
if (stack[1]) {
toReturn += stack[1].replace(' ', '')
}
}
return toReturn
}
function parseSerialNumber(input) {
return input
.toString()
.replace(/[\s'"]+/g, '')
.toUpperCase()
}
function sleep(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms)
})
}
export {
decodeXML,
generateRandomString,
hasProperty,
parseError,
parseSerialNumber,
sleep,
}