[QRQC_2] No explicit any in twenty-server (#12068)

# Introduction

Added a no-explicit-any rule to the twenty-server, not applicable to
tests and integration tests folder

Related to https://github.com/twentyhq/core-team-issues/issues/975
Discussed with Charles

## In case of conflicts
Until this is approved I won't rebased and handle conflict, just need to
drop two latest commits and re run the scripts etc

## Legacy
We decided not to handle the existing lint error occurrences and
programmatically ignored them through a disable next line rule comment

## Open question
We might wanna activate the
[no-explicit-any](https://typescript-eslint.io/rules/no-explicit-any/)
`ignoreRestArgs` for our use case ?
```
    ignoreRestArgs?: boolean;
```

---------

Co-authored-by: etiennejouan <jouan.etienne@gmail.com>
This commit is contained in:
Paul Rastoin
2025-05-15 16:26:38 +02:00
committed by GitHub
parent c95c4383b4
commit a8423e8503
213 changed files with 453 additions and 4 deletions

View File

@ -7,6 +7,7 @@ export class ExceptionHandlerConsoleDriver
implements ExceptionHandlerDriverInterface
{
captureExceptions(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
exceptions: ReadonlyArray<any>,
options?: ExceptionHandlerOptions,
) {

View File

@ -9,6 +9,7 @@ export class ExceptionHandlerSentryDriver
implements ExceptionHandlerDriverInterface
{
captureExceptions(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
exceptions: ReadonlyArray<any>,
options?: ExceptionHandlerOptions,
) {

View File

@ -37,6 +37,7 @@ export class ExceptionHandlerModule extends ConfigurableModuleClass {
static forRootAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule {
const provider = {
provide: EXCEPTION_HANDLER_DRIVER,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
useFactory: async (...args: any[]) => {
const config = await options?.useFactory?.(...args);

View File

@ -13,6 +13,7 @@ export class ExceptionHandlerService {
) {}
captureExceptions(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
exceptions: ReadonlyArray<any>,
options?: ExceptionHandlerOptions,
): string[] {

View File

@ -22,6 +22,7 @@ export const handleException = (
interface RequestAndParams {
request: Request | null;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
params: any;
}
@ -35,10 +36,14 @@ export class HttpExceptionHandlerService {
handleError = (
exception: CustomException,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
// eslint-disable-next-line @typescript-eslint/no-explicit-any
response: Response<any, Record<string, any>>,
errorCode?: number,
user?: ExceptionHandlerUser,
workspace?: ExceptionHandlerWorkspace,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
// eslint-disable-next-line @typescript-eslint/no-explicit-any
): Response<any, Record<string, any>> | undefined => {
const params = this.request?.params;

View File

@ -2,6 +2,7 @@ import { ExceptionHandlerOptions } from 'src/engine/core-modules/exception-handl
export interface ExceptionHandlerDriverInterface {
captureExceptions(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
exceptions: ReadonlyArray<any>,
options?: ExceptionHandlerOptions,
): string[];

View File

@ -9,6 +9,7 @@ export interface ExceptionHandlerOptions {
name: string;
};
document?: string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
additionalData?: Record<string, any>;
user?: ExceptionHandlerUser | null;
workspace?: ExceptionHandlerWorkspace | null;

View File

@ -9,6 +9,7 @@ export class ExceptionHandlerMockService
implements ExceptionHandlerDriverInterface
{
captureExceptions(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
exceptions: readonly any[],
_?: ExceptionHandlerOptions | undefined,
): string[] {

View File

@ -6,6 +6,7 @@ export class MockedUnhandledExceptionFilter
extends BaseExceptionFilter
implements ExceptionFilter
{
// eslint-disable-next-line @typescript-eslint/no-explicit-any
catch(exception: any, _host: ArgumentsHost) {
throw exception;
}