Description
tsconfig.json sets "noImplicitAny": false, and .eslintrc.js sets "@typescript-eslint/no-explicit-any": "off". Both are currently used in real code: src/monitoring/health.controller.ts (getHealth(): Promise<any>), src/event-ingestion/event-processor.service.ts (value: any), src/auth/auth.guard.ts (handleRequest(err: any, user: any, info: any)), src/common/rate-limit/rate-limit.guard.ts (getIdentities(request: any), extractWallet(request: any), getRoute(request: any)), src/event-ingestion/event-ingestion.service.ts (parseEventValue(value: any): any, parseTopic(topic: any): string), src/stellar/soroban.helper.ts (isSimulationError(result: any)), and src/stellar/stellar.service.ts (account.balances.find((b: any) => ...)- ). Loosening both compiler and lint checks means real type errors in exactly the kind of request-parsing/RPC-response-parsing code that benefits most from static typing can slip through silently.
Component
Backend
Difficulty
🔴 Hard
Tasks
Acceptance Criteria
Estimated Time
3-4 days
Description
tsconfig.jsonsets"noImplicitAny": false, and.eslintrc.jssets"@typescript-eslint/no-explicit-any": "off". Both are currently used in real code:src/monitoring/health.controller.ts(getHealth(): Promise<any>),src/event-ingestion/event-processor.service.ts(value: any),src/auth/auth.guard.ts(handleRequest(err: any, user: any, info: any)),src/common/rate-limit/rate-limit.guard.ts(getIdentities(request: any),extractWallet(request: any),getRoute(request: any)),src/event-ingestion/event-ingestion.service.ts(parseEventValue(value: any): any,parseTopic(topic: any): string),src/stellar/soroban.helper.ts(isSimulationError(result: any)), andsrc/stellar/stellar.service.ts(account.balances.find((b: any) => ...)- ). Loosening both compiler and lint checks means real type errors in exactly the kind of request-parsing/RPC-response-parsing code that benefits most from static typing can slip through silently.Component
Backend
Difficulty
🔴 Hard
Tasks
noImplicitAnytotrueintsconfig.jsonand@typescript-eslint/no-explicit-anyto"warn"(or"error") in.eslintrc.jsanywith proper types or interfaces (e.g. typed ExpressRequest, Soroban SDK response types) file by file// eslint-disablesuppressions with follow-up tickets) rather than requiring one giant PRAcceptance Criteria
npx tsc --noEmitandnpm run lint:checkboth pass withnoImplicitAny: trueandno-explicit-anyenabledEstimated Time
3-4 days