title | isDefaultIndex | generated |
---|---|---|
TemplateLoader |
false |
true |
import MemberInfo from '@site/src/components/MemberInfo'; import GenerationInfo from '@site/src/components/GenerationInfo'; import MemberDescription from '@site/src/components/MemberDescription';
Loads email templates 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()
...
})
interface TemplateLoader {
loadTemplate(injector: Injector, ctx: RequestContext, input: LoadTemplateInput): Promise<string>;
loadPartials?(): Promise<Partial[]>;
}
<MemberInfo kind="method" type={(injector: <a href='/reference/typescript-api/common/injector#injector'>Injector</a>, ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, input: LoadTemplateInput) => Promise<string>
} />
Load template and return it's content as a string
<MemberInfo kind="method" type={() => Promise<Partial[]>
} />
Load partials and return their contents. This method is only called during initialization, i.e. during server startup.
Loads email templates from the local file system. This is the default loader used by the EmailPlugin.
class FileBasedTemplateLoader implements TemplateLoader {
constructor(templatePath: string)
loadTemplate(_injector: Injector, _ctx: RequestContext, { type, templateName }: LoadTemplateInput) => Promise<string>;
loadPartials() => Promise<Partial[]>;
}
- Implements:
TemplateLoader
<MemberInfo kind="method" type={(templatePath: string) => FileBasedTemplateLoader
} />
<MemberInfo kind="method" type={(_injector: <a href='/reference/typescript-api/common/injector#injector'>Injector</a>, _ctx: <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>, { type, templateName }: LoadTemplateInput) => Promise<string>
} />
<MemberInfo kind="method" type={() => Promise<Partial[]>
} />