var dust = require('dustjs-linkedin'); var templateName = 'intro'; var serializedTemplate = require('./' + templateName); function createCallableTemplate(name, tmpl) { return function(context, callback) { var master = callback ? new dust.Stub(callback) : new dust.Stream(); dust.nextTick(function() { if(typeof tmpl === 'function') { tmpl(master.head, dust.Context.wrap(context, name)).end(); } else { dust.onError(new Error('Template [' + name + '] cannot be resolved to a Dust function')); } }); return master; }; } var usableTemplate = createCallableTemplate(templateName, serializedTemplate); usableTemplate({name:'fooooo'}, function(error, result) { console.log(result); });