turborepo-remote-cache
Version:
Turborepo remote cache server
27 lines • 2.31 kB
JavaScript
import { badRequest, forbidden } from '@hapi/boom';
import { DEFAULT_OLDER_THAN_DAYS, cleanRouteSchema, } from './clean-schema.js';
function assertSafeTeamSlug(slug) {
if (slug === '.' ||
slug.includes('..') ||
slug.includes('/') ||
slug.includes('\\')) {
throw badRequest('Invalid slug');
}
}
export const cleanCache = {
method: 'POST',
url: '/clean',
schema: cleanRouteSchema,
authorization: 'write',
async handler(req, reply) {
if (this.config.READ_ONLY) {
throw forbidden('Remote cache is running in read-only mode');
}
const slug = req.query.slug;
assertSafeTeamSlug(slug);
const olderThanDays = req.query.olderThan ?? DEFAULT_OLDER_THAN_DAYS;
const result = await this.location.cleanStaleArtifacts(slug, olderThanDays);
return reply.send(result);
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9yZW1vdGUtY2FjaGUvcm91dGVzL2NsZWFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBTWxELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsZ0JBQWdCLEdBQ2pCLE1BQU0sbUJBQW1CLENBQUE7QUFFMUIsU0FBUyxrQkFBa0IsQ0FBQyxJQUFZO0lBQ3RDLElBQ0UsSUFBSSxLQUFLLEdBQUc7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUNuQixDQUFDO1FBQ0QsTUFBTSxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDbEMsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBT25CO0lBQ0YsTUFBTSxFQUFFLE1BQU07SUFDZCxHQUFHLEVBQUUsUUFBUTtJQUNiLE1BQU0sRUFBRSxnQkFBZ0I7SUFDeEIsYUFBYSxFQUFFLE9BQU87SUFDdEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSztRQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUIsTUFBTSxTQUFTLENBQUMsMkNBQTJDLENBQUMsQ0FBQTtRQUM5RCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUE7UUFDM0Isa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFeEIsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksdUJBQXVCLENBQUE7UUFDcEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUUzRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0IsQ0FBQztDQUNGLENBQUEifQ==