Skip to content

Commit a0df98b

Browse files
Make filestore optional so you can run outside Docker
1 parent 6fcc7e0 commit a0df98b

1 file changed

Lines changed: 7 additions & 8 deletions

File tree

app/src/api/sessionSync.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,15 @@ import { join } from "path";
44
import { promisify } from "util";
55

66
const execFile = promisify(execFileCb);
7-
const FILESTORE_HOST = requireEnv("SESSION_FILESTORE_HOST");
8-
const FILESTORE_PORT = requireEnv("SESSION_FILESTORE_PORT");
7+
const FILESTORE_HOST = process.env.SESSION_FILESTORE_HOST;
8+
const FILESTORE_PORT = process.env.SESSION_FILESTORE_PORT;
9+
const FILESTORE_ENABLED = !!FILESTORE_HOST && !!FILESTORE_PORT;
910
const debounceTimeoutMs = 2000;
1011
const debounceTimers = new Map<string, NodeJS.Timeout>();
1112

12-
function requireEnv(name: string): string {
13-
const value = process.env[name];
14-
if (!value) throw new Error(`Missing required environment variable: ${name}`);
15-
return value;
16-
}
17-
1813
export async function syncSessionToFilestore(sessionsDir: string, sessionId: string): Promise<void> {
14+
if (!FILESTORE_ENABLED) return;
15+
1916
const existingTimer = debounceTimers.get(sessionId);
2017
if (existingTimer) {
2118
clearTimeout(existingTimer);
@@ -36,6 +33,8 @@ export async function syncSessionToFilestore(sessionsDir: string, sessionId: str
3633
}
3734

3835
export async function restoreSessionFromFilestore(sessionsDir: string, sessionId: string): Promise<void> {
36+
if (!FILESTORE_ENABLED) return;
37+
3938
const src = `rsync://${FILESTORE_HOST}:${FILESTORE_PORT}/sessions/${sessionId}/`;
4039
const dest = `${join(sessionsDir, sessionId)}/`;
4140

0 commit comments

Comments
 (0)