From 0d4dd5a6fad871462e6450b238aaabd8871a30c3 Mon Sep 17 00:00:00 2001 From: Daniel Hougaard <62331820+DanielHougaard@users.noreply.github.com> Date: Tue, 2 Jul 2024 03:21:14 +0200 Subject: [PATCH] Fix: e2e tests --- backend/src/@types/process.d.ts | 5 ----- backend/src/lib/config/env.ts | 9 ++++++--- backend/src/server/app.ts | 6 +++--- backend/src/server/plugins/external-nextjs.ts | 7 ++++--- 4 files changed, 13 insertions(+), 14 deletions(-) delete mode 100644 backend/src/@types/process.d.ts diff --git a/backend/src/@types/process.d.ts b/backend/src/@types/process.d.ts deleted file mode 100644 index c060f2192..000000000 --- a/backend/src/@types/process.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare namespace NodeJS { - interface Process { - pkg?: boolean; - } -} diff --git a/backend/src/lib/config/env.ts b/backend/src/lib/config/env.ts index 691191d32..f99288aaf 100644 --- a/backend/src/lib/config/env.ts +++ b/backend/src/lib/config/env.ts @@ -5,6 +5,9 @@ import { zpStr } from "../zod"; export const GITLAB_URL = "https://gitlab.com"; +// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any -- If `process.pkg` is set, and it's true, then it means that the app is currently running in a packaged environment (a binary) +export const IS_PACKAGED = (process as any)?.pkg === true; + const zodStrBool = z .enum(["true", "false"]) .optional() @@ -20,7 +23,7 @@ const databaseReadReplicaSchema = z const envSchema = z .object({ - PORT: z.coerce.number().default(process?.pkg ? 8080 : 4000), + PORT: z.coerce.number().default(IS_PACKAGED ? 8080 : 4000), DISABLE_SECRET_SCANNING: z .enum(["true", "false"]) .default("false") @@ -131,7 +134,7 @@ const envSchema = z // GENERIC STANDALONE_MODE: z .enum(["true", "false"]) - .transform((val) => val === "true" || process?.pkg === true) + .transform((val) => val === "true" || IS_PACKAGED) .optional(), INFISICAL_CLOUD: zodStrBool.default("false"), MAINTENANCE_MODE: zodStrBool.default("false"), @@ -148,7 +151,7 @@ const envSchema = z isSmtpConfigured: Boolean(data.SMTP_HOST), isRedisConfigured: Boolean(data.REDIS_URL), isDevelopmentMode: data.NODE_ENV === "development", - isProductionMode: data.NODE_ENV === "production" || process?.pkg === true, + isProductionMode: data.NODE_ENV === "production" || IS_PACKAGED, isSecretScanningConfigured: Boolean(data.SECRET_SCANNING_GIT_APP_ID) && Boolean(data.SECRET_SCANNING_PRIVATE_KEY) && diff --git a/backend/src/server/app.ts b/backend/src/server/app.ts index cb92b26c8..c61e12113 100644 --- a/backend/src/server/app.ts +++ b/backend/src/server/app.ts @@ -15,7 +15,7 @@ import { Knex } from "knex"; import { Logger } from "pino"; import { TKeyStoreFactory } from "@app/keystore/keystore"; -import { getConfig } from "@app/lib/config/env"; +import { getConfig, IS_PACKAGED } from "@app/lib/config/env"; import { TQueueServiceFactory } from "@app/queue"; import { TSmtpService } from "@app/services/smtp/smtp-service"; @@ -80,8 +80,8 @@ export const main = async ({ db, smtp, logger, queue, keyStore }: TMain) => { if (appCfg.isProductionMode) { await server.register(registerExternalNextjs, { - standaloneMode: appCfg.STANDALONE_MODE || process?.pkg, - dir: path.join(__dirname, process?.pkg ? "../../../" : "../../"), + standaloneMode: appCfg.STANDALONE_MODE, + dir: path.join(__dirname, IS_PACKAGED ? "../../../" : "../../"), port: appCfg.PORT }); } diff --git a/backend/src/server/plugins/external-nextjs.ts b/backend/src/server/plugins/external-nextjs.ts index c5e4734ff..00203dfa0 100644 --- a/backend/src/server/plugins/external-nextjs.ts +++ b/backend/src/server/plugins/external-nextjs.ts @@ -1,9 +1,10 @@ // this plugins allows to run infisical in standalone mode // standalone mode = infisical backend and nextjs frontend in one server // this way users don't need to deploy two things - import path from "node:path"; +import { IS_PACKAGED } from "@app/lib/config/env"; + // to enabled this u need to set standalone mode to true export const registerExternalNextjs = async ( server: FastifyZodProvider, @@ -18,7 +19,7 @@ export const registerExternalNextjs = async ( } ) => { if (standaloneMode) { - const frontendName = process?.pkg ? "frontend" : "frontend-build"; + const frontendName = IS_PACKAGED ? "frontend" : "frontend-build"; const nextJsBuildPath = path.join(dir, frontendName); @@ -33,7 +34,7 @@ export const registerExternalNextjs = async ( // eslint-disable-next-line @typescript-eslint/no-explicit-any let NextServer: any; - if (!process?.pkg) { + if (!IS_PACKAGED) { /* eslint-disable */ const { default: nextServer } = ( await import(path.join(dir, `${frontendName}/node_modules/next/dist/server/next-server.js`))