diff --git a/packages/@n8n/eslint-config/base.js b/packages/@n8n/eslint-config/base.js index f9c4404598..053094fb3a 100644 --- a/packages/@n8n/eslint-config/base.js +++ b/packages/@n8n/eslint-config/base.js @@ -486,7 +486,6 @@ const config = (module.exports = { '@typescript-eslint/restrict-template-expressions': 'off', '@typescript-eslint/unbound-method': 'off', 'id-denylist': 'off', - 'import/no-cycle': 'off', 'import/no-default-export': 'off', 'import/no-extraneous-dependencies': 'off', 'n8n-local-rules/no-uncaught-json-parse': 'off', diff --git a/packages/cli/.eslintrc.js b/packages/cli/.eslintrc.js index 58c1429e23..b37e4e2aeb 100644 --- a/packages/cli/.eslintrc.js +++ b/packages/cli/.eslintrc.js @@ -27,7 +27,6 @@ module.exports = { complexity: 'error', // TODO: Remove this - 'import/no-cycle': 'warn', 'import/extensions': 'warn', '@typescript-eslint/ban-ts-comment': ['warn', { 'ts-ignore': true }], '@typescript-eslint/no-explicit-any': 'warn', diff --git a/packages/cli/src/credentials/credentials.service.ts b/packages/cli/src/credentials/credentials.service.ts index 9bbce1a16b..fb986f0723 100644 --- a/packages/cli/src/credentials/credentials.service.ts +++ b/packages/cli/src/credentials/credentials.service.ts @@ -37,6 +37,7 @@ import { userHasScopes } from '@/permissions.ee/check-access'; import type { CredentialRequest, ListQuery } from '@/requests'; import { CredentialsTester } from '@/services/credentials-tester.service'; import { OwnershipService } from '@/services/ownership.service'; +// eslint-disable-next-line import/no-cycle import { ProjectService } from '@/services/project.service.ee'; import { RoleService } from '@/services/role.service'; diff --git a/packages/cli/src/execution-lifecycle/execute-error-workflow.ts b/packages/cli/src/execution-lifecycle/execute-error-workflow.ts index fefce8a97b..3aeed34aa3 100644 --- a/packages/cli/src/execution-lifecycle/execute-error-workflow.ts +++ b/packages/cli/src/execution-lifecycle/execute-error-workflow.ts @@ -6,6 +6,7 @@ import type { IRun, IWorkflowBase, WorkflowExecuteMode } from 'n8n-workflow'; import type { IWorkflowErrorData } from '@/interfaces'; import { OwnershipService } from '@/services/ownership.service'; import { UrlService } from '@/services/url.service'; +// eslint-disable-next-line import/no-cycle import { WorkflowExecutionService } from '@/workflows/workflow-execution.service'; /** diff --git a/packages/cli/src/execution-lifecycle/execution-lifecycle-hooks.ts b/packages/cli/src/execution-lifecycle/execution-lifecycle-hooks.ts index b7be72be39..a19e4cb609 100644 --- a/packages/cli/src/execution-lifecycle/execution-lifecycle-hooks.ts +++ b/packages/cli/src/execution-lifecycle/execution-lifecycle-hooks.ts @@ -16,6 +16,7 @@ import { WorkflowStatisticsService } from '@/services/workflow-statistics.servic import { isWorkflowIdValid } from '@/utils'; import { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service'; +// eslint-disable-next-line import/no-cycle import { executeErrorWorkflow } from './execute-error-workflow'; import { restoreBinaryDataId } from './restore-binary-data-id'; import { saveExecutionProgress } from './save-execution-progress'; diff --git a/packages/cli/src/services/folder.service.ts b/packages/cli/src/services/folder.service.ts index f5be9e79fc..ec063fa092 100644 --- a/packages/cli/src/services/folder.service.ts +++ b/packages/cli/src/services/folder.service.ts @@ -12,6 +12,7 @@ import { UserError, PROJECT_ROOT } from 'n8n-workflow'; import { FolderNotFoundError } from '@/errors/folder-not-found.error'; import type { ListQuery } from '@/requests'; +// eslint-disable-next-line import/no-cycle import { WorkflowService } from '@/workflows/workflow.service'; export interface SimpleFolderNode { diff --git a/packages/cli/src/services/project.service.ee.ts b/packages/cli/src/services/project.service.ee.ts index 2cb288cda9..ac46a574d1 100644 --- a/packages/cli/src/services/project.service.ee.ts +++ b/packages/cli/src/services/project.service.ee.ts @@ -50,12 +50,14 @@ export class ProjectService { ) {} private get workflowService() { + // eslint-disable-next-line import/no-cycle return import('@/workflows/workflow.service').then(({ WorkflowService }) => Container.get(WorkflowService), ); } private get credentialsService() { + // eslint-disable-next-line import/no-cycle return import('@/credentials/credentials.service').then(({ CredentialsService }) => Container.get(CredentialsService), ); diff --git a/packages/cli/src/workflow-execute-additional-data.ts b/packages/cli/src/workflow-execute-additional-data.ts index dd6143aed1..c9e2a73e80 100644 --- a/packages/cli/src/workflow-execute-additional-data.ts +++ b/packages/cli/src/workflow-execute-additional-data.ts @@ -35,6 +35,7 @@ import { ActiveExecutions } from '@/active-executions'; import { CredentialsHelper } from '@/credentials-helper'; import { EventService } from '@/events/event.service'; import type { AiEventMap, AiEventPayload } from '@/events/maps/ai.event-map'; +// eslint-disable-next-line import/no-cycle import { getLifecycleHooksForSubExecutions } from '@/execution-lifecycle/execution-lifecycle-hooks'; import { ExecutionDataService } from '@/executions/execution-data.service'; import { diff --git a/packages/cli/src/workflow-runner.ts b/packages/cli/src/workflow-runner.ts index 089715114b..f60542465d 100644 --- a/packages/cli/src/workflow-runner.ts +++ b/packages/cli/src/workflow-runner.ts @@ -22,6 +22,7 @@ import { ActiveExecutions } from '@/active-executions'; import config from '@/config'; import { ExecutionNotFoundError } from '@/errors/execution-not-found-error'; import { MaxStalledCountError } from '@/errors/max-stalled-count.error'; +// eslint-disable-next-line import/no-cycle import { getLifecycleHooksForRegularMain, getLifecycleHooksForScalingWorker, diff --git a/packages/cli/src/workflows/workflow.service.ts b/packages/cli/src/workflows/workflow.service.ts index b4862f4597..2086af62d6 100644 --- a/packages/cli/src/workflows/workflow.service.ts +++ b/packages/cli/src/workflows/workflow.service.ts @@ -32,6 +32,7 @@ import { validateEntity } from '@/generic-helpers'; import type { ListQuery } from '@/requests'; import { hasSharing } from '@/requests'; import { OwnershipService } from '@/services/ownership.service'; +// eslint-disable-next-line import/no-cycle import { ProjectService } from '@/services/project.service.ee'; import { RoleService } from '@/services/role.service'; import { TagService } from '@/services/tag.service';