From b00e359a78da81ebb73bc71dfe92f1efa277afa7 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Fri, 28 Nov 2025 12:19:10 -0800 Subject: [PATCH] Enable more lints (#1330) --- .eslintrc | 5 +++++ packages/skin-database/api/processUserUploads.ts | 6 +++--- .../skin-database/legacy-client/src/upload/uploadUtils.js | 4 +++- packages/webamp/js/components/Skin.tsx | 4 +++- packages/webamp/js/utils.ts | 2 +- packages/webamp/scripts/compileSkin.ts | 4 +++- 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.eslintrc b/.eslintrc index 768016a5..04e3e07c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -23,6 +23,11 @@ "rules": { "prettier/prettier": "error", "no-constant-binary-expression": "error", + "array-callback-return": "error", + "no-template-curly-in-string": "error", + "no-promise-executor-return": "error", + "no-constructor-return": "error", + "no-unsafe-optional-chaining": "error", "block-scoped-var": "warn", "camelcase": "error", "constructor-super": "error", diff --git a/packages/skin-database/api/processUserUploads.ts b/packages/skin-database/api/processUserUploads.ts index 25462fd0..37999e1f 100644 --- a/packages/skin-database/api/processUserUploads.ts +++ b/packages/skin-database/api/processUserUploads.ts @@ -37,9 +37,9 @@ const ONE_MINUTE_IN_MS = 1000 * 60; function timeout(p: Promise, duration: number): Promise { return Promise.race([ p, - new Promise((resolve, reject) => - setTimeout(() => reject("timeout"), duration) - ), + new Promise((_resolve, reject) => { + setTimeout(() => reject("timeout"), duration); + }), ]); } diff --git a/packages/skin-database/legacy-client/src/upload/uploadUtils.js b/packages/skin-database/legacy-client/src/upload/uploadUtils.js index aae91518..76da5a7c 100644 --- a/packages/skin-database/legacy-client/src/upload/uploadUtils.js +++ b/packages/skin-database/legacy-client/src/upload/uploadUtils.js @@ -22,7 +22,9 @@ export async function upload(fileObj) { console.warn( `Request to ${uploadUrl} returned 503, going to retry again in 5 seconds. ${retries} retries left...` ); - await new Promise((resolve) => setTimeout(resolve, 5000)); + await new Promise((resolve) => { + setTimeout(resolve, 5000); + }); continue; } diff --git a/packages/webamp/js/components/Skin.tsx b/packages/webamp/js/components/Skin.tsx index e6f9be5b..aef827a7 100644 --- a/packages/webamp/js/components/Skin.tsx +++ b/packages/webamp/js/components/Skin.tsx @@ -89,7 +89,7 @@ const getCssRules = createSelector( } const cursorRules = cursorSelector .map(normalizeCursorSelector) - .map((selector) => { + .map((selector): string | null => { switch (cursor.type) { case "cur": return `${selector} {cursor: url(${cursor.url}), auto}`; @@ -101,6 +101,8 @@ const getCssRules = createSelector( return null; } } + default: + return null; } }) .filter(Boolean); diff --git a/packages/webamp/js/utils.ts b/packages/webamp/js/utils.ts index 675f6207..732528c8 100644 --- a/packages/webamp/js/utils.ts +++ b/packages/webamp/js/utils.ts @@ -94,7 +94,7 @@ export const parseViscolors = (text: string): string[] => { .map((line) => regex.exec(line)) .filter(Boolean) .map((matches) => (matches as RegExpExecArray).slice(1, 4).join(",")) - .map((rgb, i) => { + .forEach((rgb, i) => { colors[i] = `rgb(${rgb})`; }); return colors; diff --git a/packages/webamp/scripts/compileSkin.ts b/packages/webamp/scripts/compileSkin.ts index 63dc75ce..7bb2a92e 100644 --- a/packages/webamp/scripts/compileSkin.ts +++ b/packages/webamp/scripts/compileSkin.ts @@ -20,7 +20,9 @@ import puppeteer from "puppeteer"; return; } // TODO: Wait for node to be ready - await new Promise((resolve) => setTimeout(resolve, 500)); + await new Promise((resolve) => { + setTimeout(resolve, 500); + }); try { const css: string = await page.evaluate( () => document.getElementById("webamp-skin")?.innerText || ""