UNPKG

turborepo-remote-cache

Version:
34 lines 3.32 kB
import { Readable } from 'stream'; import { badRequest, forbidden, preconditionFailed } from '@hapi/boom'; import { artifactsRouteSchemaWithHeaders, } from './schema.js'; export const putArtifact = { url: '/artifacts/:id', method: 'PUT', schema: artifactsRouteSchemaWithHeaders, authorization: 'write', async handler(req, reply) { if (this.config.READ_ONLY) { throw forbidden('Remote cache is running in read-only mode'); } 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 { const artifactTag = req.headers['x-artifact-tag']; const storagePromises = [ this.location.createCachedArtifact(artifactId, team, Readable.from(req.body)), ]; if (this.config.TURBO_REMOTE_CACHE_SIGNATURE_KEY && artifactTag) { storagePromises.push(this.location.createCachedArtifactTag(artifactId, team, artifactTag)); } await Promise.all(storagePromises); reply.send({ urls: [`${team}/${artifactId}`] }); } catch (err) { throw preconditionFailed('Error during the artifact creation', err); } }, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHV0LWFydGlmYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvcmVtb3RlLWNhY2hlL3JvdXRlcy9wdXQtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU10RSxPQUFPLEVBSUwsK0JBQStCLEdBQ2hDLE1BQU0sYUFBYSxDQUFBO0FBRXBCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FVcEI7SUFDRixHQUFHLEVBQUUsZ0JBQWdCO0lBQ3JCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsTUFBTSxFQUFFLCtCQUErQjtJQUN2QyxhQUFhLEVBQUUsT0FBTztJQUN0QixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixNQUFNLFNBQVMsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO1FBQzlELENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQTtRQUNoQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUNqRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLFVBQVUsQ0FBQyxrREFBa0QsQ0FBQyxDQUFBO1FBQ3RFLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUE7WUFFakQsTUFBTSxlQUFlLEdBQW9CO2dCQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUNoQyxVQUFVLEVBQ1YsSUFBSSxFQUNKLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUN4QjthQUNGLENBQUE7WUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsZ0NBQWdDLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hFLGVBQWUsQ0FBQyxJQUFJLENBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FDckUsQ0FBQTtZQUNILENBQUM7WUFFRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUE7WUFFbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2pELENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBRWIsTUFBTSxrQkFBa0IsQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNyRSxDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUEifQ==