typhon/src/index.ts

30 lines
855 B
TypeScript

import { readFileSync } from "node:fs";
import { join } from "node:path";
import { TyphonApplication } from "./app/TyphonApplication";
import { AppConfig } from "./config/AppConfig";
function readVersion(): string {
try {
const packagePath = join(process.cwd(), "package.json");
const parsed = JSON.parse(readFileSync(packagePath, "utf-8")) as { version?: string };
return parsed.version ?? "0.0.0";
} catch {
return "0.0.0";
}
}
async function main(): Promise<void> {
const config = AppConfig.fromEnv();
const version = readVersion();
const app = new TyphonApplication(config, version);
await app.start();
}
void main().catch((error) => {
const message = error instanceof Error ? error.message : String(error);
console.error(JSON.stringify({ level: "error", component: "typhon", message }));
process.exit(1);
});