From db957d7fb18e3d3bf364024d41bab693cc66d1b2 Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Sat, 1 Aug 2026 15:27:01 +0200 Subject: [PATCH] fix(ops): narrow DB_BACKUP_DIR for jobs-worker typecheck Co-authored-by: Cursor --- scripts/jobs-worker.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/scripts/jobs-worker.ts b/scripts/jobs-worker.ts index dc7c57a0..b0e996af 100644 --- a/scripts/jobs-worker.ts +++ b/scripts/jobs-worker.ts @@ -140,7 +140,8 @@ async function backupEmulatorJar(): Promise { /** Optional mysqldump when DB_BACKUP_DIR is set (host must have mysqldump on PATH). */ async function backupDatabase(): Promise { - if (!env.DB_BACKUP_DIR || !env.DATABASE_URL) return; + const backupDir = env.DB_BACKUP_DIR; + if (!backupDir || !env.DATABASE_URL) return; const { mkdirSync, readdirSync, unlinkSync, existsSync, createWriteStream } = await import("node:fs"); @@ -155,14 +156,14 @@ async function backupDatabase(): Promise { return; } - if (!existsSync(env.DB_BACKUP_DIR)) { - mkdirSync(env.DB_BACKUP_DIR, { recursive: true }); + if (!existsSync(backupDir)) { + mkdirSync(backupDir, { recursive: true }); } const timestamp = new Date().toISOString().slice(0, 19).replace(/[T:]/g, "-"); const dbName = decodeURIComponent(parsed.pathname.replace(/^\//, "")) || "cms"; - const outFile = resolve(env.DB_BACKUP_DIR, `db-${dbName}-${timestamp}.sql`); + const outFile = resolve(backupDir, `db-${dbName}-${timestamp}.sql`); const args = [ `-h${parsed.hostname}`, @@ -201,12 +202,13 @@ async function backupDatabase(): Promise { } else { logger.info("Backed up database", { module: "jobs", outFile }); const keep = env.DB_BACKUP_KEEP ?? 7; - const files = readdirSync(env.DB_BACKUP_DIR) + const files = readdirSync(backupDir) .filter((f) => f.startsWith("db-") && f.endsWith(".sql")) .sort() .reverse(); for (let i = keep; i < files.length; i++) { - unlinkSync(resolve(env.DB_BACKUP_DIR, files[i])); + const file = files[i]; + if (file) unlinkSync(resolve(backupDir, file)); } } resolvePromise();