[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

@ -28,6 +28,7 @@ export class AddPackagesCommand extends CommandRunner {
async run(
passedParams: string[],
// eslint-disable-next-line @typescript-eslint/no-explicit-any
options: Record<string, any>,
): Promise<void> {
this.logger.log('---------------------------------------');

View File

@ -21,6 +21,7 @@ export const copyAndBuildDependencies = async (buildDirectory: string) => {
try {
await execPromise('yarn', { cwd: buildDirectory });
// eslint-disable-next-line @typescript-eslint/no-explicit-any
} catch (error: any) {
throw new Error(error.stdout);
}

View File

@ -12,8 +12,10 @@ export class ConsoleListener {
};
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
intercept(callback: (type: string, message: any[]) => void) {
Object.keys(this.originalConsole).forEach((method) => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
console[method] = (...args: any[]) => {
callback(method, args);
};
@ -22,6 +24,7 @@ export class ConsoleListener {
release() {
Object.keys(this.originalConsole).forEach((method) => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
console[method] = (...args: any[]) => {
this.originalConsole[method](...args);
};

View File

@ -24,6 +24,7 @@ export type ServerlessModuleOptions =
export type ServerlessModuleAsyncOptions = {
useFactory: (
// eslint-disable-next-line @typescript-eslint/no-explicit-any
...args: any[]
) => ServerlessModuleOptions | Promise<ServerlessModuleOptions>;
} & Pick<ModuleMetadata, 'imports'> &

View File

@ -15,6 +15,7 @@ export class ServerlessModule {
static forRootAsync(options: ServerlessModuleAsyncOptions): DynamicModule {
const provider = {
provide: SERVERLESS_DRIVER,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
useFactory: async (...args: any[]) => {
const config = await options.useFactory(...args);