soundtouch-api
Version:
SoundTouch API using TypeScript
44 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.roleFromElement = exports.groupFromElement = void 0;
var utils_1 = require("./utils");
function groupFromElement(element) {
if (!element.hasAttribute('id')
|| !element.hasChildren(['name', 'masterDeviceId', 'roles', 'status'])) {
return undefined;
}
var roles = element.getChild('roles');
var id = element.getAttribute('id');
var name = element.getText('name');
var masterDeviceId = element.getText('masterDeviceId');
var status = element.getText('status');
if (!roles || !id || !name || !masterDeviceId || !status) {
return undefined;
}
return {
id: id,
name: name,
masterDeviceId: masterDeviceId,
status: status,
roles: (0, utils_1.compactMap)(roles.getList('groupRole'), roleFromElement)
};
}
exports.groupFromElement = groupFromElement;
function roleFromElement(element) {
if (!element.hasChildren(['deviceId', 'role', 'ipAddress'])) {
return undefined;
}
var deviceId = element.getText('deviceId');
var ipAddress = element.getText('ipAddress');
var role = element.getText('role');
if (!deviceId || !ipAddress || !role) {
return undefined;
}
return {
deviceId: deviceId,
ipAddress: ipAddress,
location: role,
};
}
exports.roleFromElement = roleFromElement;
//# sourceMappingURL=group.js.map