From 70c9196b409d72028b82bca8d1e650f56772373b Mon Sep 17 00:00:00 2001 From: Wuesteon Date: Wed, 17 Dec 2025 19:27:57 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(cors):=20handle=20both=20str?= =?UTF-8?q?ing=20and=20array=20corsOriginsEnv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The mana-core-auth configuration.ts was already splitting CORS_ORIGINS into an array, but createCorsConfig expected a string and called .split() on it, causing "corsOriginsEnv.split is not a function" TypeError. Now handles both string and array inputs gracefully. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../shared-nestjs-cors/src/cors-config.ts | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/packages/shared-nestjs-cors/src/cors-config.ts b/packages/shared-nestjs-cors/src/cors-config.ts index 517936296..0bd686e68 100644 --- a/packages/shared-nestjs-cors/src/cors-config.ts +++ b/packages/shared-nestjs-cors/src/cors-config.ts @@ -2,10 +2,11 @@ import type { CorsOptions } from '@nestjs/common/interfaces/external/cors-option export interface CorsConfigOptions { /** - * Comma-separated list of allowed origins from environment variable. + * Allowed origins from environment variable. + * Can be a comma-separated string or an array of origins. * If not provided, uses development defaults. */ - corsOriginsEnv?: string; + corsOriginsEnv?: string | string[]; /** * Default origins for development. Only used if corsOriginsEnv is not provided. @@ -220,12 +221,14 @@ export function createCorsConfig(options: CorsConfigOptions = {}): CorsOptions { includeAllManaApps = false, } = options; - // Parse CORS_ORIGINS from environment + // Parse CORS_ORIGINS from environment (handles both string and array) const envOrigins = corsOriginsEnv - ? corsOriginsEnv - .split(',') - .map((origin) => origin.trim()) - .filter(Boolean) + ? Array.isArray(corsOriginsEnv) + ? corsOriginsEnv.map((origin) => origin.trim()).filter(Boolean) + : corsOriginsEnv + .split(',') + .map((origin) => origin.trim()) + .filter(Boolean) : []; // Combine all origins @@ -263,11 +266,14 @@ export function createCorsConfigWithCallback(options: CorsConfigOptions = {}): C includeAllManaApps = false, } = options; + // Parse CORS_ORIGINS from environment (handles both string and array) const envOrigins = corsOriginsEnv - ? corsOriginsEnv - .split(',') - .map((origin) => origin.trim()) - .filter(Boolean) + ? Array.isArray(corsOriginsEnv) + ? corsOriginsEnv.map((origin) => origin.trim()).filter(Boolean) + : corsOriginsEnv + .split(',') + .map((origin) => origin.trim()) + .filter(Boolean) : []; const allOrigins = [