[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:
@ -47,6 +47,7 @@ registerEnumType(FieldMetadataType, {
|
||||
|
||||
@ObjectType('Field')
|
||||
@Authorize({
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
authorize: (context: any) => ({
|
||||
workspaceId: { eq: context?.req?.workspace?.id },
|
||||
}),
|
||||
|
||||
@ -69,6 +69,8 @@ export class FieldMetadataValidationService<
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
private async validateSettings(validator: any, settings: any) {
|
||||
try {
|
||||
const settingsInstance = plainToInstance(validator, settings);
|
||||
@ -77,6 +79,7 @@ export class FieldMetadataValidationService<
|
||||
} catch (error) {
|
||||
const errorMessages = Array.isArray(error)
|
||||
? error
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
.map((err: any) => Object.values(err.constraints))
|
||||
.flat()
|
||||
.join(', ')
|
||||
|
||||
@ -530,9 +530,9 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
|
||||
};
|
||||
|
||||
if ('standardOverrides' in fieldMetadataInput) {
|
||||
updatableStandardFieldInput.standardOverrides = (
|
||||
fieldMetadataInput as any
|
||||
).standardOverrides;
|
||||
updatableStandardFieldInput.standardOverrides =
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
(fieldMetadataInput as any).standardOverrides;
|
||||
}
|
||||
|
||||
if (
|
||||
|
||||
@ -270,6 +270,7 @@ export class BeforeUpdateOneField<T extends UpdateFieldInput>
|
||||
// Reset the override by setting it to null
|
||||
const localeTranslations = update.standardOverrides.translations[locale];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
(localeTranslations as Record<string, any>)[overrideKey] = null;
|
||||
|
||||
return true;
|
||||
@ -325,6 +326,7 @@ export class BeforeUpdateOneField<T extends UpdateFieldInput>
|
||||
|
||||
const localeTranslations = update.standardOverrides.translations[locale];
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
(localeTranslations as Record<string, any>)[overrideKey] = value;
|
||||
}
|
||||
|
||||
|
||||
@ -7,6 +7,7 @@ import { fieldMetadataGraphqlApiExceptionHandler } from 'src/engine/metadata-mod
|
||||
export class FieldMetadataGraphqlApiExceptionInterceptor
|
||||
implements NestInterceptor
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
intercept(_: ExecutionContext, next: CallHandler): Observable<any> {
|
||||
return next
|
||||
.handle()
|
||||
|
||||
@ -8,6 +8,7 @@ export const assertDoesNotNullifyDefaultValueForNonNullableField = ({
|
||||
defaultValueFromUpdate,
|
||||
}: {
|
||||
isNullable: boolean;
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
defaultValueFromUpdate?: any;
|
||||
}) => {
|
||||
if (!isNullable && defaultValueFromUpdate === null) {
|
||||
|
||||
@ -2,6 +2,7 @@ import { FieldMetadataDefaultSerializableValue } from 'src/engine/metadata-modul
|
||||
|
||||
export const unserializeDefaultValue = (
|
||||
serializedDefaultValue: FieldMetadataDefaultSerializableValue,
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
): any => {
|
||||
if (serializedDefaultValue === null) {
|
||||
return null;
|
||||
|
||||
@ -73,6 +73,7 @@ export const validateDefaultValueForType = (
|
||||
};
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const validators = defaultValueValidatorsMap[type] as any[];
|
||||
|
||||
if (!validators) {
|
||||
@ -88,6 +89,7 @@ export const validateDefaultValueForType = (
|
||||
: { value: defaultValue };
|
||||
|
||||
const defaultValueInstance = plainToInstance<
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
any,
|
||||
FieldMetadataClassValidation
|
||||
>(validator, conputedDefaultValue as FieldMetadataClassValidation);
|
||||
|
||||
@ -59,6 +59,7 @@ export const validateOptionsForType = (
|
||||
const isValid = options.every((option) => {
|
||||
return validators.some((validator) => {
|
||||
const optionsInstance = plainToInstance<
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
any,
|
||||
FieldMetadataDefaultOption | FieldMetadataComplexOption
|
||||
>(validator, option);
|
||||
|
||||
@ -12,6 +12,7 @@ export function IsQuotedString(validationOptions?: ValidationOptions) {
|
||||
propertyName: propertyName,
|
||||
options: validationOptions,
|
||||
validator: {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
validate(value: any) {
|
||||
return typeof value === 'string' && /^'{1}.*'{1}$/.test(value);
|
||||
},
|
||||
|
||||
@ -14,6 +14,7 @@ export function IsValidGraphQLEnumName(validationOptions?: ValidationOptions) {
|
||||
propertyName: propertyName,
|
||||
options: validationOptions,
|
||||
validator: {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
validate(value: any) {
|
||||
return typeof value === 'string' && graphQLEnumNameRegex.test(value);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user