lib/auth/googleRefreshTokenCredential.ts (15 lines of code) (raw):

import { OAuth2Client } from "google-auth-library"; import { Credential } from "./interfaces"; export class GoogleRefreshTokenCredential implements Credential { private client: OAuth2Client; constructor(client_id: string, client_secret: string, refresh_token: string) { this.client = new OAuth2Client(client_id, client_secret); this.client.setCredentials({ refresh_token, }); } async getToken() { const { token } = await this.client.getAccessToken(); return token; } }