-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.ts
41 lines (35 loc) · 938 Bytes
/
config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { z } from "zod";
import { PostgreSqlTestcontainerConfig } from "./testcontainers/psql";
export type DevConfig = {
isCI: boolean;
port: number;
PostgreSqlConfig: PostgreSqlTestcontainerConfig;
};
export default function getDevConfig(): DevConfig {
const env = getEnv();
return {
isCI: env.CI,
port: env.PORT,
PostgreSqlConfig: {
dbContainerName: env.PSQL_TESTCONTAINER_NAME,
dbName: env.PSQL_DATABASE_NAME,
dbUserName: env.PSQL_USER_NAME,
dbPassword: env.PSQL_PASSWORD,
dbPort: env.PSQL_PORT,
},
};
}
function getEnv(): z.infer<typeof DevEnv> {
return DevEnv.parse(process.env);
}
const DevEnv = z.object({
CI: z.coerce.boolean(),
// App
PORT: z.coerce.number().min(1),
// Database
PSQL_PORT: z.coerce.number().min(1),
PSQL_TESTCONTAINER_NAME: z.string(),
PSQL_DATABASE_NAME: z.string(),
PSQL_USER_NAME: z.string(),
PSQL_PASSWORD: z.string(),
});