eslint-config-chain-able
Version:
an opinionated ESLint configuration
20 lines (17 loc) • 570 B
JavaScript
var aFrom = require('../array/from')
, assign = require('./assign')
, value = require('./valid-value');
module.exports = function (obj/*, propertyNames, options*/) {
var copy = Object(value(obj)), propertyNames = arguments[1], options = Object(arguments[2]);
if (copy !== obj && !propertyNames) return copy;
var result = {};
if (propertyNames) {
aFrom(propertyNames, function (propertyName) {
if (options.ensure || propertyName in obj) result[propertyName] = obj[propertyName];
});
} else {
assign(result, obj);
}
return result;
};
;