turborepo-remote-cache
Version:
Turborepo remote cache server
37 lines • 2.54 kB
JavaScript
import { Storage } from '@google-cloud/storage';
function createStorage({ clientEmail, privateKey, projectId }) {
if (!clientEmail || !privateKey || !projectId) {
return new Storage();
}
else {
return new Storage({
projectId,
credentials: {
client_email: clientEmail,
private_key: privateKey,
},
});
}
}
export function createGoogleCloudStorage({ bucket, clientEmail, privateKey, projectId, }) {
const storage = createStorage({
clientEmail,
privateKey,
projectId,
});
const turboBucket = storage.bucket(bucket);
return {
exists: (artifactPath, cb) => {
turboBucket.file(artifactPath).exists(cb);
},
createReadStream(artifactPath) {
return turboBucket
.file(artifactPath)
.createReadStream();
},
createWriteStream(artifactPath) {
return turboBucket.file(artifactPath).createWriteStream();
},
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNsb3VkLXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2lucy9yZW1vdGUtY2FjaGUvc3RvcmFnZS9nb29nbGUtY2xvdWQtc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFVL0MsU0FBUyxhQUFhLENBQUMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtJQUMzRCxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFBO0lBQ3RCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFJLE9BQU8sQ0FBQztZQUNqQixTQUFTO1lBQ1QsV0FBVyxFQUFFO2dCQUNYLFlBQVksRUFBRSxXQUFXO2dCQUN6QixXQUFXLEVBQUUsVUFBVTthQUN4QjtTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEVBQ3ZDLE1BQU0sRUFDTixXQUFXLEVBQ1gsVUFBVSxFQUNWLFNBQVMsR0FDaUI7SUFDMUIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDO1FBQzVCLFdBQVc7UUFDWCxVQUFVO1FBQ1YsU0FBUztLQUNWLENBQUMsQ0FBQTtJQUVGLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFMUMsT0FBTztRQUNMLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUMzQixXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxDQUFDO1FBQ0QsZ0JBQWdCLENBQUMsWUFBWTtZQUMzQixPQUFPLFdBQVc7aUJBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQztpQkFDbEIsZ0JBQWdCLEVBQXVCLENBQUE7UUFDNUMsQ0FBQztRQUNELGlCQUFpQixDQUFDLFlBQVk7WUFDNUIsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDM0QsQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDIn0=