Skip to content

Commit a784142

Browse files
committed
Allow a fallback value on get env var
1 parent 4912c82 commit a784142

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

packages/deploymentUtils/src/config/index.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
11
import {CloudFormationClient, ListExportsCommand} from "@aws-sdk/client-cloudformation"
22

3-
export function getConfigFromEnvVar(varName: string): string {
3+
export function getConfigFromEnvVar(varName: string, defaultValue: string | undefined = undefined): string {
44
const value = process.env[varName]
55
if (!value) {
6+
if (defaultValue) {
7+
return defaultValue
8+
}
69
throw new Error(`Environment variable ${varName} is not set`)
710
}
811
return value
912
}
1013

11-
export function getBooleanConfigFromEnvVar(varName: string): boolean {
12-
const value = getConfigFromEnvVar(varName)
14+
export function getBooleanConfigFromEnvVar(varName: string, defaultValue: string | undefined = undefined): boolean {
15+
const value = getConfigFromEnvVar(varName, defaultValue)
1316
return value.toLowerCase() === "true"
1417
}
1518

16-
export function getNumberConfigFromEnvVar(varName: string): number {
17-
const value = getConfigFromEnvVar(varName)
19+
export function getNumberConfigFromEnvVar(varName: string, defaultValue: string | undefined = undefined): number {
20+
const value = getConfigFromEnvVar(varName, defaultValue)
1821
return Number(value)
1922
}
2023

packages/deploymentUtils/tests/config/index.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ describe("config helpers", () => {
102102
.toThrow("Environment variable MISSING is not set")
103103
})
104104

105+
test("getConfigFromEnvVar uses the default value when provided", () => {
106+
delete process.env.OPTIONAL
107+
108+
expect(getConfigFromEnvVar("OPTIONAL", "defaultValue")).toBe("defaultValue")
109+
})
110+
105111
test("getBooleanConfigFromEnvVar maps string booleans", () => {
106112
process.env.FEATURE_FLAG = "true"
107113
process.env.OTHER_FLAG = "false"

0 commit comments

Comments
 (0)