first commit
Some checks failed
Code quality checks / biome (push) Failing after 11s

This commit is contained in:
creations 2025-06-10 13:42:39 -04:00
commit 421043c9b5
Signed by: creations
GPG key ID: 8F553AA4320FC711
67 changed files with 3455 additions and 0 deletions

69
environment/config.ts Normal file
View 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 };