module.exports = function sortObjectByKeyNameList(object, sortWith) { var keys; var sortFn; if (typeof sortWith === 'function') { sortFn = sortWith; } else { keys = sortWith; } var objectKeys = Object.keys(object); return (keys || []).concat(objectKeys.sort(sortFn)).reduce(function(total, key) { if (objectKeys.indexOf(key) !== -1) { total[key] = object[key]; } return total; }, Object.create(null)); }