[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

@ -74,6 +74,7 @@ export class ConvertRecordPositionsToIntegers extends CommandRunner {
private async convertRecordPositionsToIntegers(
customObjectTableNames: string[],
workspaceId: string,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
transactionManager: any,
): Promise<void> {
const dataSourceSchema =
@ -102,6 +103,7 @@ export class ConvertRecordPositionsToIntegers extends CommandRunner {
tableName: string,
dataSourceSchema: string,
workspaceId: string,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
transactionManager: any,
): Promise<void> {
await this.workspaceDataSourceService.executeRawQuery(

View File

@ -2,6 +2,7 @@ export function orderObjectProperties<T extends object>(data: T[]): T[];
export function orderObjectProperties<T extends object>(data: T): T;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function orderObjectProperties<T extends Array<any> | object>(
data: T,
): T {

View File

@ -52,6 +52,7 @@ export class WorkspaceSyncObjectMetadataIdentifiersService {
private createStandardObjectMetadataMap(
context: WorkspaceSyncContext,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
): Record<string, any> {
const standardObjectMetadataCollection = this.standardObjectFactory.create(
standardObjectMetadataDefinitions,
@ -65,6 +66,7 @@ export class WorkspaceSyncObjectMetadataIdentifiersService {
private async processObjectMetadataCollection(
originalObjectMetadataCollection: ObjectMetadataEntity[],
// eslint-disable-next-line @typescript-eslint/no-explicit-any
standardObjectMetadataMap: Record<string, any>,
objectMetadataRepository: Repository<ObjectMetadataEntity>,
): Promise<void> {
@ -111,6 +113,7 @@ export class WorkspaceSyncObjectMetadataIdentifiersService {
private findIdentifierFieldMetadata(
objectMetadata: ObjectMetadataEntity,
objectStandardId: string,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
standardObjectMetadataMap: Record<string, any>,
standardIdFieldName: string,
): FieldMetadataEntity | undefined {

View File

@ -212,7 +212,9 @@ export class WorkspaceSyncMetadataService {
} catch (error) {
this.logger.error('Sync of standard objects failed with:', error);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
if (error instanceof QueryFailedError && (error as any).detail) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
this.logger.error((error as any).detail);
}
await queryRunner.rollbackTransaction();
@ -239,6 +241,7 @@ export class WorkspaceSyncMetadataService {
objectMigrations: Partial<WorkspaceMigrationEntity>[];
fieldMigrations: Partial<WorkspaceMigrationEntity>[];
} {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const createMigrationsByTable = new Map<string, any>();
for (const objectMigration of objectMigrations) {