-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: non planetscale env.js refers to YOUR_MYSQL_URL_HERE (#1802)
- Loading branch information
Showing
6 changed files
with
137 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
"create-t3-app": patch | ||
--- | ||
|
||
fix: non planetscale env.js refers to YOUR_MYSQL_URL_HERE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
import { createEnv } from "@t3-oss/env-nextjs"; | ||
import { z } from "zod"; | ||
|
||
export const env = createEnv({ | ||
/** | ||
* Specify your server-side environment variables schema here. This way you can ensure the app | ||
* isn't built with invalid env vars. | ||
*/ | ||
server: { | ||
DATABASE_URL: z | ||
.string() | ||
.url() | ||
.refine( | ||
(str) => !str.includes("YOUR_MYSQL_URL_HERE"), | ||
"You forgot to change the default URL" | ||
), | ||
NODE_ENV: z | ||
.enum(["development", "test", "production"]) | ||
.default("development"), | ||
NEXTAUTH_SECRET: | ||
process.env.NODE_ENV === "production" | ||
? z.string() | ||
: z.string().optional(), | ||
NEXTAUTH_URL: z.preprocess( | ||
// This makes Vercel deployments not fail if you don't set NEXTAUTH_URL | ||
// Since NextAuth.js automatically uses the VERCEL_URL if present. | ||
(str) => process.env.VERCEL_URL ?? str, | ||
// VERCEL_URL doesn't include `https` so it cant be validated as a URL | ||
process.env.VERCEL ? z.string() : z.string().url() | ||
), | ||
DISCORD_CLIENT_ID: z.string(), | ||
DISCORD_CLIENT_SECRET: z.string(), | ||
}, | ||
|
||
/** | ||
* Specify your client-side environment variables schema here. This way you can ensure the app | ||
* isn't built with invalid env vars. To expose them to the client, prefix them with | ||
* `NEXT_PUBLIC_`. | ||
*/ | ||
client: { | ||
// NEXT_PUBLIC_CLIENTVAR: z.string(), | ||
}, | ||
|
||
/** | ||
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g. | ||
* middlewares) or client-side so we need to destruct manually. | ||
*/ | ||
runtimeEnv: { | ||
DATABASE_URL: process.env.DATABASE_URL, | ||
NODE_ENV: process.env.NODE_ENV, | ||
NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET, | ||
NEXTAUTH_URL: process.env.NEXTAUTH_URL, | ||
DISCORD_CLIENT_ID: process.env.DISCORD_CLIENT_ID, | ||
DISCORD_CLIENT_SECRET: process.env.DISCORD_CLIENT_SECRET, | ||
}, | ||
/** | ||
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially | ||
* useful for Docker builds. | ||
*/ | ||
skipValidation: !!process.env.SKIP_ENV_VALIDATION, | ||
/** | ||
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and | ||
* `SOME_VAR=''` will throw an error. | ||
*/ | ||
emptyStringAsUndefined: true, | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
import { createEnv } from "@t3-oss/env-nextjs"; | ||
import { z } from "zod"; | ||
|
||
export const env = createEnv({ | ||
/** | ||
* Specify your server-side environment variables schema here. This way you can ensure the app | ||
* isn't built with invalid env vars. | ||
*/ | ||
server: { | ||
DATABASE_URL: z | ||
.string() | ||
.url() | ||
.refine( | ||
(str) => !str.includes("YOUR_MYSQL_URL_HERE"), | ||
"You forgot to change the default URL" | ||
), | ||
NODE_ENV: z | ||
.enum(["development", "test", "production"]) | ||
.default("development"), | ||
}, | ||
|
||
/** | ||
* Specify your client-side environment variables schema here. This way you can ensure the app | ||
* isn't built with invalid env vars. To expose them to the client, prefix them with | ||
* `NEXT_PUBLIC_`. | ||
*/ | ||
client: { | ||
// NEXT_PUBLIC_CLIENTVAR: z.string(), | ||
}, | ||
|
||
/** | ||
* You can't destruct `process.env` as a regular object in the Next.js edge runtimes (e.g. | ||
* middlewares) or client-side so we need to destruct manually. | ||
*/ | ||
runtimeEnv: { | ||
DATABASE_URL: process.env.DATABASE_URL, | ||
NODE_ENV: process.env.NODE_ENV, | ||
// NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR, | ||
}, | ||
/** | ||
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially | ||
* useful for Docker builds. | ||
*/ | ||
skipValidation: !!process.env.SKIP_ENV_VALIDATION, | ||
/** | ||
* Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and | ||
* `SOME_VAR=''` will throw an error. | ||
*/ | ||
emptyStringAsUndefined: true, | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters