UNPKG

980 BJavaScriptView Raw
1var Handlebars = require('handlebars'),
2_ = require('lodash');
3
4var loadHelper = function(helperDefinition,options) {
5 var cOpts = _.merge({
6 handlebars: Handlebars,
7 projectDir: process.cwd(),
8 particleLoader: null
9 },_.omit(options,_.isUndefined));
10
11 var wrappedHelper = function () {
12 var cModule, pPath, hArgs, hOpts;
13
14 if (arguments.length === 1) {
15 cModule = '';
16 pPath = '';
17 }
18 else {
19 var moduleCheck = _.isString(arguments[0]) ? arguments[0].split(':') : null;
20
21 if (moduleCheck && moduleCheck[0] === 'module') {
22 cModule = moduleCheck[1];
23 pPath = arguments[1];
24 }
25 else {
26 cModule = '';
27 pPath = arguments[0];
28 }
29
30 hArgs = _.slice(arguments,(cModule ? 2 : 1),arguments.length-1);
31 }
32 hOpts = arguments[arguments.length-1];
33
34 return helperDefinition.helper.apply(this,[cModule,pPath,hArgs,hOpts,cOpts]);
35
36 };
37
38 return wrappedHelper;
39};
40
41module.exports = loadHelper;