From 2df67b9061949868b4ef835f7df5df29299c687d Mon Sep 17 00:00:00 2001 From: Stefan Dirix Date: Thu, 13 Mar 2025 15:32:39 +0100 Subject: [PATCH] chore: use shared packages in src-gen Src-gen is executed in the environment controlled by adopters. In the generated code dependencies are imported. If these dependencies are not located where webpack expects them, the adopter will experience build errors. This is not a common case, but it does happen in practice. The generated code is made more robust by reusing the shared core dependencies where applicable. As it's common to declare '@theia/core' as a dependency within the adopter package, this more commonly results in a working build. Resolves #15173 Contributed on behalf of STMicroelectronics --- .../application-manager/src/generator/backend-generator.ts | 4 ++-- .../application-manager/src/generator/frontend-generator.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dev-packages/application-manager/src/generator/backend-generator.ts b/dev-packages/application-manager/src/generator/backend-generator.ts index 6c333462b785b..5bdde2c706775 100644 --- a/dev-packages/application-manager/src/generator/backend-generator.ts +++ b/dev-packages/application-manager/src/generator/backend-generator.ts @@ -123,8 +123,8 @@ if ('ELECTRON_RUN_AS_NODE' in process.env) { const path = require('path'); process.env.THEIA_APP_PROJECT_PATH = path.resolve(__dirname, '..', '..') -const express = require('express'); -const { Container } = require('inversify'); +const express = require('@theia/core/shared/express'); +const { Container } = require('@theia/core/shared/inversify'); const { BackendApplication, BackendApplicationServer, CliManager } = require('@theia/core/lib/node'); const { backendApplicationModule } = require('@theia/core/lib/node/backend-application-module'); const { messagingBackendModule } = require('@theia/core/lib/node/messaging/messaging-backend-module'); diff --git a/dev-packages/application-manager/src/generator/frontend-generator.ts b/dev-packages/application-manager/src/generator/frontend-generator.ts index bbfd134bdb3b8..e518e90046026 100644 --- a/dev-packages/application-manager/src/generator/frontend-generator.ts +++ b/dev-packages/application-manager/src/generator/frontend-generator.ts @@ -75,7 +75,7 @@ export class FrontendGenerator extends AbstractGenerator { ${this.ifBrowser("require('es6-promise/auto');")} require('reflect-metadata'); require('setimmediate'); -const { Container } = require('inversify'); +const { Container } = require('@theia/core/shared/inversify'); const { FrontendApplicationConfigProvider } = require('@theia/core/lib/browser/frontend-application-config-provider'); FrontendApplicationConfigProvider.set(${this.prettyStringify(this.pck.props.frontend.config)}); @@ -201,7 +201,7 @@ ${Array.from(frontendModules.values(), jsModulePath => `\ return `\ // @ts-check require('reflect-metadata'); -const { Container } = require('inversify'); +const { Container } = require('@theia/core/shared/inversify'); module.exports = Promise.resolve().then(() => { const { frontendApplicationModule } = require('@theia/core/lib/browser/frontend-application-module');