ws4kp-linhanced/server/scripts/modules/icons.mjs

58 lines
1.3 KiB
JavaScript
Raw Normal View History

2025-05-14 15:03:35 -05:00
import largeIcon from './icons/icons-large.mjs';
import smallIcon from './icons/icons-small.mjs';
import hourlyIcon from './icons/icons-hourly.mjs';
2022-11-22 16:19:10 -06:00
const getWeatherGovTokenFromWmoCode = (code) => {
switch (Number(code)) {
case 0: return 'skc';
case 1: return 'few';
case 2: return 'sct';
case 3: return 'ovc';
case 45:
case 48:
return 'fog';
case 51:
case 53:
case 55:
case 80:
return 'rain_showers';
case 56:
case 57:
case 66:
case 67:
return 'fzra';
case 61:
case 63:
case 65:
case 81:
case 82:
return 'rain';
case 71:
case 73:
case 75:
case 85:
case 86:
return 'snow';
case 77:
return 'sleet';
case 95:
case 96:
case 99:
return 'tsra';
default:
return 'ovc';
}
};
const buildSyntheticIconUrl = (code, isDaytime = true) => `/icons/land/${isDaytime ? 'day' : 'night'}/${getWeatherGovTokenFromWmoCode(code)}`;
const getLargeIconFromWmoCode = (code, isDaytime = true) => largeIcon(buildSyntheticIconUrl(code, isDaytime), !isDaytime);
const getSmallIconFromWmoCode = (code, isDaytime = true) => smallIcon(buildSyntheticIconUrl(code, isDaytime), !isDaytime);
2022-11-22 16:19:10 -06:00
export {
2025-05-14 15:03:35 -05:00
largeIcon as getLargeIcon,
smallIcon as getSmallIcon,
hourlyIcon as getHourlyIcon,
getLargeIconFromWmoCode,
getSmallIconFromWmoCode,
2022-11-22 16:19:10 -06:00
};