refactor: make hardcoded values configurable via env vars

This commit is contained in:
MythEclipse
2026-05-13 16:05:19 +07:00
parent 48cc83f624
commit 7a5ac2e34a
6 changed files with 64 additions and 10 deletions
+25 -1
View File
@@ -5,6 +5,15 @@ export interface AppConfig {
recordingSegmentMs: number;
decoderRotateMs: number;
decoderCooldownMs: number;
webserverPort: number;
voiceConnectionTimeoutMs: number;
reconnectTimeoutMs: number;
audioStreamSilenceDurationMs: number;
packetFilterMinSize: number;
opusFrameSize: number;
audioSampleRate: number;
audioChannels: number;
avatarSize: number;
}
export function parseBoolean(
@@ -30,7 +39,22 @@ export function loadConfig(env: NodeJS.ProcessEnv = process.env): AppConfig {
recordingsDir: env.RECORDINGS_DIR ?? "./recordings",
recordingSegmentMs: parsePositiveNumber(env.RECORDING_SEGMENT_MS, 5_000),
decoderRotateMs: parsePositiveNumber(env.DECODER_ROTATE_MS, 5_000),
decoderCooldownMs: 30_000,
decoderCooldownMs: parsePositiveNumber(env.DECODER_COOLDOWN_MS, 30_000),
webserverPort: parsePositiveNumber(env.WEBSERVER_PORT, 3000),
voiceConnectionTimeoutMs: parsePositiveNumber(
env.VOICE_CONNECTION_TIMEOUT_MS,
15_000,
),
reconnectTimeoutMs: parsePositiveNumber(env.RECONNECT_TIMEOUT_MS, 5_000),
audioStreamSilenceDurationMs: parsePositiveNumber(
env.AUDIO_STREAM_SILENCE_DURATION_MS,
3000,
),
packetFilterMinSize: parsePositiveNumber(env.PACKET_FILTER_MIN_SIZE, 8),
opusFrameSize: parsePositiveNumber(env.OPUS_FRAME_SIZE, 960),
audioSampleRate: parsePositiveNumber(env.AUDIO_SAMPLE_RATE, 48000),
audioChannels: parsePositiveNumber(env.AUDIO_CHANNELS, 2),
avatarSize: parsePositiveNumber(env.AVATAR_SIZE, 64),
};
}