@azure-utils/storybooks
Version:
Utils to upload and manage Storybooks via Azure Functions and storage.
27 lines (25 loc) • 1.24 kB
JavaScript
const require_constants = require('./constants-94H7Co6A.cjs');
const require_projects = require('./projects-Dq7sJTc7.cjs');
//#region src/handlers/timer-purge-handler.ts
function timerPurgeHandler(connectionString) {
return async (timer, context) => {
context.log("Timer triggered to purge old builds...", JSON.stringify(timer));
const projectModel = new require_projects.ProjectModel(context, connectionString);
const projects = await projectModel.list();
for (const project of projects) {
const { id, purgeBuildsAfterDays = require_constants.DEFAULT_PURGE_AFTER_DAYS } = project;
const expiryTime = new Date(Date.now() - purgeBuildsAfterDays * require_constants.ONE_DAY_IN_MS);
context.log(`[${id}] Timer - Purge builds which were last modified more than ${purgeBuildsAfterDays} days ago - since ${new Date(expiryTime)}`);
const buildModel = projectModel.buildModel(project.id);
const expiredBuilds = await buildModel.list({ filter: `Timestamp lt '${expiryTime.toISOString()}'` });
for (const build of expiredBuilds) await buildModel.delete(build.sha);
}
};
}
//#endregion
Object.defineProperty(exports, 'timerPurgeHandler', {
enumerable: true,
get: function () {
return timerPurgeHandler;
}
});