in lib/@uncharted/strippets/src/strippets.js [311:349]
Strippets.prototype.mapEntitiesToIconMap = function(data, iconMap) {
var concatEntities = function(array, item) {
return array.concat(item.entities);
};
var nameAndType = function(entity) {
return entity.name + '&' + entity.type;
};
var toEntityReference = function(entityList) {
return {
type: entityList[0].type,
name: entityList[0].name,
count: entityList.length,
};
};
// process data
var allEntities = data.reduce(concatEntities, []);
var entityGroups = _.groupBy(allEntities, nameAndType);
var entityReferences = Object.keys(entityGroups)
.map(function(key) {
return toEntityReference(entityGroups[key]);
})
.sort(function(entityRefA, entityRefB) {
return entityRefB.count - entityRefA.count;
});
entityReferences.forEach(function(entity) {
var entityAlreadyMapped = _.some(iconMap, function(icon) {
return icon.type === entity.type && entity.name !== undefined && icon.name === entity.name;
});
if (!entityAlreadyMapped) {
var unusedIcon = _.find(iconMap, function(icon) {
return icon.type === entity.type && icon.name === undefined && !icon.isDefault;
});
if (unusedIcon) {
unusedIcon.name = entity.name;
}
}
});
};