template-renderer
Usage
Simple setup to render markdown and cache the last 100 results for one hour.
const { Engine, RenderJob } = require('@avanzu/template-renderer')
const { LRUStorage } = require('@avanzu/template-renderer/storages')
const { MarkdownRenderer } = require('@avanzu/template-renderer/renderers')
const engine = new Engine({
renderer: new MarkdownRenderer(),
storage: new LRUStorage({ maxEntries: 100, ttl: 3_600_000 }),
})
const output = await engine.render(RenderJob.markdown('***hello world***'))
Extend
Renderer
const { Renderer, RenderJob } = require('@avanzu/template-renderer')
exports.CustomRenderer = class CustomRenderer extends Renderer {
supports(syntax) {
return syntax.includes('custom-template')
}
async render(job) {
const { template, vars } = job
}
}
storage
const { Storage, CacheMiss } = require('@avanzu/template-renderer')
exports.CustomStorage = class CustomStorage extends Storage {
constructor(options) {
super(options)
}
async has(job) {
const { hash } = job
}
async hydrate(job) {
job.update(contents)
return job
}
async store(job) {
const { hash, content } = job
return job
}
}