UNPKG

@api-buddy/sendgrid

Version:

API Buddy integration for SendGrid - Email delivery service for transactional and marketing emails

3 lines 3.77 kB
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); "use strict";var S=Object.create;var l=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var b=(i,e)=>{for(var s in e)l(i,s,{get:e[s],enumerable:!0})},E=(i,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of G(e))!I.call(i,t)&&t!==s&&l(i,t,{get:()=>e[t],enumerable:!(n=y(e,t))||n.enumerable});return i};var x=(i,e,s)=>(s=i!=null?S(R(i)):{},E(e||!i||!i.__esModule?l(s,"default",{value:i,enumerable:!0}):s,i)),P=i=>E(l({},"__esModule",{value:!0}),i);var v={};b(v,{SendGridClient:()=>c,default:()=>m,sendEmail:()=>f,sendGridClient:()=>m,sendMultipleEmails:()=>g,useSendEmail:()=>A,useSendMultipleEmails:()=>D});module.exports=P(v);var d=x(require("@sendgrid/mail")),c=class{config;initialized=!1;constructor(e){this.config=e,this.initialize()}initialize(){if(!this.initialized){if(!this.config.apiKey&&!process.env.SENDGRID_API_KEY)throw new Error("SendGrid API key is required. Either provide it in the config or set the SENDGRID_API_KEY environment variable.");d.default.setApiKey(this.config.apiKey||process.env.SENDGRID_API_KEY),this.initialized=!0}}async sendEmail(e){this.initialized||this.initialize();try{let s={to:e.to,from:e.from||this.config.defaultFrom||"no-reply@example.com",subject:e.subject,text:e.text,html:e.html,templateId:e.templateId,dynamicTemplateData:e.dynamicTemplateData,attachments:e.attachments,categories:e.categories,customArgs:e.customArgs,headers:e.headers,mailSettings:e.mailSettings||this.config.mailSettings,trackingSettings:e.trackingSettings||this.config.trackingSettings,replyTo:e.replyTo||this.config.defaultReplyTo,sendAt:e.sendAt,batchId:e.batchId,asm:e.asm||this.config.asm,ipPoolName:e.ipPoolName||this.config.ipPoolName},[n]=await d.default.send(s);return{success:!0,statusCode:n.statusCode,headers:n.headers,body:n.body}}catch(s){throw console.error("Error sending email:",s),s}}async sendMultipleEmails(e){this.initialized||this.initialize();try{let s=e.map(t=>({to:t.to,from:t.from||this.config.defaultFrom||"no-reply@example.com",subject:t.subject,text:t.text,html:t.html,templateId:t.templateId,dynamicTemplateData:t.dynamicTemplateData,attachments:t.attachments,categories:t.categories,customArgs:t.customArgs,headers:t.headers,mailSettings:t.mailSettings||this.config.mailSettings,trackingSettings:t.trackingSettings||this.config.trackingSettings,replyTo:t.replyTo||this.config.defaultReplyTo,sendAt:t.sendAt,batchId:t.batchId,asm:t.asm||this.config.asm,ipPoolName:t.ipPoolName||this.config.ipPoolName}));return{success:!0,responses:(await d.default.send(s,!0)).map(t=>({statusCode:t.statusCode,headers:t.headers,body:t.body}))}}catch(s){throw console.error("Error sending multiple emails:",s),s}}},m=new c({apiKey:process.env.SENDGRID_API_KEY||""}),f=i=>m.sendEmail(i),g=i=>m.sendMultipleEmails(i);var r=require("react");function A(){let[i,e]=(0,r.useState)(!1),[s,n]=(0,r.useState)(null),[t,o]=(0,r.useState)(null),p=(0,r.useCallback)(async h=>{e(!0),n(null);try{let a=await f(h);return o(a),a}catch(a){throw n(a),a}finally{e(!1)}},[]),u=(0,r.useCallback)(()=>{n(null),o(null)},[]);return{send:p,isLoading:i,error:s,response:t,reset:u}}function D(){let[i,e]=(0,r.useState)(!1),[s,n]=(0,r.useState)(null),[t,o]=(0,r.useState)(null),p=(0,r.useCallback)(async h=>{e(!0),n(null);try{let a=await g(h);return o(a),a}catch(a){throw n(a),a}finally{e(!1)}},[]),u=(0,r.useCallback)(()=>{n(null),o(null)},[]);return{send:p,isLoading:i,error:s,response:t,reset:u}}0&&(module.exports={SendGridClient,sendEmail,sendGridClient,sendMultipleEmails,useSendEmail,useSendMultipleEmails}); //# sourceMappingURL=index.js.map