From cbf51d148af8514b32bb87ad1e0693869950d837 Mon Sep 17 00:00:00 2001 From: Candid Dauth Date: Sat, 2 Mar 2024 02:55:43 +0100 Subject: [PATCH] Add eslint rules against promise misuse --- .eslintrc.cjs | 12 +++++++++++- frontend/src/lib/components/ui/symbol-picker.vue | 2 +- frontend/tsconfig.node.json | 1 + integration-tests/src/utils.ts | 2 +- server/src/database/helpers.ts | 1 + 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index bb6ca380..ffeaafc3 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -3,13 +3,21 @@ module.exports = { root: true, ignorePatterns: ["**/dist/*", "**/out/*", "**/out.*/*"], parserOptions: { - parser: "@typescript-eslint/parser" + parser: "@typescript-eslint/parser", + project: ["./*/tsconfig.json", "./*/tsconfig.node.json"], + extraFileExtensions: [".vue"] }, plugins: ["@typescript-eslint", "import"], extends: [ "plugin:import/typescript", "plugin:vue/vue3-essential" ], + overrides: [ + { + extends: ["plugin:@typescript-eslint/disable-type-checked"], + files: ["**/*.js", "**/*.cjs"] + } + ], env: { node: true }, @@ -29,6 +37,8 @@ module.exports = { "no-restricted-globals": ["error", "$"], "no-restricted-imports": ["error", "vue/types/umd"], "vue/multi-word-component-names": ["off"], + "@typescript-eslint/no-base-to-string": ["error"], + "@typescript-eslint/no-misused-promises": ["error", { checksVoidReturn: false }], "constructor-super": ["error"], "for-direction": ["error"], diff --git a/frontend/src/lib/components/ui/symbol-picker.vue b/frontend/src/lib/components/ui/symbol-picker.vue index e9743fae..ab07bf2b 100644 --- a/frontend/src/lib/components/ui/symbol-picker.vue +++ b/frontend/src/lib/components/ui/symbol-picker.vue @@ -10,7 +10,7 @@ let allItemsP: Promise>; async function getAllItems(): Promise> { - if (!allItemsP) { + if (!allItemsP) { // eslint-disable-line @typescript-eslint/no-misused-promises allItemsP = Promise.all(symbolList.map(async (s) => ( [s, await getSymbolHtml("currentColor", "1.5em", s)] as const ))).then((l) => Object.fromEntries(l)); diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json index abac254c..5a0f4e0e 100644 --- a/frontend/tsconfig.node.json +++ b/frontend/tsconfig.node.json @@ -6,6 +6,7 @@ }, "include": [ "vite.config.ts", + "vite-lib.config.ts", "vite-define.ts", "build.ts" ] diff --git a/integration-tests/src/utils.ts b/integration-tests/src/utils.ts index d2602922..bc2c43a5 100644 --- a/integration-tests/src/utils.ts +++ b/integration-tests/src/utils.ts @@ -12,7 +12,7 @@ export function getFacilMapUrl(): string { export async function openSocket(version: V): Promise, SocketClientToServerEvents>> { const serverUrl = new URL(getFacilMapUrl()); - const socket = io(`${serverUrl.origin}${version !== SocketVersion.V1 ? `/${SocketVersion}` : ""}`, { + const socket = io(`${serverUrl.origin}${version !== SocketVersion.V1 ? `/${version}` : ""}`, { forceNew: true, path: serverUrl.pathname.replace(/\/$/, "") + "/socket.io" }); diff --git a/server/src/database/helpers.ts b/server/src/database/helpers.ts index 144e2cd8..d286a49f 100644 --- a/server/src/database/helpers.ts +++ b/server/src/database/helpers.ts @@ -196,6 +196,7 @@ export default class DatabaseHelpers { } const Pad = this._db.pads.PadModel.build({ id: padId } satisfies Partial> as any); + // eslint-disable-next-line @typescript-eslint/no-base-to-string const objs: Array = await (Pad as any)["get" + this._db._conn.model(type).getTableName()](condition); for (const obj of objs) {