From 497c5258e6fad8ecb87b250bc6c0cf1f3c3104e3 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Thu, 28 Apr 2022 10:50:00 +0300 Subject: [PATCH] Make splash screen not blow up by providing compile-time environment variables Co-authored-by: Mikko Aspiala Signed-off-by: Janne Savolainen --- .../utils/environment-variables.injectable.ts | 20 ++++++++++++++++++- ...tory-for-integration-testing.injectable.ts | 8 +++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/common/utils/environment-variables.injectable.ts b/src/common/utils/environment-variables.injectable.ts index c8633be4a3..897b349d56 100644 --- a/src/common/utils/environment-variables.injectable.ts +++ b/src/common/utils/environment-variables.injectable.ts @@ -6,7 +6,25 @@ import { getInjectable } from "@ogre-tools/injectable"; const environmentVariablesInjectable = getInjectable({ id: "environment-variables", - instantiate: () => process.env, + + instantiate: () => { + // IMPORTANT: The syntax needs to be exactly this in order to make environment variable values + // hard-coded at compile-time by Webpack. + const NODE_ENV = process.env.NODE_ENV; + const JEST_WORKER_ID = process.env.JEST_WORKER_ID; + const CICD = process.env.CICD; + + return { + // Compile-time environment variables + NODE_ENV, + JEST_WORKER_ID, + CICD, + + // Runtime environment variables + LENS_DISABLE_GPU: process.env.LENS_DISABLE_GPU, + }; + }, + causesSideEffects: true, }); diff --git a/src/main/app-paths/directory-for-integration-testing/directory-for-integration-testing.injectable.ts b/src/main/app-paths/directory-for-integration-testing/directory-for-integration-testing.injectable.ts index 76779ce5a0..73647a3270 100644 --- a/src/main/app-paths/directory-for-integration-testing/directory-for-integration-testing.injectable.ts +++ b/src/main/app-paths/directory-for-integration-testing/directory-for-integration-testing.injectable.ts @@ -3,10 +3,16 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; +import environmentVariablesInjectable from "../../../common/utils/environment-variables.injectable"; const directoryForIntegrationTestingInjectable = getInjectable({ id: "directory-for-integration-testing", - instantiate: () => process.env.CICD, + + instantiate: (di) => { + const environmentVariables = di.inject(environmentVariablesInjectable); + + return environmentVariables.CICD; + }, }); export default directoryForIntegrationTestingInjectable;