gmail-reader
Version:
A Gmail reader package for Google Workspace accounts with domain-wide delegation support
66 lines • 2.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GmailClient = void 0;
exports.createGmailClient = createGmailClient;
exports.readEmails = readEmails;
exports.readEmail = readEmail;
exports.createDelegatedGmailClient = createDelegatedGmailClient;
// src/index.ts
const gmailClient_1 = require("./gmailClient");
Object.defineProperty(exports, "GmailClient", { enumerable: true, get: function () { return gmailClient_1.GmailClient; } });
/**
* Create a Gmail client for reading emails
*
* @param config - Client configuration including clientId and clientSecret
* @param refreshToken - OAuth2 refresh token (optional for domain-wide delegation)
* @param options - Additional options for domain-wide delegation
* @returns A configured GmailClient instance
*/
function createGmailClient(config, refreshToken, options) {
return new gmailClient_1.GmailClient(config, refreshToken, options);
}
/**
* Read emails from a specific sender
*
* @param config - Client configuration including clientId and clientSecret
* @param refreshToken - OAuth2 refresh token
* @param fromEmail - Email address to filter by sender
* @param options - Additional options
* @returns Promise resolving to a list of emails
*/
async function readEmails(config, refreshToken, fromEmail, options) {
const gmailClient = createGmailClient(config, refreshToken);
await gmailClient.authenticate();
return gmailClient.getEmailsFrom(fromEmail, options);
}
/**
* Read a specific email by ID
*
* @param config - Client configuration including clientId and clientSecret
* @param refreshToken - OAuth2 refresh token
* @param emailId - ID of the email to retrieve
* @param options - Options for retrieving the email
* @returns Promise resolving to the email details
*/
async function readEmail(config, refreshToken, emailId, options) {
const gmailClient = createGmailClient(config, refreshToken);
await gmailClient.authenticate();
return gmailClient.getEmail(emailId, options);
}
/**
* Create a Gmail client with domain-wide delegation
*
* @param config - Client configuration including clientId (service account email)
* @param keyFile - Service account key file content
* @param impersonateEmail - Email address to impersonate
* @param scopes - Optional scopes to request
* @returns A configured GmailClient instance with domain-wide delegation
*/
function createDelegatedGmailClient(config, keyFile, impersonateEmail, scopes) {
return createGmailClient(config, undefined, {
impersonateEmail,
keyFile,
scopes
});
}
//# sourceMappingURL=index.js.map