UNPKG

turborepo-remote-cache

Version:
54 lines 4.79 kB
import { badRequest } from '@hapi/boom'; import { ArtifactNotFoundError } from '../storage/index.js'; import { artifactsRouteSchema, } from './schema.js'; import { buildCdnRedirectUrl } from './utils.js'; export const headArtifact = { method: 'HEAD', url: '/artifacts/:id', schema: artifactsRouteSchema, authorization: 'read', async handler(req, reply) { const artifactId = req.params.id; const team = req.query.teamId ?? req.query.team ?? req.query.slug; if (!team) { throw badRequest(`querystring should have required property 'team'`); } try { if (this.config.TURBO_REMOTE_CACHE_SIGNATURE_KEY) { try { const artifactTag = await this.location.getCachedArtifactTag(artifactId, team); reply.header('x-artifact-tag', artifactTag); } catch (err) { if (!(err instanceof ArtifactNotFoundError)) { throw err; } req.log.info(err, `Could not retrieve artifact tag for ${artifactId}`); return reply.code(404).send({ statusCode: 404, error: 'Not Found', message: 'Artifact tag not found', }); } } if (this.config.TURBO_CACHE_READ_URL) { const artifactUrl = buildCdnRedirectUrl(this.config.TURBO_CACHE_READ_URL, team, artifactId); return reply.redirect(artifactUrl); } const artifact = await this.location.existsCachedArtifact(artifactId, team); reply.send(artifact); } catch (err) { if (err instanceof ArtifactNotFoundError) { req.log.info(err, 'Artifact not found'); return reply.code(404).send({ statusCode: 404, error: 'Not Found', message: 'Artifact not found', }); } throw err; } }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL3JlbW90ZS1jYWNoZS9yb3V0ZXMvaGVhZC1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBTXZDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzNELE9BQU8sRUFHTCxvQkFBb0IsR0FDckIsTUFBTSxhQUFhLENBQUE7QUFDcEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRWhELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FRckI7SUFDRixNQUFNLEVBQUUsTUFBTTtJQUNkLEdBQUcsRUFBRSxnQkFBZ0I7SUFDckIsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixhQUFhLEVBQUUsTUFBTTtJQUNyQixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFBO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFBO1FBQ2pFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sVUFBVSxDQUFDLGtEQUFrRCxDQUFDLENBQUE7UUFDdEUsQ0FBQztRQUVELElBQUksQ0FBQztZQUVILElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUMxRCxVQUFVLEVBQ1YsSUFBSSxDQUNMLENBQUE7b0JBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsQ0FBQTtnQkFDN0MsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUdiLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7d0JBQzVDLE1BQU0sR0FBRyxDQUFBO29CQUNYLENBQUM7b0JBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLHVDQUF1QyxVQUFVLEVBQUUsQ0FBQyxDQUFBO29CQUN0RSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO3dCQUMxQixVQUFVLEVBQUUsR0FBRzt3QkFDZixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsT0FBTyxFQUFFLHdCQUF3QjtxQkFDbEMsQ0FBQyxDQUFBO2dCQUNKLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUNoQyxJQUFJLEVBQ0osVUFBVSxDQUNYLENBQUE7Z0JBQ0QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3BDLENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQ3ZELFVBQVUsRUFDVixJQUFJLENBQ0wsQ0FBQTtZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdEIsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFJYixJQUFJLEdBQUcsWUFBWSxxQkFBcUIsRUFBRSxDQUFDO2dCQUN6QyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUMsQ0FBQTtnQkFDdkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDMUIsVUFBVSxFQUFFLEdBQUc7b0JBQ2YsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLE9BQU8sRUFBRSxvQkFBb0I7aUJBQzlCLENBQUMsQ0FBQTtZQUNKLENBQUM7WUFDRCxNQUFNLEdBQUcsQ0FBQTtRQUNYLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQSJ9