Reactive-Extensions/RxJS

View on GitHub
src/core/linq/observable/pluck.js

Summary

Maintainability
B
4 hrs
Test Coverage
Function `plucker` has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
function plucker(args, len) {
return function mapper(x) {
var currentProp = x;
for (var i = 0; i < len; i++) {
var p = currentProp[args[i]];
if (typeof p !== 'undefined') {
currentProp = p;
} else {
return undefined;
}
}
return currentProp;
};
}
 
/**
* Retrieves the value of a specified nested property from all elements in
* the Observable sequence.
* @param {Arguments} arguments The nested properties to pluck.
* @returns {Observable} Returns a new Observable sequence of property values.
*/
Identical blocks of code found in 3 locations. Consider refactoring.
observableProto.pluck = function () {
var len = arguments.length, args = new Array(len);
if (len === 0) { throw new Error('List of properties cannot be empty.'); }
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
return this.map(plucker(args, len));
};