in lib/prepare.js [195:235]
function prepareIcons (icons) {
let customIcon;
let appIcon;
let installerIcon;
// choose one icon for a target
const chooseOne = (defaultIcon, icon) => {
events.emit('verbose', `Found extra icon for target ${icon.target}: ${defaultIcon.src} and ignoring in favor of ${icon.src}.`);
defaultIcon = icon;
return defaultIcon;
};
// find if there is high resolution images that has DPI suffix
const highResAndRemainingIcons = findHighResIcons(icons);
const highResIcons = highResAndRemainingIcons.highResIcons;
const remainingIcons = highResAndRemainingIcons.remainingIcons;
// iterate over remaining icon elements to find the icons for the app and installer
for (const icon of remainingIcons) {
const size = icon.width || icon.height;
icon.extension = path.extname(icon.src);
switch (icon.target) {
case 'app':
appIcon = appIcon ? chooseOne(appIcon, icon) : icon;
break;
case 'installer':
installerIcon = installerIcon ? chooseOne(installerIcon, icon) : icon;
break;
case undefined:
if ((size >= 512 || size === undefined) && !Object.keys(highResIcons).length) {
customIcon = customIcon ? chooseOne(customIcon, icon) : icon;
}
break;
}
}
return { customIcon, appIcon, installerIcon, highResIcons };
}