turborepo-remote-cache
Version:
Turborepo remote cache server
36 lines • 4.03 kB
JavaScript
import { STORAGE_PROVIDERS } from '../../env.js';
import auth from './auth/index.js';
import { artifactsEvents, getArtifact, getStatus, headArtifact, putArtifact, } from './routes/index.js';
import { createLocation } from './storage/index.js';
async function turboRemoteCache(instance, options) {
const bodyLimit = instance.config.BODY_LIMIT;
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);
}, { prefix: `/${apiVersion}` });
await instance.register(async (i) => {
i.route(getStatus);
}, { prefix: `/${apiVersion}` });
}
export default turboRemoteCache;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGx1Z2lucy9yZW1vdGUtY2FjaGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ2hELE9BQU8sSUFBSSxNQUFNLGlCQUFpQixDQUFBO0FBQ2xDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxHQUNaLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRW5ELEtBQUssVUFBVSxnQkFBZ0IsQ0FDN0IsUUFBeUIsRUFDekIsT0FHQztJQUVELE1BQU0sU0FBUyxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFBO0lBQ3BELE1BQU0sRUFBRSxVQUFVLEdBQUcsSUFBSSxFQUFFLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUE7SUFFekUsUUFBUSxDQUFDLG9CQUFvQixDQUMzQiwwQkFBMEIsRUFDMUIsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUNoQyxLQUFLLFVBQVUsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPO1FBQ3BDLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUMsQ0FDRixDQUFBO0lBRUQsUUFBUSxDQUFDLFFBQVEsQ0FDZixVQUFVLEVBQ1YsY0FBYyxDQUFDLFFBQVEsRUFBRTtRQUN2QixTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhO1FBQ3hDLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWE7UUFDeEMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWTtRQUNsQyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTO1FBQ2pDLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVc7UUFDckMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO1FBQzdDLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztRQUNsRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjO1FBQ3pDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQywyQkFBMkI7UUFDckQsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUI7UUFDdkQsVUFBVSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsY0FBYztLQUMzQyxDQUFDLENBQ0gsQ0FBQTtJQUVELFFBQVEsQ0FBQyxRQUFRLENBQ2YsS0FBSyxXQUFXLENBQUM7UUFDZixNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ3JCLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDcEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUMxQixDQUFDLEVBQ0QsRUFBRSxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUM3QixDQUFBO0lBRUQsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUNyQixLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDVixDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3BCLENBQUMsRUFDRCxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQzdCLENBQUE7QUFDSCxDQUFDO0FBRUQsZUFBZSxnQkFBZ0IsQ0FBQSJ9