Skip to content

fix(env): VITE_* env vars are strings, not numbers or booleans - #689

Open
2xburnt wants to merge 1 commit into
ping-pub:masterfrom
burnt-labs:pr/env-var-types
Open

fix(env): VITE_* env vars are strings, not numbers or booleans#689
2xburnt wants to merge 1 commit into
ping-pub:masterfrom
burnt-labs:pr/env-var-types

Conversation

@2xburnt

@2xburnt 2xburnt commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Vite injects env vars as strings regardless of what the .env file contains, but env.d.ts declared three of them as number/boolean. That mistyping hid a real bug:

const FETCH_ALL_BLOCKS = import.meta.env.VITE_FETCH_ALL_BLOCKS || false;

VITE_FETCH_ALL_BLOCKS=false yields the string "false", which is truthy, so the documented way to turn the feature off in .env.example silently turns it on - and it then fetches every intermediate block, which is exactly the rate-limiting the flag exists to avoid.

Corrects the declared types, compares explicitly against 'true', and coerces the two numeric vars so they reach setInterval and slice as numbers.

Vite injects env vars as strings regardless of what the .env file contains, but
env.d.ts declared three of them as number/boolean. That mistyping hid a real bug:

  const FETCH_ALL_BLOCKS = import.meta.env.VITE_FETCH_ALL_BLOCKS || false;

`VITE_FETCH_ALL_BLOCKS=false` yields the string "false", which is truthy, so the
documented way to turn the feature off in .env.example silently turns it on -
and it then fetches every intermediate block, which is exactly the rate-limiting
the flag exists to avoid.

Corrects the declared types, compares explicitly against 'true', and coerces the
two numeric vars so they reach setInterval and slice as numbers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant