Skip to main content

TemplateRenderer

@webda/templates


Class: TemplateRenderer

Defined in: packages/templates/src/renderer.ts:79

Renders templates found in folders, with locale fallback, partials and cache

Constructors​

Constructor​

new TemplateRenderer(options): TemplateRenderer

Defined in: packages/templates/src/renderer.ts:86

Parameters​

options​

TemplateRendererOptions

the renderer options

Returns​

TemplateRenderer

Properties​

cache​

protected cache: Map<string, Promise<CompiledTemplate>>

Defined in: packages/templates/src/renderer.ts:81


folders​

protected folders: string[]

Defined in: packages/templates/src/renderer.ts:80


options​

protected options: TemplateRendererOptions

Defined in: packages/templates/src/renderer.ts:86

the renderer options

Methods​

candidates()​

protected candidates(locale?): (string | undefined)[]

Defined in: packages/templates/src/renderer.ts:110

Locale candidates, most specific first

A locale not matching [A-Za-z0-9_-]+ is ignored, as if no locale was requested

Parameters​

locale?​

string

requested locale

Returns​

(string | undefined)[]

deduped candidates, undefined standing for no locale


clearCache()​

clearCache(): void

Defined in: packages/templates/src/renderer.ts:490

Drop every cached compiled template

Returns​

void


contained()​

protected contained(folder, path): boolean

Defined in: packages/templates/src/renderer.ts:174

Check a path stays inside its folder

Parameters​

folder​

string

the folder

path​

string

the candidate path

Returns​

boolean

true if contained


extensions()​

protected extensions(): string[]

Defined in: packages/templates/src/renderer.ts:121

Registered extensions, the preferred engine ones first

Returns​

string[]

extensions


has()​

has(name, options?): Promise<boolean>

Defined in: packages/templates/src/renderer.ts:312

Check a template exists: a single template, a part, or a multi-part template folder with at least one part

A nested name like auth/WELCOME is a multi-part template when the auth/WELCOME folder has parts

Parameters​

name​

string

NAME or NAME/part

options?​

lookup options

locale?​

string

locale to look for

Returns​

Promise<boolean>

true if found


list()​

list(): Promise<string[]>

Defined in: packages/templates/src/renderer.ts:332

List the template names: single templates and multi-part folders

Returns​

Promise<string[]>

sorted names


multiExtensions()​

protected multiExtensions(): string[]

Defined in: packages/templates/src/renderer.ts:132

Registered extensions handled by a multi-part engine (one defining parts)

Returns​

string[]

extensions


parse()​

protected parse(name): object

Defined in: packages/templates/src/renderer.ts:95

Split a template reference and validate it

Parameters​

name​

string

NAME or NAME/part

Returns​

object

the name and part

name​

name: string

part?​

optional part?: string


parts()​

protected parts(name, locale?): Promise<string[] | undefined>

Defined in: packages/templates/src/renderer.ts:429

List the parts of a multi-part template, from the first folder having at least one

Parameters​

name​

string

the multi-part template name

locale?​

string

requested locale

Returns​

Promise<string[] | undefined>

the sorted part names, or undefined if no folder has a part


read()​

protected read(name, part, locale): Promise<{ engine: string; path: string; } | undefined>

Defined in: packages/templates/src/renderer.ts:185

Locate the file of a template (source access, to override for another source)

Parameters​

name​

string

the template name

part​

string | undefined

the part for multi-part templates

locale​

string | undefined

requested locale

Returns​

Promise<{ engine: string; path: string; } | undefined>

the path and engine name, or undefined


render()​

render(name, data?, options?): Promise<string>

Defined in: packages/templates/src/renderer.ts:397

Render a template

Parameters​

name​

string

NAME or NAME/part

data?​

any = {}

the data

options?​

TemplateRenderOptions = {}

render options, locale selects the language

Returns​

Promise<string>

the rendered string


renderAll()​

renderAll(name, data?, options?): Promise<Record<string, string>>

Defined in: packages/templates/src/renderer.ts:410

Render every part of a multi-part template

Parameters​

name​

string

the multi-part template name, the whole name being its folder (WELCOME, auth/WELCOME)

data?​

any = {}

the data

options?​

TemplateRenderOptions = {}

render options

Returns​

Promise<Record<string, string>>

the rendered parts keyed by part name


renderString()​

renderString(source, data?, options?): Promise<string>

Defined in: packages/templates/src/renderer.ts:473

Render a template given as a string

Parameters​

source​

string

the template source

data?​

any = {}

the data

options?​

TemplateRenderOptions & object = {}

render options, engine selects the engine

Returns​

Promise<string>

the rendered string