diff options
author | 2022-02-18 16:06:56 -0600 | |
---|---|---|
committer | 2022-02-18 16:06:56 -0600 | |
commit | 39cbe5008549517d9360bc7c473793523c0c9207 (patch) | |
tree | fe6b2e7c6bf6defbbc80d7e0eb45341fd3c18881 /examples/env-vars/src | |
parent | 37d4dd8d57d5423f2d099f9eb81b5b41b6d69403 (diff) | |
download | astro-39cbe5008549517d9360bc7c473793523c0c9207.tar.gz astro-39cbe5008549517d9360bc7c473793523c0c9207.tar.zst astro-39cbe5008549517d9360bc7c473793523c0c9207.zip |
Expose private `.env` variables to `import.meta.env` during SSR (#2612)
* chore(examples): add env-vars example
* feat: improve import.meta.env support
* chore: add changeset
* test: update astro-envs test
* refactor: cleanup code based on feedback
* fix: import.meta guard
* fix: update memory test threshold to 10%
Diffstat (limited to 'examples/env-vars/src')
-rw-r--r-- | examples/env-vars/src/env.d.ts | 10 | ||||
-rw-r--r-- | examples/env-vars/src/pages/index.astro | 21 | ||||
-rw-r--r-- | examples/env-vars/src/scripts/client.ts | 9 |
3 files changed, 40 insertions, 0 deletions
diff --git a/examples/env-vars/src/env.d.ts b/examples/env-vars/src/env.d.ts new file mode 100644 index 000000000..a1befd0f0 --- /dev/null +++ b/examples/env-vars/src/env.d.ts @@ -0,0 +1,10 @@ +/// <reference types="vite/client" /> + +interface ImportMetaEnv { + readonly DB_PASSWORD: string; + readonly PUBLIC_SOME_KEY: string; +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/examples/env-vars/src/pages/index.astro b/examples/env-vars/src/pages/index.astro new file mode 100644 index 000000000..0d19b9a46 --- /dev/null +++ b/examples/env-vars/src/pages/index.astro @@ -0,0 +1,21 @@ +--- +const { SSR, DB_PASSWORD, PUBLIC_SOME_KEY } = import.meta.env; + +// DB_PASSWORD is available because we're running on the server +console.log({ SSR, DB_PASSWORD }); + +// PUBLIC_SOME_KEY is available everywhere +console.log({ SSR, PUBLIC_SOME_KEY }); +--- + +<html lang="en"> + <head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width" /> + <title>Astro</title> + </head> + <body> + <h1>Hello, Environment Variables!</h1> + <script type="module" src="/src/scripts/client.ts"></script> + </body> +</html> diff --git a/examples/env-vars/src/scripts/client.ts b/examples/env-vars/src/scripts/client.ts new file mode 100644 index 000000000..05961d399 --- /dev/null +++ b/examples/env-vars/src/scripts/client.ts @@ -0,0 +1,9 @@ +(() => { + const { SSR, DB_PASSWORD, PUBLIC_SOME_KEY } = import.meta.env; + + // DB_PASSWORD is NOT available because we're running on the client + console.log({ SSR, DB_PASSWORD }); + + // PUBLIC_SOME_KEY is available everywhere + console.log({ SSR, PUBLIC_SOME_KEY }); +})() |