UNPKG

@documentica/webdav

Version:
86 lines (85 loc) 3.37 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const PrincipalCodec_1 = __importDefault(require("./PrincipalCodec")); const PrivilegesCodec_1 = __importDefault(require("./PrivilegesCodec")); function fromXML(nodeList) { let ace = { principal: null, privileges: [], grantdeny: null, inherited: null, invitationList: [] }; for (var i = 0; i < nodeList.length; i++) { var child = nodeList.item(i); if ((child.namespaceURI === null) || (child.namespaceURI !== 'DAV:')) { continue; } switch (child.localName) { case 'principal': ace.invertprincipal = false; ace.principal = PrincipalCodec_1.default.fromXML(child.childNodes); break; case 'invert': ace.invertprincipal = true; for (var j = 0; j < child.childNodes.length; j++) { var element = child.childNodes.item(j); if ((element.namespaceURI !== 'DAV:') || (element.localName !== 'principal')) { continue; } ace.principal = PrincipalCodec_1.default.fromXML(element.childNodes); } break; case 'grant': ace.grantdeny = "grant"; ace.privileges = PrivilegesCodec_1.default.fromXML(child.childNodes); break; case 'deny': ace.grantdeny = "deny"; ace.privileges = PrivilegesCodec_1.default.fromXML(child.childNodes); break; case 'protected': ace.isprotected = true; ace.privileges = PrivilegesCodec_1.default.fromXML(child.childNodes); break; case 'inherited': for (var j = 0; j < child.childNodes.length; j++) { var element = child.childNodes.item(j); if ((element.namespaceURI !== 'DAV:') || (element.localName !== 'href')) { continue; } ace.inherited = child.childNodes.item(j).childNodes.item(0).nodeValue; } ; break; case 'invitationlist': for (var j = 0; j < child.childNodes.length; j++) { var element = child.childNodes.item(j); if ((element.namespaceURI !== 'DAV:') || (element.localName !== 'email')) { continue; } ace.invitationList.push(child.childNodes.item(j).childNodes.item(0).nodeValue); } ; break; case 'expirationdate': for (var j = 0; j < child.childNodes.length; j++) { var d = child.childNodes.item(j).nodeValue; if (d) ace.expirationDate = new Date(d); } ; break; } } return ace; } exports.fromXML = fromXML; const codec = { fromXML, toXML: (value, xmlDoc) => xmlDoc }; exports.default = codec;