UNPKG

@lunoxjs/mail

Version:

Lunox Mail Manager

2 lines (1 loc) 3.32 kB
var M=Object.defineProperty;var s=(t,e)=>M(t,"name",{value:e,configurable:!0});import{Arr as $,useMagic as P,useFacade as O,Facade as T,ServiceProvider as j}from"@lunoxjs/core";import{createTransport as f}from"nodemailer";var A=Object.defineProperty,C=s((t,e)=>A(t,"name",{value:e,configurable:!0}),"i$2");let g=s(class{constructor(e){this.config=e}hasView(){return!!this.config.view}hasHtml(){return!!this.config.html}getView(){return this.config.view}getHtml(){return this.config.html}},"n");C(g,"Content");var S=Object.defineProperty,E=s((t,e)=>S(t,"name",{value:e,configurable:!0}),"l$1");class u{constructor(e){this.addresses=e;const{from:r,to:i,cc:a,bcc:o,replyTo:n}=e,c=config("mail.from");this.from=c,r&&(this.from=r),i&&(this.to=this.normaliseAddress(i)),a&&(this.cc=this.normaliseAddress(a)),o&&(this.bcc=this.normaliseAddress(o)),n&&(this.replyTo=n)}from;replyTo;to;cc;bcc;normaliseAddress(e){return $.wrap(e)}addTo(e){return this.to=[...this.to||[],e],this}}s(u,"c"),E(u,"Envelope");var D=Object.defineProperty,H=s((t,e)=>D(t,"name",{value:e,configurable:!0}),"n");let v=s(class{shouldQueue=!1;envelope(){throw new Error("Method not implemented.")}content(){throw new Error("Method not implemented.")}async buildContent(){const e=this.content();return e.hasView()?(await e.getView()?.render(request()))?.getOriginal():e.hasHtml()?e.getHtml():""}isShouldQueue(){return this.shouldQueue}},"r");H(v,"Mailable");var Q=Object.defineProperty,V=s((t,e)=>Q(t,"name",{value:e,configurable:!0}),"i$1");class h{constructor(e,r){this.driver=e,this.transporter=r}$to;to(e){return this.$to=e,this}async send(e,r=!1){const i=await e.buildContent();if(r)return i;let a=e.envelope();this.$to&&(a=a.addTo(this.$to));const{to:o,from:n,cc:c,bcc:y,replyTo:w}=a;try{await this.transporter.sendMail({from:n,to:o,cc:c,bcc:y,replyTo:w,html:i})}catch(p){if(!e.isShouldQueue())throw p;console.log(p)}}}s(h,"l"),V(h,"Mailer");var _=Object.defineProperty,x=s((t,e)=>_(t,"name",{value:e,configurable:!0}),"s$1");class d{constructor(e){this.app=e}static symbol=Symbol("MailManager");mailers={};getConfig(e){return this.app.config.get("mail.mailers."+e)}resolve(e){const r=this.getConfig(e);if(!r)throw new Error(`Mailer [${e}] is not defined.`);return new h(e,this.createMailTransport(r))}mailer(e){return e=e||this.getDefaultDriver(),this.mailers[e]||(this.mailers[e]=this.resolve(e)),this.mailers[e]}createMailTransport(e){if(e.transport=="smtp"){const{host:r,port:i,encryption:a,username:o,password:n}=e;return f({secure:a=="tls",host:r,auth:{user:o,pass:n},port:Number(i)})}return f()}getDefaultDriver(){return this.app.config.get("mail.default")}__get(e){const r=this.mailer();if(r){if(get_class_methods(r).includes(e))return(...i)=>r[e].call(r,...i);if(Object.getOwnPropertyNames(r).includes(e))return r[e]}}}s(d,"MailManager"),x(d,"MailManager");var l=P(d),F=Object.defineProperty,N=s((t,e)=>F(t,"name",{value:e,configurable:!0}),"e");let b=s(class extends T{static getFacadeAccessor(){return l.symbol}},"t");N(b,"Mail");var q=O(b),k=Object.defineProperty,z=s((t,e)=>k(t,"name",{value:e,configurable:!0}),"r");class m extends j{async register(){this.app.singleton(l.symbol,()=>new l(this.app))}}s(m,"o"),z(m,"MailServiceProvider");export{g as Content,u as Envelope,q as Mail,l as MailManager,m as MailServiceProvider,v as Mailable};