Fix assert unreachable, remove unused variables (#13753)

Small code cleanup
This commit is contained in:
Félix Malfait
2025-08-08 09:04:45 +02:00
committed by GitHub
parent 8b4b9ef8da
commit 0236f79ccf
105 changed files with 172 additions and 315 deletions
@@ -3,7 +3,6 @@ import { Injectable, Logger } from '@nestjs/common';
import { generateText } from 'ai';
import { AiModelRegistryService } from 'src/engine/core-modules/ai/services/ai-model-registry.service';
import { TwentyConfigService } from 'src/engine/core-modules/twenty-config/twenty-config.service';
@Injectable()
export class AgentTitleGenerationService {
@@ -11,7 +10,6 @@ export class AgentTitleGenerationService {
constructor(
private readonly aiModelRegistryService: AiModelRegistryService,
private readonly twentyConfigService: TwentyConfigService,
) {}
async generateThreadTitle(messageContent: string): Promise<string> {
@@ -5,7 +5,6 @@ import { isDefined } from 'twenty-shared/utils';
import { Repository } from 'typeorm';
import { AgentRoleService } from 'src/engine/metadata-modules/agent-role/agent-role.service';
import { AgentChatService } from 'src/engine/metadata-modules/agent/agent-chat.service';
import { type CreateAgentInput } from 'src/engine/metadata-modules/agent/dtos/create-agent.input';
import { type UpdateAgentInput } from 'src/engine/metadata-modules/agent/dtos/update-agent.input';
import { RoleTargetsEntity } from 'src/engine/metadata-modules/role/role-targets.entity';
@@ -21,7 +20,6 @@ export class AgentService {
private readonly agentRepository: Repository<AgentEntity>,
@InjectRepository(RoleTargetsEntity, 'core')
private readonly roleTargetsRepository: Repository<RoleTargetsEntity>,
private readonly agentChatService: AgentChatService,
private readonly agentRoleService: AgentRoleService,
) {}
@@ -24,7 +24,7 @@ export type FieldMetadataDefaultValueFunctionNames =
(typeof fieldMetadataDefaultValueFunctionName)[keyof typeof fieldMetadataDefaultValueFunctionName];
export class FieldMetadataDefaultValueString {
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsQuotedString()
value: string | null;
}
@@ -36,11 +36,11 @@ export class FieldMetadataDefaultValueRawJson {
}
export class FieldMetadataDefaultValueRichTextV2 {
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsQuotedString()
blocknote: string | null;
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsQuotedString()
markdown: string | null;
}
@@ -52,52 +52,52 @@ export class FieldMetadataDefaultValueRichText {
}
export class FieldMetadataDefaultValueNumber {
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsNumber()
value: number | null;
}
export class FieldMetadataDefaultValueBoolean {
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsBoolean()
value: boolean | null;
}
export class FieldMetadataDefaultValueStringArray {
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsArray()
@IsQuotedString({ each: true })
value: string[] | null;
}
export class FieldMetadataDefaultValueDateTime {
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsDate()
value: Date | null;
}
export class FieldMetadataDefaultValueDate {
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsDate()
value: Date | null;
}
export class FieldMetadataDefaultValueCurrency {
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsNumberString()
amountMicros: string | null;
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsQuotedString()
currencyCode: string | null;
}
export class FieldMetadataDefaultValueFullName {
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsQuotedString()
firstName: string | null;
@ValidateIf((object, value) => value !== null)
@ValidateIf((_object, value) => value !== null)
@IsQuotedString()
lastName: string | null;
}
@@ -1,3 +1,5 @@
import { assertUnreachable } from 'twenty-shared/utils';
import {
ConflictError,
ForbiddenError,
@@ -33,9 +35,7 @@ export const fieldMetadataGraphqlApiExceptionHandler = (error: Error) => {
case FieldMetadataExceptionCode.LABEL_IDENTIFIER_FIELD_METADATA_ID_NOT_FOUND:
throw error;
default: {
const _exhaustiveCheck: never = error.code;
throw error;
return assertUnreachable(error.code);
}
}
}
@@ -3,7 +3,6 @@ import {
Injectable,
UnauthorizedException,
} from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { i18n } from '@lingui/core';
import {
@@ -12,10 +11,8 @@ import {
} from '@ptc-org/nestjs-query-graphql';
import { type APP_LOCALES, SOURCE_LOCALE } from 'twenty-shared/translations';
import { isDefined } from 'twenty-shared/utils';
import { Repository } from 'typeorm';
import { generateMessageId } from 'src/engine/core-modules/i18n/utils/generateMessageId';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { type ObjectStandardOverridesDTO } from 'src/engine/metadata-modules/object-metadata/dtos/object-standard-overrides.dto';
import { type UpdateObjectPayload } from 'src/engine/metadata-modules/object-metadata/dtos/update-object.input';
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
@@ -29,12 +26,7 @@ interface StandardObjectUpdate extends Partial<UpdateObjectPayload> {
export class BeforeUpdateOneObject<T extends UpdateObjectPayload>
implements BeforeUpdateOneHook<T>
{
constructor(
readonly objectMetadataService: ObjectMetadataService,
// TODO: Should not use the repository here
@InjectRepository(FieldMetadataEntity, 'core')
private readonly fieldMetadataRepository: Repository<FieldMetadataEntity>,
) {}
constructor(readonly objectMetadataService: ObjectMetadataService) {}
// TODO: this logic could be moved to a policy guard
async run(
@@ -4,12 +4,12 @@ import { InjectRepository } from '@nestjs/typeorm';
import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm';
import { Repository } from 'typeorm';
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
import { fromCreateObjectInputToFlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata.util';
import { fromFlatObjectMetadataMapsToFlatObjectMetadatas } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-maps-to-flat-object-metadatas.util';
import { WorkspaceMetadataCacheService } from 'src/engine/metadata-modules/workspace-metadata-cache/services/workspace-metadata-cache.service';
import { WorkspaceMigrationBuilderV2Service } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/workspace-migration-builder-v2.service';
import { WorkspaceMigrationRunnerV2Service } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-runner-v2/workspace-migration-runner-v2.service';
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
import { fromFlatObjectMetadataMapsToFlatObjectMetadatas } from 'src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-maps-to-flat-object-metadatas.util';
import { ObjectMetadataEntity } from './object-metadata.entity';
@@ -20,7 +20,6 @@ export class ObjectMetadataServiceV2 extends TypeOrmQueryService<ObjectMetadataE
constructor(
@InjectRepository(ObjectMetadataEntity, 'core')
private readonly objectMetadataRepository: Repository<ObjectMetadataEntity>,
private readonly workspaceMetadataCacheService: WorkspaceMetadataCacheService,
private readonly workspaceMigrationBuilderV2: WorkspaceMigrationBuilderV2Service,
private readonly workspaceMigrationRunnerV2Service: WorkspaceMigrationRunnerV2Service,
@@ -1,3 +1,5 @@
import { assertUnreachable } from 'twenty-shared/utils';
import {
ConflictError,
ForbiddenError,
@@ -31,9 +33,7 @@ export const objectMetadataGraphqlApiExceptionHandler = (error: Error) => {
case ObjectMetadataExceptionCode.MISSING_CUSTOM_OBJECT_DEFAULT_LABEL_IDENTIFIER_FIELD:
throw error;
default: {
const _exhaustiveCheck: never = error.code;
throw error;
return assertUnreachable(error.code);
}
}
}
@@ -16,8 +16,6 @@ import { WorkspacePermissionsCacheService } from 'src/engine/metadata-modules/wo
export class PermissionFlagService {
constructor(
@InjectRepository(PermissionFlagEntity, 'core')
private readonly permissionFlagRepository: Repository<PermissionFlagEntity>,
@InjectRepository(RoleEntity, 'core')
private readonly roleRepository: Repository<RoleEntity>,
@InjectDataSource('core')
@@ -1,3 +1,5 @@
import { assertUnreachable } from 'twenty-shared/utils';
import {
ForbiddenError,
NotFoundError,
@@ -66,9 +68,7 @@ export const permissionGraphqlApiExceptionHandler = (
case PermissionsExceptionCode.COMPOSITE_TYPE_NOT_FOUND:
throw error;
default: {
const _exhaustiveCheck: never = error.code;
throw error;
return assertUnreachable(error.code);
}
}
};
@@ -34,7 +34,7 @@ export class ForeignTableService {
) {}
public async fetchForeignTableNamesWithinWorkspace(
workspaceId: string,
_workspaceId: string,
foreignDataWrapperId: string,
): Promise<string[]> {
const mainDataSource =
@@ -1,3 +1,5 @@
import { assertUnreachable } from 'twenty-shared/utils';
import {
ConflictError,
NotFoundError,
@@ -21,9 +23,7 @@ export const remoteTableGraphqlApiExceptionHandler = (error: Error) => {
case RemoteTableExceptionCode.REMOTE_TABLE_ALREADY_EXISTS:
throw new ConflictError(error.message);
default: {
const _exhaustiveCheck: never = error.code;
throw error;
return assertUnreachable(error.code);
}
}
}
@@ -1,3 +1,5 @@
import { assertUnreachable } from 'twenty-shared/utils';
import {
ConflictError,
ForbiddenError,
@@ -24,9 +26,7 @@ export const remoteServerGraphqlApiExceptionHandler = (error: any) => {
case RemoteServerExceptionCode.REMOTE_SERVER_CONNECTION_ERROR:
throw error;
default: {
const _exhaustiveCheck: never = error.code;
throw error;
return assertUnreachable(error.code);
}
}
}
@@ -17,7 +17,6 @@ import {
type UpdateRoleInput,
type UpdateRolePayload,
} from 'src/engine/metadata-modules/role/dtos/update-role-input.dto';
import { RoleTargetsEntity } from 'src/engine/metadata-modules/role/role-targets.entity';
import { RoleEntity } from 'src/engine/metadata-modules/role/role.entity';
import { UserRoleService } from 'src/engine/metadata-modules/user-role/user-role.service';
import { isArgDefinedIfProvidedOrThrow } from 'src/engine/metadata-modules/utils/is-arg-defined-if-provided-or-throw.util';
@@ -29,8 +28,6 @@ export class RoleService {
private readonly workspaceRepository: Repository<Workspace>,
@InjectRepository(RoleEntity, 'core')
private readonly roleRepository: Repository<RoleEntity>,
@InjectRepository(RoleTargetsEntity, 'core')
private readonly roleTargetsRepository: Repository<RoleTargetsEntity>,
private readonly userRoleService: UserRoleService,
private readonly workspacePermissionsCacheService: WorkspacePermissionsCacheService,
) {}
@@ -1,3 +1,5 @@
import { assertUnreachable } from 'twenty-shared/utils';
import {
ConflictError,
ForbiddenError,
@@ -24,9 +26,7 @@ export const serverlessFunctionGraphQLApiExceptionHandler = (error: any) => {
case ServerlessFunctionExceptionCode.SERVERLESS_FUNCTION_CODE_UNCHANGED:
throw error;
default: {
const _exhaustiveCheck: never = error.code;
throw error;
return assertUnreachable(error.code);
}
}
}