Comparing version 0.6.0 to 0.7.0
# WebDAV-client changelog | ||
## 0.7.0 | ||
_2017-06-03_ | ||
* Remove lodash (performance improvement) | ||
## 0.6.0 | ||
@@ -4,0 +9,0 @@ _2017-04-13_ |
{ | ||
"name": "webdav", | ||
"version": "0.6.0", | ||
"version": "0.7.0", | ||
"description": "WebDAV client for NodeJS", | ||
@@ -8,3 +8,3 @@ "main": "source/index.js", | ||
"generate:docs": "jsdoc2md 'source/**/*.js' > API.md", | ||
"test": "find ./test/specs -name '*.spec.js' | xargs mocha -R spec" | ||
"test": "mocha -r test/specs/index.js test/specs/**/*.spec.js" | ||
}, | ||
@@ -29,3 +29,2 @@ "repository": { | ||
"deepmerge": "^1.3.1", | ||
"lodash": "^4.17.4", | ||
"node-fetch": "^1.6.3", | ||
@@ -32,0 +31,0 @@ "xml2js": "^0.4.17" |
var path = require("path"); | ||
var _ = require("lodash"); | ||
_.mixin({ | ||
getOne: function(object, keys) { | ||
var val, | ||
keysLen = keys.length; | ||
for (var i = 0; i < keysLen; i += 1) { | ||
val = _.get(object, keys[i]); | ||
if (val !== undefined) { | ||
return val; | ||
function getOne(object, keys) { | ||
for (var i = 0, numKeys = keys.length; i < numKeys; i += 1) { | ||
try { | ||
var key = keys[i].split("."), | ||
current = object; | ||
while (key.length > 0) { | ||
var keypart = key.shift(), | ||
prop = /^\d+$/.test(keypart) ? | ||
parseInt(keypart, 10) : | ||
keypart; | ||
current = current[prop]; | ||
} | ||
if (current !== undefined) { | ||
return current; | ||
} | ||
} catch (err) { | ||
// ignore | ||
} | ||
return undefined; | ||
} | ||
}); | ||
return undefined; | ||
} | ||
@@ -45,9 +50,9 @@ function filterItemsByDepth(items) { | ||
try { | ||
var multistatus = _.getOne(dirResult, ["d:multistatus", "D:multistatus", "multistatus"]); | ||
responseItems = _.getOne(multistatus, ["d:response", "D:response", "response"]) || []; | ||
var multistatus = getOne(dirResult, ["d:multistatus", "D:multistatus", "multistatus"]); | ||
responseItems = getOne(multistatus, ["d:response", "D:response", "response"]) || []; | ||
} catch (e) {} | ||
responseItems.forEach(function(responseItem) { | ||
var propstat = _.getOne(responseItem, ["d:propstat.0", "D:propstat.0", "propstat.0"]), | ||
props = _.getOne(propstat, ["d:prop.0", "D:prop.0", "prop.0"]); | ||
var sanitisedFilePath = decodeURIComponent(processXMLStringValue(_.getOne(responseItem, ["d:href", "D:href", "href"]))), | ||
var propstat = getOne(responseItem, ["d:propstat.0", "D:propstat.0", "propstat.0"]), | ||
props = getOne(propstat, ["d:prop.0", "D:prop.0", "prop.0"]); | ||
var sanitisedFilePath = decodeURIComponent(processXMLStringValue(getOne(responseItem, ["d:href", "D:href", "href"]))), | ||
serverDepth = sanitisedFilePath | ||
@@ -63,3 +68,3 @@ .split("/") | ||
).trim(), | ||
resourceType = processXMLStringValue(_.getOne(props, ["lp1:resourcetype", "d:resourcetype", "D:resourcetype", "resourcetype"])), | ||
resourceType = processXMLStringValue(getOne(props, ["lp1:resourcetype", "d:resourcetype", "D:resourcetype", "resourcetype"])), | ||
itemType = (resourceType.indexOf("d:collection") >= 0 || resourceType.indexOf("D:collection") >= 0 || resourceType.indexOf("collection") >= 0) ? | ||
@@ -78,8 +83,8 @@ "directory" : "file"; | ||
basename: path.basename(filename), | ||
lastmod: processXMLStringValue(_.getOne(props, ["lp1:getlastmodified", "d:getlastmodified", "D:getlastmodified", "getlastmodified"])), | ||
size: parseInt(processXMLStringValue(_.getOne(props, ["lp1:getcontentlength", "d:getcontentlength", "D:getcontentlength", "getcontentlength"])) || "0", 10), | ||
lastmod: processXMLStringValue(getOne(props, ["lp1:getlastmodified", "d:getlastmodified", "D:getlastmodified", "getlastmodified"])), | ||
size: parseInt(processXMLStringValue(getOne(props, ["lp1:getcontentlength", "d:getcontentlength", "D:getcontentlength", "getcontentlength"])) || "0", 10), | ||
type: itemType, | ||
_depth: serverDepth | ||
}, | ||
mime = processXMLStringValue(_.getOne(props, ["d:getcontenttype", "D:getcontenttype", "getcontenttype"])); | ||
mime = processXMLStringValue(getOne(props, ["d:getcontenttype", "D:getcontenttype", "getcontenttype"])); | ||
if (mime) { | ||
@@ -132,4 +137,6 @@ item.mime = parseMIME(mime); | ||
getOne: getOne, | ||
parseDirectoryLookup: processDirectoryResult | ||
}; |
@@ -9,4 +9,2 @@ var path = require("path"), | ||
var expect = require("chai").expect; | ||
var createServer = require(__dirname + "/../resources/webdav-server.js"), | ||
@@ -13,0 +11,0 @@ alterAdapter = require(__dirname + "/../../source/adapter/alter.js"); |
@@ -7,4 +7,2 @@ var path = require("path"); | ||
var expect = require("chai").expect; | ||
var createServer = require("../resources/webdav-server.js"), | ||
@@ -11,0 +9,0 @@ getAdapter = require("../../source/adapter/get.js"), |
@@ -8,4 +8,2 @@ var path = require("path"), | ||
var expect = require("chai").expect; | ||
var createServer = require(__dirname + "/../resources/webdav-server.js"), | ||
@@ -12,0 +10,0 @@ putAdapter = require(__dirname + "/../../source/adapter/put.js"); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
50493
3
27
878
- Removedlodash@^4.17.4
- Removedlodash@4.17.21(transitive)