From 774fe202bfde4f2c5cc95f28a33185e261b031a5 Mon Sep 17 00:00:00 2001 From: Ricardo Espinoza Date: Mon, 23 Oct 2023 11:46:13 -0400 Subject: [PATCH] fix(core): Fix `frontend.settings` external hook execution (#7496) --- packages/cli/src/services/frontend.service.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/services/frontend.service.ts b/packages/cli/src/services/frontend.service.ts index c4f81b0aec..e3c4cfef12 100644 --- a/packages/cli/src/services/frontend.service.ts +++ b/packages/cli/src/services/frontend.service.ts @@ -30,11 +30,14 @@ import { getWorkflowHistoryPruneTime, } from '@/workflows/workflowHistory/workflowHistoryHelper.ee'; import { UserManagementMailer } from '@/UserManagement/email'; +import type { CommunityPackagesService } from '@/services/communityPackages.service'; @Service() export class FrontendService { settings: IN8nUISettings; + private communityPackagesService?: CommunityPackagesService; + constructor( private readonly loadNodesAndCredentials: LoadNodesAndCredentials, private readonly credentialTypes: CredentialTypes, @@ -44,6 +47,13 @@ export class FrontendService { private readonly instanceSettings: InstanceSettings, ) { this.initSettings(); + + if (config.getEnv('nodes.communityPackages.enabled')) { + // eslint-disable-next-line @typescript-eslint/naming-convention + void import('@/services/communityPackages.service').then(({ CommunityPackagesService }) => { + this.communityPackagesService = Container.get(CommunityPackagesService); + }); + } } private initSettings() { @@ -198,7 +208,7 @@ export class FrontendService { this.writeStaticJSON('credentials', credentials); } - async getSettings(): Promise { + getSettings(): IN8nUISettings { const restEndpoint = config.getEnv('endpoints.rest'); // Update all urls, in case `WEBHOOK_URL` was updated by `--tunnel` @@ -275,10 +285,8 @@ export class FrontendService { }); } - if (config.getEnv('nodes.communityPackages.enabled')) { - // eslint-disable-next-line @typescript-eslint/naming-convention - const { CommunityPackagesService } = await import('@/services/communityPackages.service'); - this.settings.missingPackages = Container.get(CommunityPackagesService).hasMissingPackages; + if (this.communityPackagesService) { + this.settings.missingPackages = this.communityPackagesService.hasMissingPackages; } this.settings.mfa.enabled = config.get('mfa.enabled');