diff --git a/eslint.config.mjs b/eslint.config.mjs index 489c98c211..e094230ec9 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -367,7 +367,6 @@ export default tseslint.config( rules: { '@typescript-eslint/no-floating-promises': 'off', '@typescript-eslint/no-this-alias': 'off', - '@typescript-eslint/no-unused-vars': 'warn', 'sonarjs/public-static-readonly': 'off', diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index 54e9d33a8e..1f7da16557 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -484,7 +484,7 @@ function getAirTimeText(item, showAirDateTime, showAirEndTime) { airTimeText += ' - ' + datetime.getDisplayTime(date); } } catch (e) { - console.error('error parsing date: ' + item.StartDate); + console.error('error parsing date: ' + item.StartDate, e); } } @@ -617,7 +617,7 @@ function getCardFooterText(item, apiClient, options, footerClass, progressHtml, datetime.parseISO8601Date(item.PremiereDate), { weekday: 'long', month: 'long', day: 'numeric' } )); - } catch (err) { + } catch { lines.push(''); } } else { diff --git a/src/components/cardbuilder/cardBuilderUtils.test.ts b/src/components/cardbuilder/cardBuilderUtils.test.ts index 7aa749af12..af5d189f36 100644 --- a/src/components/cardbuilder/cardBuilderUtils.test.ts +++ b/src/components/cardbuilder/cardBuilderUtils.test.ts @@ -678,6 +678,7 @@ describe('getDefaultBackgroundClass', () => { }); test('randomization string provided', () => { + // eslint-disable-next-line sonarjs/pseudo-random const generateRandomString = (stringLength: number): string => (Math.random() + 1).toString(36).substring(stringLength); for (let i = 0; i < 100; i++) { diff --git a/src/components/guide/guide.js b/src/components/guide/guide.js index a56ae355f4..0b72fc023d 100644 --- a/src/components/guide/guide.js +++ b/src/components/guide/guide.js @@ -358,7 +358,7 @@ function Guide(options) { if ((typeof date).toString().toLowerCase() === 'string') { try { date = datetime.parseISO8601Date(date, { toLocal: true }); - } catch (err) { + } catch { return date; } } @@ -392,7 +392,7 @@ function Guide(options) { try { program.StartDateLocal = datetime.parseISO8601Date(program.StartDate, { toLocal: true }); } catch (err) { - console.error('error parsing timestamp for start date'); + console.error('error parsing timestamp for start date', err); } } @@ -400,7 +400,7 @@ function Guide(options) { try { program.EndDateLocal = datetime.parseISO8601Date(program.EndDate, { toLocal: true }); } catch (err) { - console.error('error parsing timestamp for end date'); + console.error('error parsing timestamp for end date', err); } } diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js index 4ce337f586..3b5b20756a 100644 --- a/src/components/mediainfo/mediainfo.js +++ b/src/components/mediainfo/mediainfo.js @@ -60,7 +60,7 @@ function getProgramInfoHtml(item, options) { miscInfo.push(text); } catch (e) { - console.error('error parsing date:', item.StartDate); + console.error('error parsing date:', item.StartDate, e); } } @@ -140,7 +140,7 @@ export function getMediaInfoHtml(item, options = {}) { text = datetime.toLocaleDateString(date); miscInfo.push(text); } catch (e) { - console.error('error parsing date:', item.PremiereDate); + console.error('error parsing date:', item.PremiereDate, e); } } @@ -170,7 +170,7 @@ export function getMediaInfoHtml(item, options = {}) { miscInfo.push(text); } } catch (e) { - console.error('error parsing date:', item.StartDate); + console.error('error parsing date:', item.StartDate, e); } } @@ -188,7 +188,7 @@ export function getMediaInfoHtml(item, options = {}) { text += ` - ${endYear}`; } } catch (e) { - console.error('error parsing date:', item.EndDate); + console.error('error parsing date:', item.EndDate, e); } } @@ -238,7 +238,7 @@ export function getMediaInfoHtml(item, options = {}) { text = globalize.translate('OriginalAirDateValue', datetime.toLocaleDateString(date)); miscInfo.push(text); } catch (e) { - console.error('error parsing date:', program.PremiereDate); + console.error('error parsing date:', program.PremiereDate, e); } } else if (program.ProductionYear && options.year !== false ) { miscInfo.push(program.ProductionYear); @@ -255,7 +255,7 @@ export function getMediaInfoHtml(item, options = {}) { text = datetime.toLocaleString(datetime.parseISO8601Date(item.PremiereDate).getFullYear(), { useGrouping: false }); miscInfo.push(text); } catch (e) { - console.error('error parsing date:', item.PremiereDate); + console.error('error parsing date:', item.PremiereDate, e); } } } diff --git a/src/components/metadataEditor/metadataEditor.js b/src/components/metadataEditor/metadataEditor.js index 7cd3b907e2..3ccdcbd928 100644 --- a/src/components/metadataEditor/metadataEditor.js +++ b/src/components/metadataEditor/metadataEditor.js @@ -821,7 +821,7 @@ function fillItemInfo(context, item, parentalRatingOptions) { date = datetime.parseISO8601Date(item.DateCreated, true); context.querySelector('#txtDateAdded').value = date.toISOString().slice(0, 10); - } catch (e) { + } catch { context.querySelector('#txtDateAdded').value = ''; } } else { @@ -833,7 +833,7 @@ function fillItemInfo(context, item, parentalRatingOptions) { date = datetime.parseISO8601Date(item.PremiereDate, true); context.querySelector('#txtPremiereDate').value = date.toISOString().slice(0, 10); - } catch (e) { + } catch { context.querySelector('#txtPremiereDate').value = ''; } } else { @@ -845,7 +845,7 @@ function fillItemInfo(context, item, parentalRatingOptions) { date = datetime.parseISO8601Date(item.EndDate, true); context.querySelector('#txtEndDate').value = date.toISOString().slice(0, 10); - } catch (e) { + } catch { context.querySelector('#txtEndDate').value = ''; } } else { diff --git a/src/controllers/lyrics.js b/src/controllers/lyrics.js index f2af5c32ad..6272f7fcc5 100644 --- a/src/controllers/lyrics.js +++ b/src/controllers/lyrics.js @@ -265,7 +265,7 @@ export default function (view) { document.addEventListener('keydown', onKeyDown); try { onLoad(); - } catch (e) { + } catch { appRouter.goHome(); } }); diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index 1c28888b3a..104a2d142a 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -713,7 +713,7 @@ export default function (view) { }, state); } } catch (e) { - console.error('error parsing date: ' + program.EndDate); + console.error('error parsing date: ' + program.EndDate, e); } } } @@ -1712,7 +1712,7 @@ export default function (view) { if (browser.firefox || browser.edge) { dom.addEventListener(document, 'click', onClickCapture, { capture: true }); } - } catch (e) { + } catch { setBackdropTransparency(TRANSPARENCY_LEVEL.None); // reset state set in viewbeforeshow appRouter.goHome(); } diff --git a/src/controllers/shows/tvupcoming.js b/src/controllers/shows/tvupcoming.js index ab3f251b14..65db7731e0 100644 --- a/src/controllers/shows/tvupcoming.js +++ b/src/controllers/shows/tvupcoming.js @@ -61,7 +61,7 @@ function renderUpcoming(elem, items) { day: 'numeric' }); } catch (err) { - console.error('error parsing timestamp for upcoming tv shows'); + console.error('error parsing timestamp for upcoming tv shows', err); } } diff --git a/src/lib/globalize/index.js b/src/lib/globalize/index.js index fc76a209df..1029a2280d 100644 --- a/src/lib/globalize/index.js +++ b/src/lib/globalize/index.js @@ -79,7 +79,7 @@ export function updateCurrentCulture() { let culture; try { culture = userSettings.language(); - } catch (err) { + } catch { console.error('no language set in user settings'); } culture = culture || getDefaultLanguage(); @@ -92,7 +92,7 @@ export function updateCurrentCulture() { let dateTimeCulture; try { dateTimeCulture = userSettings.dateTimeLocale(); - } catch (err) { + } catch { console.error('no date format set in user settings'); } diff --git a/src/lib/legacy/domParserTextHtml.js b/src/lib/legacy/domParserTextHtml.js index cea84c79f6..9cace5df2e 100644 --- a/src/lib/legacy/domParserTextHtml.js +++ b/src/lib/legacy/domParserTextHtml.js @@ -22,7 +22,7 @@ // text/html parsing is natively supported return; } - } catch (ex) { /* noop */ } + } catch { /* noop */ } DOMParserPrototype.parseFromString = function (markup, type) { if (/^\s*text\/html\s*(?:;|$)/i.test(type)) { diff --git a/src/lib/legacy/keyboardEvent.js b/src/lib/legacy/keyboardEvent.js index b2e114a383..488a914a19 100644 --- a/src/lib/legacy/keyboardEvent.js +++ b/src/lib/legacy/keyboardEvent.js @@ -8,7 +8,7 @@ try { new window.KeyboardEvent('event', { bubbles: true, cancelable: true }); - } catch (e) { + } catch { // We can't use `KeyboardEvent` in old WebKit because `initKeyboardEvent` // doesn't seem to populate some properties (`keyCode`, `which`) that // are read-only. diff --git a/src/lib/legacy/patchHeaders.js b/src/lib/legacy/patchHeaders.js index 5c99b6a358..e8d7c80922 100644 --- a/src/lib/legacy/patchHeaders.js +++ b/src/lib/legacy/patchHeaders.js @@ -13,7 +13,7 @@ if (window.Headers) { try { new window.Headers(undefined); - } catch (_) { + } catch { console.debug('patch \'Headers\' to accept \'undefined\''); const _Headers = window.Headers; diff --git a/src/plugins/htmlVideoPlayer/plugin.js b/src/plugins/htmlVideoPlayer/plugin.js index f25ba3994e..9ab641e9e7 100644 --- a/src/plugins/htmlVideoPlayer/plugin.js +++ b/src/plugins/htmlVideoPlayer/plugin.js @@ -1512,7 +1512,7 @@ export class HtmlVideoPlayer { trackElement.removeCue(trackElement.cues[0]); } } catch (e) { - console.error('error removing cue from textTrack'); + console.error('error removing cue from textTrack', e); } trackElement.mode = 'disabled'; diff --git a/src/scripts/datetime.js b/src/scripts/datetime.js index 6de53c0167..bcc48b1d74 100644 --- a/src/scripts/datetime.js +++ b/src/scripts/datetime.js @@ -211,7 +211,7 @@ export function getDisplayDateTime(date) { if (typeof date === 'string') { try { date = parseISO8601Date(date, true); - } catch (err) { + } catch { return date; } } @@ -227,7 +227,7 @@ export function getDisplayTime(date) { if (typeof date === 'string') { try { date = parseISO8601Date(date, true); - } catch (err) { + } catch { return date; } } diff --git a/src/scripts/keyboardNavigation.js b/src/scripts/keyboardNavigation.js index d98c70ed01..a07a8a270e 100644 --- a/src/scripts/keyboardNavigation.js +++ b/src/scripts/keyboardNavigation.js @@ -64,7 +64,7 @@ let hasFieldKey = false; try { hasFieldKey = 'key' in new KeyboardEvent('keydown'); } catch (e) { - console.error("error checking 'key' field"); + console.error("error checking 'key' field", e); } if (!hasFieldKey) { diff --git a/src/scripts/screensavermanager.js b/src/scripts/screensavermanager.js index 2ef416a387..fccc2751a8 100644 --- a/src/scripts/screensavermanager.js +++ b/src/scripts/screensavermanager.js @@ -31,7 +31,7 @@ function getScreensaverPlugin(isLoggedIn) { let option; try { option = userSettings.get('screensaver', false); - } catch (err) { + } catch { option = isLoggedIn ? 'backdropscreensaver' : 'logoscreensaver'; } diff --git a/src/utils/dashboard.js b/src/utils/dashboard.js index 46c181910d..9b468730d6 100644 --- a/src/utils/dashboard.js +++ b/src/utils/dashboard.js @@ -61,7 +61,7 @@ export async function serverAddress() { let config; try { config = await resp.json(); - } catch (err) { + } catch { return; } diff --git a/src/utils/number.ts b/src/utils/number.ts index 553280c1fe..af7e5f7307 100644 --- a/src/utils/number.ts +++ b/src/utils/number.ts @@ -9,6 +9,7 @@ function toLocaleStringSupportsOptions() { * @returns {number} Randomly generated number. */ export function randomInt(min: number, max: number): number { + // eslint-disable-next-line sonarjs/pseudo-random return Math.floor(Math.random() * (max - min + 1)) + min; }