-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
36 lines (29 loc) · 886 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'use strict';
/**
* @type {Handlebars}
*/
var Handlebars = require('injectify/runtime'),
utils = require('injectify/utils');
/**
* @param {Function} template
* @param {Object} [hash]
* @param {{hash: Object}} options
*
* @returns {Handlebars.SafeString}
*/
var includeHelper = function () {
var args = utils.extractArguments(this, _.toArray(arguments)),
options = args.options,
template = args.module,
hash = args.hash,
parentView = args.parentView;
hash.__parent__ = this;
hash.view = parentView;
if (options.fn) {
hash.content = options.fn(hash);
}
return typeof template == 'function' ? new Handlebars.SafeString(template(hash)) :
typeof template === 'string' ? new Handlebars.SafeString(template) : '';
};
Handlebars.registerHelper('include', includeHelper);
module.exports = includeHelper;