Files
paperclip/server/src/config.ts
Forgotten 5306142542 Add CLI package, config file support, and workspace setup
Add cli/ package with initial scaffolding. Add config-schema to shared
package for typed configuration. Add server config-file loader for
paperclip.config.ts support. Register cli in pnpm workspace. Add
.paperclip/ and .pnpm-store/ to gitignore. Minor Companies page fix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 13:39:47 -06:00

30 lines
924 B
TypeScript

import { readConfigFile } from "./config-file.js";
export interface Config {
port: number;
databaseUrl: string | undefined;
serveUi: boolean;
heartbeatSchedulerEnabled: boolean;
heartbeatSchedulerIntervalMs: number;
}
export function loadConfig(): Config {
const fileConfig = readConfigFile();
const fileDbUrl =
fileConfig?.database.mode === "postgres"
? fileConfig.database.connectionString
: undefined;
return {
port: Number(process.env.PORT) || fileConfig?.server.port || 3100,
databaseUrl: process.env.DATABASE_URL ?? fileDbUrl,
serveUi:
process.env.SERVE_UI !== undefined
? process.env.SERVE_UI === "true"
: fileConfig?.server.serveUi ?? false,
heartbeatSchedulerEnabled: process.env.HEARTBEAT_SCHEDULER_ENABLED !== "false",
heartbeatSchedulerIntervalMs: Math.max(10000, Number(process.env.HEARTBEAT_SCHEDULER_INTERVAL_MS) || 30000),
};
}