Skip to content

Commit e34141d

Browse files
committed
Strip empty string env vars so they accidentally override real values
1 parent cb625d9 commit e34141d

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

packages/cli-v3/src/dev/workerRuntime.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,10 +232,20 @@ class DevWorkerRuntime implements WorkerRuntime {
232232
const dotEnvVars = resolveDotEnvVars();
233233
const OTEL_IMPORT_HOOK_INCLUDES = getInstrumentedPackageNames(this.options.config).join(",");
234234

235+
const stripEmptyValues = (obj: Record<string, string | undefined>) => {
236+
return Object.fromEntries(
237+
Object.entries(obj).filter(([, value]) =>
238+
typeof value === "string" ? !!value.trim() : !!value
239+
)
240+
);
241+
};
242+
235243
return {
236-
...processEnv,
237-
...(environmentVariablesResponse.success ? environmentVariablesResponse.data.variables : {}),
238-
...dotEnvVars,
244+
...stripEmptyValues(processEnv),
245+
...stripEmptyValues(
246+
environmentVariablesResponse.success ? environmentVariablesResponse.data.variables : {}
247+
),
248+
...stripEmptyValues(dotEnvVars),
239249
TRIGGER_API_URL: this.options.client.apiURL,
240250
TRIGGER_SECRET_KEY: this.options.client.accessToken!,
241251
OTEL_EXPORTER_OTLP_COMPRESSION: "none",

packages/cli-v3/src/utilities/dotEnv.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ import dotenv from "dotenv";
22
import { resolve } from "node:path";
33
import { env } from "std-env";
44

5+
const ENVVAR_FILES = [".env", ".env.development", ".env.local", ".env.development.local"];
6+
57
export function resolveDotEnvVars(cwd?: string) {
68
const result: { [key: string]: string } = {};
79

810
dotenv.config({
911
processEnv: result,
10-
path: [".env", ".env.local", ".env.development.local"].map((p) =>
11-
resolve(cwd ?? process.cwd(), p)
12-
),
12+
path: ENVVAR_FILES.map((p) => resolve(cwd ?? process.cwd(), p)),
1313
});
1414

1515
env.TRIGGER_API_URL && (result.TRIGGER_API_URL = env.TRIGGER_API_URL);
@@ -23,8 +23,6 @@ export function resolveDotEnvVars(cwd?: string) {
2323

2424
export function loadDotEnvVars(cwd?: string) {
2525
dotenv.config({
26-
path: [".env", ".env.local", ".env.development.local"].map((p) =>
27-
resolve(cwd ?? process.cwd(), p)
28-
),
26+
path: ENVVAR_FILES.map((p) => resolve(cwd ?? process.cwd(), p)),
2927
});
3028
}

0 commit comments

Comments
 (0)