UNPKG

@axway/api-builder-runtime

Version:

API Builder Runtime

52 lines (45 loc) 1 kB
/** * @class EjsRendererEngine * Renderer engine for EJS templates. * @extends APIBuilderRendererEngine * @pseudo */ /** * @property skipread * @hide */ var ejs = require('ejs'), fs = require('fs'), util = require('./util'); exports.extension = 'ejs'; function render(app, filename, opts) { filename = util.resolveLayoutFilename(app, filename); var tpl = ejs.compile(fs.readFileSync(filename).toString(), { filename: filename }); return tpl(opts); } exports.createRenderer = function (content, filename, app) { var tpl; return function (filePath, opts, callback) { if (!tpl) { try { tpl = ejs.compile(content, { filename: filename }); } catch (err) { return callback(err); } } var result; try { result = tpl(opts || {}); } catch (err) { return callback(err); } util.render(app, result, opts, exports.extension, render, callback); }; }; /** * @property {Object} ejs * ejs module instance to access its APIs. */ exports.ejs = ejs;