@ackplus/nest-dynamic-templates
Version:
A powerful and flexible dynamic template rendering library for NestJS applications with support for Nunjucks, Handlebars, EJS, Pug, MJML, Markdown, and more.
35 lines • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MarkdownEngine = void 0;
const template_types_1 = require("../../interfaces/template.types");
const language_engine_1 = require("../language-engine");
const load_peer_1 = require("../load-peer");
class MarkdownEngine extends language_engine_1.LanguageEngine {
options;
static engineName = template_types_1.TemplateLanguageEnum.MARKDOWN;
static displayName = 'Markdown';
static peerPackage = 'marked';
constructor(options = {}) {
super();
this.options = options;
}
async render(content) {
const mod = await (0, load_peer_1.loadPeer)('marked', 'md', 'language');
const marked = mod.marked ?? mod.default ?? mod;
const out = typeof marked.parse === 'function'
? marked.parse(content, this.options)
: marked(content, this.options);
return typeof out === 'string' ? out : await out;
}
async validate(content) {
try {
await this.render(content);
return true;
}
catch {
return false;
}
}
}
exports.MarkdownEngine = MarkdownEngine;
//# sourceMappingURL=markdown.engine.js.map