|
1 | 1 | import * as v from "valibot"; |
2 | 2 |
|
3 | | -const TursoEnv = v.union([ |
4 | | - v.object({ |
5 | | - DATABASE_URL: v.pipe(v.string(), v.startsWith("file:")), |
6 | | - DATABASE_AUTH_TOKEN: v.optional(v.string()), |
7 | | - }), |
8 | | - v.object({ |
9 | | - DATABASE_URL: v.pipe(v.string(), v.startsWith("libsql:")), |
10 | | - DATABASE_AUTH_TOKEN: v.string(), |
11 | | - }), |
12 | | -]); |
| 3 | +const Env = v.object({ |
| 4 | + DATABASE_URL: v.pipe(v.string()), |
| 5 | + DATABASE_AUTH_TOKEN: v.optional(v.string()), |
| 6 | + GITHUB_CLIENT_ID: v.string(), |
| 7 | + GITHUB_CLIENT_SECRET: v.string(), |
| 8 | + BETTER_AUTH_SECRET: v.string(), |
| 9 | + BETTER_AUTH_URL: v.string(), |
13 | 10 |
|
14 | | -const AuthEnv = v.object({ |
15 | | - GITHUB_CLIENT_ID: v.string(), |
16 | | - GITHUB_CLIENT_SECRET: v.string(), |
17 | | - BETTER_AUTH_SECRET: v.string(), |
18 | | - BETTER_AUTH_URL: v.string(), |
| 11 | + S3_ENDPOINT: v.string(), |
| 12 | + S3_ACCESS_KEY: v.string(), |
| 13 | + S3_SECRET_KEY: v.string(), |
| 14 | + S3_BUCKET: v.string(), |
| 15 | + S3_PUBLIC_URL: v.string(), |
| 16 | + UNSAFE_DISABLE_AUTH: v.optional(v.picklist(["true"])), |
19 | 17 | }); |
20 | 18 |
|
21 | | -const S3Env = v.object({ |
22 | | - S3_ENDPOINT: v.string(), |
23 | | - S3_ACCESS_KEY: v.string(), |
24 | | - S3_SECRET_KEY: v.string(), |
25 | | - S3_BUCKET: v.string(), |
26 | | - S3_PUBLIC_URL: v.string(), |
27 | | -}); |
28 | | - |
29 | | -const Env = v.intersect([TursoEnv, AuthEnv, S3Env]); |
30 | | - |
31 | 19 | export const env = v.parse(Env, process.env); |
0 commit comments