Custom Template Loader

TemplateLoader

Load an email template based on the given request context, type and template name and return the template as a string.

Example

import { EmailPlugin, TemplateLoader } from '@vendure/email-plugin';

class MyTemplateLoader implements TemplateLoader {
     loadTemplate(injector, ctx, { type, templateName }){
         return myCustomTemplateFunction(ctx);
     }
}

// In vendure-config.ts:
...
EmailPlugin.init({
    templateLoader: new MyTemplateLoader()
    ...
})

Signature

interface TemplateLoader {
  loadTemplate(injector: Injector, ctx: RequestContext, input: LoadTemplateInput): Promise<string>;
  loadPartials?(): Promise<Partial[]>;
}

Members

loadTemplate

method
type:
(injector: Injector, ctx: RequestContext, input: LoadTemplateInput) => Promise<string>

loadPartials

method
type:
() => Promise<Partial[]>