Create local variable for helpers

This commit is contained in:
Patrick Steele-Idem 2015-02-16 13:23:03 -07:00
parent e7166be149
commit dba43a8733
2 changed files with 7 additions and 4 deletions

View File

@ -23,7 +23,7 @@ function addHandlerVar(template, renderer) {
var handlerVar = handlerVars[renderer];
if (!handlerVar) {
handlerVar = renderer.replace(/[.\-\/\\]/g, '_').replace(/^[_]+/g, '');
handlerVar = template.addStaticVar(handlerVar, '__helpers.r(require(' + stringify(renderer) + '))');
handlerVar = template.addStaticVar(handlerVar, '__renderer(require(' + stringify(renderer) + '))');
handlerVars[renderer] = handlerVar;
}
return handlerVar;
@ -101,9 +101,11 @@ TagHandlerNode.prototype = {
this.inputExpression = expression;
},
doGenerateCode: function (template) {
template.addStaticVar('__renderer', '__helpers.r');
var rendererPath = template.getRequirePath(this.tag.renderer); // Resolve a path to the renderer relative to the directory of the template
var handlerVar = addHandlerVar(template, rendererPath);
var tagHelperVar = template.addStaticVar('_tag', '__helpers.t');
var tagHelperVar = template.addStaticVar('__tag', '__helpers.t');
this.tag.forEachImportedVariable(function (importedVariable) {
this.setProperty(importedVariable.targetProperty, template.makeExpression(importedVariable.expression));

View File

@ -385,9 +385,10 @@ module.exports = function transform(node, compiler, template) {
value = compiler.makeExpression(pathVar);
}
} else if (type === 'template') {
template.addStaticVar('__loadTemplate', '__helpers.l');
var templateVar;
if (compiler.hasExpression(attr.value)) {
value = compiler.makeExpression('__helpers.l(' +
value = compiler.makeExpression('__loadTemplate(' +
convertAttrValue(
attr,
'string',
@ -395,7 +396,7 @@ module.exports = function transform(node, compiler, template) {
')');
} else {
// Resolve the static string to a full path only once
templateVar = template.addStaticVar(attr.value, '__helpers.l(require.resolve(' + compiler.convertType(attr.value, 'string', true) + '))');
templateVar = template.addStaticVar(attr.value, '__loadTemplate(require.resolve(' + compiler.convertType(attr.value, 'string', true) + '))');
value = compiler.makeExpression(templateVar);
}
} else {