UNPKG

apeman-tmpl-contrib-official

Version:
64 lines (60 loc) 1.47 kB
/** * @memberof module:apeman-tmpl-contrib-official * @constructor _Renderer * @private */ "use strict"; var coz = require('coz'), extend = require('extend'), Handlebars = require('handlebars'); /** @lends _Renderer */ function _Renderer(src) { var s = this; s.src = src; } _Renderer.prototype = { /** * Get buds. * @param {object} data - Data to render. * @returns {array} - Buds objects. */ buds: function (data) { var s = this; return Object.keys(s.src).map(function (pathname) { var src = s.src[pathname]; pathname = String(Handlebars.compile(pathname)(data)); return extend(src, { path: pathname, mkdirp: true, data: data }); }); }, /** * Render with data. * @param {object} data - Data to render. * @param {function} callback - Callback when done. */ render: function (data, callback) { var s = this, buds = s.buds(data); coz.render(buds, callback); }, /** * Bind render method. * @returns {function(this:_Renderer)} */ bindRender: function () { var s = this; return s.render.bind(s); }, /** * Bind buds method. * @returns {function(this:_Renderer)} */ bindBuds: function () { var s = this; return s.buds.bind(s); } }; module.exports = _Renderer;