mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-10 04:25:01 +00:00
refactor: simplify db credential handling
This commit is contained in:
parent
898cf18885
commit
1ef7ba8d0f
6 changed files with 66 additions and 72 deletions
|
@ -10,7 +10,7 @@ import { initGuildsAPI } from "./guilds/index";
|
|||
import { clientError, error, notFound } from "./responses";
|
||||
import { startBackgroundTasks } from "./tasks";
|
||||
|
||||
const apiPathPrefix = env.HOST_MODE === "lightweight" ? env.LIGHTWEIGHT_API_PATH_PREFIX || "" : "/api";
|
||||
const apiPathPrefix = env.NODE_ENV === "production" ? env.API_PATH_PREFIX ?? "" : "/api";
|
||||
|
||||
const app = express();
|
||||
|
||||
|
|
|
@ -11,34 +11,22 @@ const entities = path.relative(process.cwd(), path.resolve(backendDir, "dist/dat
|
|||
const migrations = path.relative(process.cwd(), path.resolve(backendDir, "dist/migrations/*.js"));
|
||||
|
||||
type DbOpts = Pick<MysqlConnectionOptions, "host" | "port" | "username" | "password" | "database">;
|
||||
let dbOpts: DbOpts;
|
||||
if (env.HOST_MODE === "development") {
|
||||
dbOpts = {
|
||||
host: "mysql",
|
||||
port: 3306,
|
||||
username: "zeppelin",
|
||||
password: env.DEVELOPMENT_MYSQL_PASSWORD,
|
||||
database: "zeppelin",
|
||||
};
|
||||
} else if (env.HOST_MODE === "standalone") {
|
||||
dbOpts = {
|
||||
host: "mysql",
|
||||
port: 3306,
|
||||
username: "zeppelin",
|
||||
password: env.STANDALONE_MYSQL_PASSWORD,
|
||||
database: "zeppelin",
|
||||
};
|
||||
} else if (env.HOST_MODE === "lightweight") {
|
||||
dbOpts = {
|
||||
host: env.LIGHTWEIGHT_DB_HOST,
|
||||
port: env.LIGHTWEIGHT_DB_PORT,
|
||||
username: env.LIGHTWEIGHT_DB_USER,
|
||||
password: env.LIGHTWEIGHT_DB_PASSWORD,
|
||||
database: env.LIGHTWEIGHT_DB_DATABASE,
|
||||
};
|
||||
} else {
|
||||
throw new Error(`Unknown host mode: ${env.HOST_MODE}`);
|
||||
}
|
||||
const dbOpts: DbOpts =
|
||||
env.NODE_ENV === "production"
|
||||
? {
|
||||
host: env.DB_HOST,
|
||||
port: env.DB_PORT,
|
||||
username: env.DB_USER,
|
||||
password: env.DB_PASSWORD,
|
||||
database: env.DB_DATABASE,
|
||||
}
|
||||
: {
|
||||
host: "mysql",
|
||||
port: 3306,
|
||||
username: "zeppelin",
|
||||
password: env.DEVELOPMENT_MYSQL_PASSWORD,
|
||||
database: "zeppelin",
|
||||
};
|
||||
|
||||
export const dataSource = new DataSource({
|
||||
type: "mysql",
|
||||
|
|
|
@ -38,22 +38,22 @@ const envType = z.object({
|
|||
|
||||
PHISHERMAN_API_KEY: z.string().optional(),
|
||||
|
||||
DEVELOPMENT_MYSQL_PASSWORD: z.string().optional(), // Included here for the DB_PASSWORD default in development
|
||||
STANDALONE_MYSQL_PASSWORD: z.string().optional(), // Included here for the DB_PASSWORD default in production
|
||||
DB_HOST: z.string().optional(),
|
||||
DB_PORT: z.preprocess((v) => Number(v), z.number()).optional(),
|
||||
DB_USER: z.string().optional(),
|
||||
DB_PASSWORD: z.string().optional(),
|
||||
DB_DATABASE: z.string().optional(),
|
||||
|
||||
LIGHTWEIGHT_DB_HOST: z.string().optional(),
|
||||
LIGHTWEIGHT_DB_PORT: z.preprocess((v) => Number(v), z.number()).optional(),
|
||||
LIGHTWEIGHT_DB_USER: z.string().optional(),
|
||||
LIGHTWEIGHT_DB_PASSWORD: z.string().optional(),
|
||||
LIGHTWEIGHT_DB_DATABASE: z.string().optional(),
|
||||
DEVELOPMENT_MYSQL_PASSWORD: z.string().optional(),
|
||||
|
||||
LIGHTWEIGHT_API_PATH_PREFIX: z.string().optional(),
|
||||
API_PATH_PREFIX: z.string().optional(),
|
||||
|
||||
HOST_MODE: z.enum(["development", "standalone", "lightweight"]).optional().default("lightweight"),
|
||||
DEBUG: z
|
||||
.string()
|
||||
.optional()
|
||||
.transform((str) => str === "true"),
|
||||
|
||||
NODE_ENV: z.string().default("development"),
|
||||
});
|
||||
|
||||
let toValidate = { ...process.env };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue