import { ExecutorContext } from '@nx/devkit'; import { ReturnTypeMode } from '../validate-return-types/executor'; import { NoInlineTypesMode } from '../validate-no-inline-types/executor'; import { NoAnyUnknownMode } from '../validate-no-any-unknown/executor'; import { NoImplicitAnyMode } from '../validate-no-implicit-any/executor'; import { ValidateDtosMode } from '../validate-dtos/executor'; import { PrismaConverterMode } from '../validate-prisma-converters/executor'; import { NoDestructureMode } from '../validate-no-destructure/executor'; import { CatchErrorPatternMode } from '../validate-catch-error-pattern/executor'; import { NoUnmanagedExceptionsMode } from '../validate-no-unmanaged-exceptions/executor'; import { NoDirectApiResolverMode } from '../validate-no-direct-api-resolver/executor'; export type MethodMaxLimitMode = 'OFF' | 'NEW_METHODS' | 'NEW_AND_MODIFIED_METHODS' | 'MODIFIED_FILES'; export type FileMaxLimitMode = 'OFF' | 'MODIFIED_FILES'; export interface MethodMaxLimitConfig { limit?: number; mode?: MethodMaxLimitMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; } export interface FileMaxLimitConfig { limit?: number; mode?: FileMaxLimitMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; } export interface RequireReturnTypeConfig { mode?: ReturnTypeMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; } export interface NoInlineTypeLiteralsConfig { mode?: NoInlineTypesMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; } export interface NoAnyUnknownConfig { mode?: NoAnyUnknownMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; } export interface NoImplicitAnyConfig { mode?: NoImplicitAnyMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; } export interface ValidateDtosConfig { mode?: ValidateDtosMode; disableAllowed?: boolean; prismaSchemaPath?: string; dtoSourcePaths?: string[]; ignoreModifiedUntilEpoch?: number; } export interface PrismaConverterConfig { mode?: PrismaConverterMode; disableAllowed?: boolean; schemaPath?: string; convertersPaths?: string[]; enforcePaths?: string[]; ignoreModifiedUntilEpoch?: number; } export interface NoDestructureConfig { mode?: NoDestructureMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; } export interface CatchErrorPatternConfig { mode?: CatchErrorPatternMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; } export interface NoUnmanagedExceptionsConfig { mode?: NoUnmanagedExceptionsMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; } export interface NoDirectApiResolverConfig { mode?: NoDirectApiResolverMode; disableAllowed?: boolean; ignoreModifiedUntilEpoch?: number; enforcePaths?: string[]; } export interface ValidateCodeOptions { methodMaxLimit?: MethodMaxLimitConfig; fileMaxLimit?: FileMaxLimitConfig; requireReturnType?: RequireReturnTypeConfig; noInlineTypeLiterals?: NoInlineTypeLiteralsConfig; noAnyUnknown?: NoAnyUnknownConfig; noImplicitAny?: NoImplicitAnyConfig; validateDtos?: ValidateDtosConfig; prismaConverter?: PrismaConverterConfig; noDestructure?: NoDestructureConfig; catchErrorPattern?: CatchErrorPatternConfig; noUnmanagedExceptions?: NoUnmanagedExceptionsConfig; noDirectApiInResolver?: NoDirectApiResolverConfig; } export interface ExecutorResult { success: boolean; } export default function runExecutor(_nxOptions: ValidateCodeOptions, context: ExecutorContext): Promise;