UNPKG

turborepo-remote-cache

Version:
50 lines 3.44 kB
import { readdir, stat, unlink } from 'node:fs/promises'; import { join } from 'node:path'; const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000; export async function cleanStaleLocalArtifacts(rootPath, team, olderThanDays) { const teamPath = join(rootPath, team); const cutoff = Date.now() - olderThanDays * MILLISECONDS_PER_DAY; let deleted = 0; let scanned = 0; let entries; try { entries = await readdir(teamPath); } catch (err) { if (err.code === 'ENOENT') { return { deleted, scanned }; } throw err; } for (const entry of entries) { const filePath = join(teamPath, entry); let fileStats; try { fileStats = await stat(filePath); } catch (err) { if (err.code === 'ENOENT') { continue; } throw err; } if (!fileStats.isFile()) { continue; } scanned++; if (fileStats.atimeMs <= cutoff) { try { await unlink(filePath); deleted++; } catch (err) { if (err.code === 'ENOENT') { continue; } throw err; } } } return { deleted, scanned }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW4tbG9jYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9yZW1vdGUtY2FjaGUvc3RvcmFnZS9jbGVhbi1sb2NhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWhDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBT2hELE1BQU0sQ0FBQyxLQUFLLFVBQVUsd0JBQXdCLENBQzVDLFFBQWdCLEVBQ2hCLElBQVksRUFDWixhQUFxQjtJQUVyQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxhQUFhLEdBQUcsb0JBQW9CLENBQUE7SUFDaEUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFBO0lBRWYsSUFBSSxPQUFpQixDQUFBO0lBQ3JCLElBQUksQ0FBQztRQUNILE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUssR0FBNkIsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQTtRQUM3QixDQUFDO1FBQ0QsTUFBTSxHQUFHLENBQUE7SUFDWCxDQUFDO0lBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLElBQUksU0FBUyxDQUFBO1FBQ2IsSUFBSSxDQUFDO1lBQ0gsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2xDLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSyxHQUE2QixDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDckQsU0FBUTtZQUNWLENBQUM7WUFDRCxNQUFNLEdBQUcsQ0FBQTtRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDeEIsU0FBUTtRQUNWLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQTtRQUNULElBQUksU0FBUyxDQUFDLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7Z0JBQ3RCLE9BQU8sRUFBRSxDQUFBO1lBQ1gsQ0FBQztZQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ2IsSUFBSyxHQUE2QixDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDckQsU0FBUTtnQkFDVixDQUFDO2dCQUNELE1BQU0sR0FBRyxDQUFBO1lBQ1gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM3QixDQUFDIn0=