@webtre/nestjs-mailer-react-adapter
Version:
Build and send emails in Nest framework using React.js
1 lines • 2.4 kB
Source Map (JSON)
{"version":3,"sources":["../src/react.adapter.tsx"],"sourcesContent":["import path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport { MailerOptions, TemplateAdapter } from \"@nestjs-modules/mailer\";\nimport { Options, render } from \"@react-email/render\";\nimport { getModuleExport, load } from \"locter\";\n\nexport class ReactAdapter implements TemplateAdapter {\n private config: Options = {\n pretty: false,\n plainText: false,\n };\n\n constructor(config?: Options) {\n Object.assign(this.config, config);\n }\n\n public compile(mail: any, callback: any, options: MailerOptions): void {\n const { context, template } = mail.data;\n const templateExt = path.extname(template) || \".js\";\n const templateName = path.basename(template, templateExt);\n const templateDir = path.isAbsolute(template)\n ? path.dirname(template)\n : path.join(options.template.dir, path.dirname(template));\n const templatePath = path.join(templateDir, templateName + templateExt);\n const templatePathFileURL = pathToFileURL(templatePath).href;\n\n load(templatePathFileURL)\n .then((tmplModule) => {\n const moduleDefault = getModuleExport(\n tmplModule,\n (key) => key === \"default\"\n );\n const Comp = moduleDefault.value;\n\n return render(<Comp {...context} />, this.config);\n })\n .then((html) => {\n mail.data.html = html;\n return callback();\n })\n .catch(callback);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAG9B,SAAkB,cAAc;AAChC,SAAS,iBAAiB,YAAY;AA8BhB;AA5Bf,IAAM,eAAN,MAA8C;AAAA,EAMnD,YAAY,QAAkB;AAL9B,SAAQ,SAAkB;AAAA,MACxB,QAAQ;AAAA,MACR,WAAW;AAAA,IACb;AAGE,WAAO,OAAO,KAAK,QAAQ,MAAM;AAAA,EACnC;AAAA,EAEO,QAAQ,MAAW,UAAe,SAA8B;AACrE,UAAM,EAAE,SAAS,SAAS,IAAI,KAAK;AACnC,UAAM,cAAc,KAAK,QAAQ,QAAQ,KAAK;AAC9C,UAAM,eAAe,KAAK,SAAS,UAAU,WAAW;AACxD,UAAM,cAAc,KAAK,WAAW,QAAQ,IACxC,KAAK,QAAQ,QAAQ,IACrB,KAAK,KAAK,QAAQ,SAAS,KAAK,KAAK,QAAQ,QAAQ,CAAC;AAC1D,UAAM,eAAe,KAAK,KAAK,aAAa,eAAe,WAAW;AACtE,UAAM,sBAAsB,cAAc,YAAY,EAAE;AAExD,SAAK,mBAAmB,EACrB,KAAK,CAAC,eAAe;AACpB,YAAM,gBAAgB;AAAA,QACpB;AAAA,QACA,CAAC,QAAQ,QAAQ;AAAA,MACnB;AACA,YAAM,OAAO,cAAc;AAE3B,aAAO,OAAO,oBAAC,yBAAS,QAAS,GAAI,KAAK,MAAM;AAAA,IAClD,CAAC,EACA,KAAK,CAAC,SAAS;AACd,WAAK,KAAK,OAAO;AACjB,aAAO,SAAS;AAAA,IAClB,CAAC,EACA,MAAM,QAAQ;AAAA,EACnB;AACF;","names":[]}