mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-17 13:55:50 +00:00
31 lines
1.4 KiB
TypeScript
31 lines
1.4 KiB
TypeScript
export const config = {
|
|
version: process.env.RCS_VERSION || '0.1.0',
|
|
port: parseInt(process.env.RCS_PORT || '3000', 10),
|
|
host: process.env.RCS_HOST || '0.0.0.0',
|
|
apiKeys: (process.env.RCS_API_KEYS || '').split(',').filter(Boolean),
|
|
baseUrl: process.env.RCS_BASE_URL || '',
|
|
pollTimeout: parseInt(process.env.RCS_POLL_TIMEOUT || '8', 10),
|
|
heartbeatInterval: parseInt(process.env.RCS_HEARTBEAT_INTERVAL || '20', 10),
|
|
jwtExpiresIn: parseInt(process.env.RCS_JWT_EXPIRES_IN || '3600', 10),
|
|
disconnectTimeout: parseInt(process.env.RCS_DISCONNECT_TIMEOUT || '300', 10),
|
|
webCorsOrigins: (process.env.RCS_WEB_CORS_ORIGINS || '')
|
|
.split(',')
|
|
.map(origin => origin.trim())
|
|
.filter(Boolean),
|
|
/** Bun WebSocket idle timeout (seconds). Bun sends protocol-level pings after
|
|
* this many seconds of no received data. Must be shorter than any reverse
|
|
* proxy's idle timeout (nginx default 60s, Cloudflare 100s). Default 30s. */
|
|
wsIdleTimeout: parseInt(process.env.RCS_WS_IDLE_TIMEOUT || '30', 10),
|
|
/** Server→client keep_alive data-frame interval (seconds). Keeps reverse
|
|
* proxies from closing idle connections. Default 20s. */
|
|
wsKeepaliveInterval: parseInt(
|
|
process.env.RCS_WS_KEEPALIVE_INTERVAL || '20',
|
|
10,
|
|
),
|
|
} as const
|
|
|
|
export function getBaseUrl(): string {
|
|
const url = config.baseUrl || `http://localhost:${config.port}`
|
|
return url.replace(/\/+$/, '')
|
|
}
|