Skip to content

Commit e12dcaf

Browse files
authored
fix: use boolEnvSchema to correctly coerce .env string values (#708)
1 parent bf8fd2b commit e12dcaf

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/utils/env.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ export const JsonSchema = z.string().refine(
1818
{ message: "Invalid JSON string" },
1919
);
2020

21+
const boolEnvSchema = (defaultBool: boolean) =>
22+
z
23+
.string()
24+
.default(defaultBool ? "true" : "false")
25+
.refine((s) => s === "true" || s === "false", "must be 'true' or 'false'")
26+
.transform((s) => s === "true");
27+
2128
export const UrlSchema = z
2229
.string()
2330
.refine(
@@ -53,15 +60,15 @@ export const env = createEnv({
5360
),
5461
PORT: z.coerce.number().default(3005),
5562
HOST: z.string().default("0.0.0.0"),
56-
ENABLE_HTTPS: z.coerce.boolean().default(false),
63+
ENABLE_HTTPS: boolEnvSchema(false),
5764
HTTPS_PASSPHRASE: z.string().default("thirdweb-engine"),
58-
TRUST_PROXY: z.coerce.boolean().default(false),
65+
TRUST_PROXY: boolEnvSchema(false),
5966
CLIENT_ANALYTICS_URL: z
6067
.union([UrlSchema, z.literal("")])
6168
.default("https://c.thirdweb.com/event"),
6269
SDK_BATCH_TIME_LIMIT: z.coerce.number().default(0),
6370
SDK_BATCH_SIZE_LIMIT: z.coerce.number().default(100),
64-
ENABLE_KEYPAIR_AUTH: z.coerce.boolean().default(false),
71+
ENABLE_KEYPAIR_AUTH: boolEnvSchema(false),
6572
CONTRACT_SUBSCRIPTIONS_DELAY_SECONDS: z.coerce
6673
.number()
6774
.nonnegative()
@@ -73,11 +80,11 @@ export const env = createEnv({
7380
.enum(["default", "sandbox", "server_only", "worker_only"])
7481
.default("default"),
7582
GLOBAL_RATE_LIMIT_PER_MIN: z.coerce.number().default(400 * 60),
76-
DD_TRACER_ACTIVATED: z.coerce.boolean().default(false),
83+
DD_TRACER_ACTIVATED: boolEnvSchema(false),
7784

7885
// Prometheus
7986
METRICS_PORT: z.coerce.number().default(4001),
80-
METRICS_ENABLED: z.coerce.boolean().default(true),
87+
METRICS_ENABLED: boolEnvSchema(true),
8188

8289
/**
8390
* Limits

0 commit comments

Comments
 (0)