diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 6f40582..838ee34 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -10,6 +10,9 @@ module.exports = { '@vue/eslint-config-prettier/skip-formatting' ], parserOptions: { - ecmaVersion: 'latest' + ecmaVersion: 'latest', + }, + rules: { + "@typescript-eslint/no-explicit-any": "warn", } } diff --git a/server/api/decorator/reqGameSession.ts b/server/api/decorator/reqGameSession.ts new file mode 100644 index 0000000..e69de29 diff --git a/server/api/decorator/reqSession.ts b/server/api/decorator/reqSession.ts new file mode 100644 index 0000000..e69de29 diff --git a/server/api/defs.ts b/server/api/defs.ts index 58317d1..37595be 100644 --- a/server/api/defs.ts +++ b/server/api/defs.ts @@ -9,17 +9,26 @@ import { type ClassTransformOptions, plainToInstance } from "class-transformer"; export type APINamespace = { [key: string]: APINamespace + // eslint-disable-next-line @typescript-eslint/no-explicit-any | ClassType> + // eslint-disable-next-line @typescript-eslint/no-explicit-any | ClassType> + // eslint-disable-next-line @typescript-eslint/no-explicit-any | ClassType> + // eslint-disable-next-line @typescript-eslint/no-explicit-any | ClassType> + // eslint-disable-next-line @typescript-eslint/no-explicit-any | ClassType> + // eslint-disable-next-line @typescript-eslint/no-explicit-any | ClassType> ; } type ValidatorType = T extends undefined ? undefined : ClassType; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type AnyAPIExecuter = APIExecuter; + export abstract class APIExecuter{ readonly abstract reqType: HttpMethod; readonly abstract argValidator?: ValidatorType; @@ -106,6 +115,8 @@ export function raiseError(reason: string, recovery?: recoveryMethod): InvalidRe }; } + +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type ClassType = new (...args: any[]) => T; export type APIServerType = diff --git a/server/api/generator.ts b/server/api/generator.ts index eee2e14..69d0053 100644 --- a/server/api/generator.ts +++ b/server/api/generator.ts @@ -1,7 +1,7 @@ import { Router } from 'express'; -import type { APIExecuter, APINamespace } from './defs.js'; +import type { AnyAPIExecuter, APINamespace } from './defs.js'; -export function buildAPISystem>(api: N | Q): Router { +export function buildAPISystem(api: N | Q): Router { const router = Router(); for (const [key, value] of Object.entries(api)) { if (typeof value === 'function') { diff --git a/server/apiStructure/defs.ts b/server/apiStructure/defs.ts index 7257156..25f43f2 100644 --- a/server/apiStructure/defs.ts +++ b/server/apiStructure/defs.ts @@ -319,6 +319,7 @@ export interface InvalidResponse { type ExtractValid = T extends ValidResponse ? T : never; type ExtractInvalid = T extends InvalidResponse ? T : never; +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type Callable = (...args: any) => any; export type ExtractResponse = ExtractValid>>; @@ -327,17 +328,29 @@ export type ExtractQuery = Parameters[0]; export type DefAPINamespace = { [key: string]: DefAPINamespace + // eslint-disable-next-line @typescript-eslint/no-explicit-any | BasicGetAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | BasicPostAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | BasicPutAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | BasicDeleteAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | BasicPatchAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | BasicHeadAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | EmptyGetAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | EmptyPostAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | EmptyPutAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | EmptyDeleteAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | EmptyPatchAPICallT + // eslint-disable-next-line @typescript-eslint/no-explicit-any | EmptyHeadAPICallT ; }