This commit is contained in:
commit
421043c9b5
67 changed files with 3455 additions and 0 deletions
69
environment/config.ts
Normal file
69
environment/config.ts
Normal file
|
@ -0,0 +1,69 @@
|
|||
import { echo } from "@atums/echo";
|
||||
import { validateJWTConfig } from "#lib/validation";
|
||||
import { cassandraConfig, validateCassandraConfig } from "./database/cassandra";
|
||||
import { jwt } from "./jwt";
|
||||
|
||||
import type { Environment } from "#types/config";
|
||||
|
||||
const environment: Environment = {
|
||||
port: Number.parseInt(process.env.PORT || "8080", 10),
|
||||
host: process.env.HOST || "0.0.0.0",
|
||||
development:
|
||||
process.env.NODE_ENV === "development" || process.argv.includes("--dev"),
|
||||
};
|
||||
|
||||
function verifyRequiredVariables(): void {
|
||||
const requiredVariables = [
|
||||
"HOST",
|
||||
"PORT",
|
||||
|
||||
"REDIS_URL",
|
||||
"REDIS_TTL",
|
||||
|
||||
"CASSANDRA_HOST",
|
||||
"CASSANDRA_PORT",
|
||||
"CASSANDRA_CONTACT_POINTS",
|
||||
"CASSANDRA_AUTH_ENABLED",
|
||||
"CASSANDRA_DATACENTER",
|
||||
|
||||
"JWT_SECRET",
|
||||
"JWT_EXPIRATION",
|
||||
"JWT_ISSUER",
|
||||
|
||||
"FRONTEND_FQDN",
|
||||
];
|
||||
|
||||
let hasError = false;
|
||||
|
||||
for (const key of requiredVariables) {
|
||||
const value = process.env[key];
|
||||
if (value === undefined || value.trim() === "") {
|
||||
echo.error(`Missing or empty environment variable: ${key}`);
|
||||
hasError = true;
|
||||
}
|
||||
}
|
||||
|
||||
const validateCassandra = validateCassandraConfig(cassandraConfig);
|
||||
|
||||
if (!validateCassandra.isValid) {
|
||||
echo.error("Cassandra configuration validation failed:");
|
||||
for (const error of validateCassandra.errors) {
|
||||
echo.error(`- ${error}`);
|
||||
}
|
||||
hasError = true;
|
||||
}
|
||||
|
||||
const validateJWT = validateJWTConfig(jwt);
|
||||
|
||||
if (!validateJWT.valid) {
|
||||
echo.error("JWT configuration validation failed:");
|
||||
echo.error(`- ${validateJWT.error}`);
|
||||
hasError = true;
|
||||
}
|
||||
|
||||
if (hasError) {
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
export { environment, verifyRequiredVariables };
|
Loading…
Add table
Add a link
Reference in a new issue