{"version":3,"file":"timer-purge-handler-DSRkR3S8.mjs","names":["connectionString: string"],"sources":["../src/handlers/timer-purge-handler.ts"],"sourcesContent":["import { DEFAULT_PURGE_AFTER_DAYS, ONE_DAY_IN_MS } from \"../utils/constants\";\nimport { TimerHandler } from \"@azure/functions\";\nimport { ProjectModel } from \"../models/projects\";\n\nexport function timerPurgeHandler(connectionString: string): TimerHandler {\n  return async (timer, context) => {\n    context.log(\n      \"Timer triggered to purge old builds...\",\n      JSON.stringify(timer)\n    );\n\n    const projectModel = new ProjectModel(context, connectionString);\n    const projects = await projectModel.list();\n\n    for (const project of projects) {\n      const { id, purgeBuildsAfterDays = DEFAULT_PURGE_AFTER_DAYS } = project;\n      const expiryTime = new Date(\n        Date.now() - purgeBuildsAfterDays * ONE_DAY_IN_MS\n      );\n\n      context.log(\n        `[${id}] Timer - Purge builds which were last modified more than ${purgeBuildsAfterDays} days ago - since ${new Date(\n          expiryTime\n        )}`\n      );\n\n      const buildModel = projectModel.buildModel(project.id);\n      const expiredBuilds = await buildModel.list({\n        filter: `Timestamp lt '${expiryTime.toISOString()}'`,\n      });\n\n      for (const build of expiredBuilds) {\n        await buildModel.delete(build.sha);\n      }\n    }\n  };\n}\n"],"mappings":";;;;AAIA,SAAgB,kBAAkBA,kBAAwC;AACxE,QAAO,OAAO,OAAO,YAAY;EAC/B,QAAQ,IACN,0CACA,KAAK,UAAU,MAAM,CACtB;EAED,MAAM,eAAe,IAAI,aAAa,SAAS;EAC/C,MAAM,WAAW,MAAM,aAAa,MAAM;AAE1C,OAAK,MAAM,WAAW,UAAU;GAC9B,MAAM,EAAE,IAAI,uBAAuB,0BAA0B,GAAG;GAChE,MAAM,aAAa,IAAI,KACrB,KAAK,KAAK,GAAG,uBAAuB;GAGtC,QAAQ,IACN,CAAC,CAAC,EAAE,GAAG,0DAA0D,EAAE,qBAAqB,kBAAkB,EAAE,IAAI,KAC9G,aACC,CACJ;GAED,MAAM,aAAa,aAAa,WAAW,QAAQ,GAAG;GACtD,MAAM,gBAAgB,MAAM,WAAW,KAAK,EAC1C,QAAQ,CAAC,cAAc,EAAE,WAAW,aAAa,CAAC,CAAC,CAAC,CACrD,EAAC;AAEF,QAAK,MAAM,SAAS,eAClB,MAAM,WAAW,OAAO,MAAM,IAAI;EAErC;CACF;AACF"}