@documentica/webdav
Version:
Documentica Webdav Client
43 lines (42 loc) • 1.49 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const createWebdavRequest_1 = require("../createWebdavRequest");
const utils_1 = require("../utils");
function propFind({ config, path, properties, depth, success, fail, headers, include }) {
const props = properties || ["allprop"];
var propsBody = `<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
${props[0] == "allprop" ? "<d:allprop/>" :
props[0] == "propname" ? "<d:propname/>" : `
<d:prop>
${props.map(i => "<d:" + i + "/>").join("\n")}
</d:prop>`}
${props[0] == "allprop" && include ? `
<d:include>
${include.map(i => "<d:" + i + "/>").join("\n")}
</d:include>
` : ""}
</d:propfind>
`;
createWebdavRequest_1.createWebdavRequest({
config,
method: 'PROPFIND',
path,
multistatus: true,
responseType: 'xml',
success: function (status, body) {
const items = utils_1.multiStatusToPropfindResponse(body, config);
if (depth != "0") {
let [root, ...rest] = items;
success(rest, root);
}
else {
success(items);
}
},
fail,
headers: Object.assign({ Depth: depth || "0" }, headers),
body: propsBody
});
}
exports.default = propFind;
;