diff --git a/packages/cli/src/CrashJournal.ts b/packages/cli/src/CrashJournal.ts index da29d2b07f..b0cd5ad3f8 100644 --- a/packages/cli/src/CrashJournal.ts +++ b/packages/cli/src/CrashJournal.ts @@ -3,6 +3,7 @@ import { mkdir, utimes, open, rm } from 'fs/promises'; import { join, dirname } from 'path'; import { UserSettings } from 'n8n-core'; import { LoggerProxy, sleep } from 'n8n-workflow'; +import { inProduction } from '@/constants'; export const touchFile = async (filePath: string): Promise => { await mkdir(dirname(filePath), { recursive: true }); @@ -18,6 +19,8 @@ export const touchFile = async (filePath: string): Promise => { const journalFile = join(UserSettings.getUserN8nFolderPath(), 'crash.journal'); export const init = async () => { + if (!inProduction) return; + if (existsSync(journalFile)) { // Crash detected LoggerProxy.error('Last session crashed'); diff --git a/packages/cli/src/ResponseHelper.ts b/packages/cli/src/ResponseHelper.ts index 9117b2bac2..f9a9a611b6 100644 --- a/packages/cli/src/ResponseHelper.ts +++ b/packages/cli/src/ResponseHelper.ts @@ -14,9 +14,8 @@ import type { IExecutionFlattedDb, IExecutionResponse, IWorkflowDb, -} from './Interfaces'; - -const inDevelopment = !process.env.NODE_ENV || process.env.NODE_ENV === 'development'; +} from '@/Interfaces'; +import { inDevelopment } from '@/constants'; /** * Special Error which allows to return also an error code and http status code diff --git a/packages/cli/src/commands/BaseCommand.ts b/packages/cli/src/commands/BaseCommand.ts index e683d27e07..ff9c47d9a1 100644 --- a/packages/cli/src/commands/BaseCommand.ts +++ b/packages/cli/src/commands/BaseCommand.ts @@ -3,6 +3,7 @@ import { LoggerProxy } from 'n8n-workflow'; import { getLogger, Logger } from '@/Logger'; import { User } from '@db/entities/User'; import * as Db from '@/Db'; +import { inTest } from '@/constants'; export abstract class BaseCommand extends Command { logger: Logger; @@ -19,7 +20,7 @@ export abstract class BaseCommand extends Command { } async finally(): Promise { - if (process.env.NODE_ENV === 'test') return; + if (inTest) return; this.exit(); } diff --git a/packages/cli/src/config/index.ts b/packages/cli/src/config/index.ts index 23d70b54cc..43b9061267 100644 --- a/packages/cli/src/config/index.ts +++ b/packages/cli/src/config/index.ts @@ -7,8 +7,7 @@ import { tmpdir } from 'os'; import { mkdtempSync } from 'fs'; import { join } from 'path'; import { schema } from './schema'; - -const inE2ETests = process.env.E2E_TESTS === 'true'; +import { inTest, inE2ETests } from '@/constants'; if (inE2ETests) { // Skip loading config from env variables in end-to-end tests @@ -36,10 +35,10 @@ config.getEnv = config.get; if (!inE2ETests) { // Overwrite default configuration with settings which got defined in // optional configuration files - const { N8N_CONFIG_FILES, NODE_ENV } = process.env; + const { N8N_CONFIG_FILES } = process.env; if (N8N_CONFIG_FILES !== undefined) { const configFiles = N8N_CONFIG_FILES.split(','); - if (NODE_ENV !== 'test') { + if (!inTest) { console.log(`\nLoading configuration overwrites from:\n - ${configFiles.join('\n - ')}\n`); } diff --git a/packages/cli/src/constants.ts b/packages/cli/src/constants.ts index 493867b3ce..81db43399d 100644 --- a/packages/cli/src/constants.ts +++ b/packages/cli/src/constants.ts @@ -4,6 +4,12 @@ import { resolve, join, dirname } from 'path'; import { RESPONSE_ERROR_MESSAGES as CORE_RESPONSE_ERROR_MESSAGES, UserSettings } from 'n8n-core'; +const { NODE_ENV, E2E_TESTS } = process.env; +export const inProduction = NODE_ENV === 'production'; +export const inDevelopment = !NODE_ENV || NODE_ENV === 'development'; +export const inTest = NODE_ENV === 'test'; +export const inE2ETests = E2E_TESTS === 'true'; + export const CLI_DIR = resolve(__dirname, '..'); export const TEMPLATES_DIR = join(CLI_DIR, 'templates'); export const NODES_BASE_DIR = join(CLI_DIR, '..', 'nodes-base'); diff --git a/packages/cli/src/databases/utils/migrationHelpers.ts b/packages/cli/src/databases/utils/migrationHelpers.ts index daabab7b3d..676849418f 100644 --- a/packages/cli/src/databases/utils/migrationHelpers.ts +++ b/packages/cli/src/databases/utils/migrationHelpers.ts @@ -4,6 +4,7 @@ import { UserSettings } from 'n8n-core'; import type { QueryRunner } from 'typeorm/query-runner/QueryRunner'; import config from '@/config'; import { getLogger } from '@/Logger'; +import { inTest } from '@/constants'; const PERSONALIZATION_SURVEY_FILENAME = 'personalizationSurvey.json'; @@ -37,10 +38,7 @@ export function loadSurveyFromDisk(): string | null { let logFinishTimeout: NodeJS.Timeout; -export function logMigrationStart( - migrationName: string, - disableLogging = process.env.NODE_ENV === 'test', -): void { +export function logMigrationStart(migrationName: string, disableLogging = inTest): void { if (disableLogging) return; if (!logFinishTimeout) { @@ -52,10 +50,7 @@ export function logMigrationStart( clearTimeout(logFinishTimeout); } -export function logMigrationEnd( - migrationName: string, - disableLogging = process.env.NODE_ENV === 'test', -): void { +export function logMigrationEnd(migrationName: string, disableLogging = inTest): void { if (disableLogging) return; getLogger().debug(`Finished migration ${migrationName}`); diff --git a/packages/cli/src/middlewares/cors.ts b/packages/cli/src/middlewares/cors.ts index 00d2ed3434..f86f46e04b 100644 --- a/packages/cli/src/middlewares/cors.ts +++ b/packages/cli/src/middlewares/cors.ts @@ -1,8 +1,6 @@ +import { inDevelopment } from '@/constants'; import type { RequestHandler } from 'express'; -const { NODE_ENV } = process.env; -const inDevelopment = !NODE_ENV || NODE_ENV === 'development'; - export const corsMiddleware: RequestHandler = (req, res, next) => { if (inDevelopment && 'origin' in req.headers) { // Allow access also from frontend when developing