turborepo-remote-cache
Version:
Turborepo remote cache server
40 lines • 4.51 kB
JavaScript
import { STORAGE_PROVIDERS, resolveBodyLimit } from '../../env.js';
import auth from './auth/index.js';
import { artifactsEvents, cleanCache, getArtifact, getStatus, headArtifact, putArtifact, } from './routes/index.js';
import { createLocation } from './storage/index.js';
async function turboRemoteCache(instance, options) {
const { value: bodyLimit, warning: bodyLimitWarning } = resolveBodyLimit(instance.config.BODY_LIMIT);
if (bodyLimitWarning) {
instance.log.warn(bodyLimitWarning);
}
const { apiVersion = 'v8', provider = STORAGE_PROVIDERS.LOCAL } = options;
instance.addContentTypeParser('application/octet-stream', { parseAs: 'buffer', bodyLimit }, async function parser(request, payload) {
return payload;
});
instance.decorate('location', createLocation(provider, {
accessKey: instance.config.S3_ACCESS_KEY,
secretKey: instance.config.S3_SECRET_KEY,
path: instance.config.STORAGE_PATH,
region: instance.config.S3_REGION,
endpoint: instance.config.S3_ENDPOINT,
clientEmail: instance.config.GCS_CLIENT_EMAIL,
privateKey: instance.config.GCS_PRIVATE_KEY?.replace(/\\n/g, '\n'),
projectId: instance.config.GCS_PROJECT_ID,
useTmp: !!instance.config.STORAGE_PATH_USE_TMP_FOLDER,
connectionString: instance.config.ABS_CONNECTION_STRING,
maxSockets: instance.config.S3_MAX_SOCKETS,
}));
instance.register(async function (i) {
await i.register(auth);
i.route(getArtifact);
i.route(headArtifact);
i.route(putArtifact);
i.route(artifactsEvents);
i.route(cleanCache);
}, { prefix: `/${apiVersion}` });
await instance.register(async (i) => {
i.route(getStatus);
}, { prefix: `/${apiVersion}` });
}
export default turboRemoteCache;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGx1Z2lucy9yZW1vdGUtY2FjaGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ2xFLE9BQU8sSUFBSSxNQUFNLGlCQUFpQixDQUFBO0FBQ2xDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsR0FDWixNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUVuRCxLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLFFBQXlCLEVBQ3pCLE9BR0M7SUFFRCxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxnQkFBZ0IsQ0FDdEUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQzNCLENBQUE7SUFDRCxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDckIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBQ0QsTUFBTSxFQUFFLFVBQVUsR0FBRyxJQUFJLEVBQUUsUUFBUSxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQTtJQUV6RSxRQUFRLENBQUMsb0JBQW9CLENBQzNCLDBCQUEwQixFQUMxQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQ2hDLEtBQUssVUFBVSxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU87UUFDcEMsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQyxDQUNGLENBQUE7SUFFRCxRQUFRLENBQUMsUUFBUSxDQUNmLFVBQVUsRUFDVixjQUFjLENBQUMsUUFBUSxFQUFFO1FBQ3ZCLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWE7UUFDeEMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYTtRQUN4QyxJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZO1FBQ2xDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVM7UUFDakMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVztRQUNyQyxXQUFXLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7UUFDN0MsVUFBVSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQ2xFLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWM7UUFDekMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLDJCQUEyQjtRQUNyRCxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLHFCQUFxQjtRQUN2RCxVQUFVLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjO0tBQzNDLENBQUMsQ0FDSCxDQUFBO0lBRUQsUUFBUSxDQUFDLFFBQVEsQ0FDZixLQUFLLFdBQVcsQ0FBQztRQUNmLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDckIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ3hCLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDckIsQ0FBQyxFQUNELEVBQUUsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FDN0IsQ0FBQTtJQUVELE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FDckIsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ1YsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNwQixDQUFDLEVBQ0QsRUFBRSxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUM3QixDQUFBO0FBQ0gsQ0FBQztBQUVELGVBQWUsZ0JBQWdCLENBQUEifQ==