private string MinifyAngularBindingExpression(MarkupParsingContext context,
SourceCodeNodeCoordinates attributeCoordinates, SourceCodeNodeCoordinates expressionCoordinates,
string expression)
{
if (string.IsNullOrWhiteSpace(expression))
{
return expression;
}
string result = expression;
CrockfordJsMinifier innerCrockfordJsMinifier = GetInnerCrockfordJsMinifierInstance();
CodeMinificationResult minificationResult = innerCrockfordJsMinifier.Minify(result, true);
IList<MinificationErrorInfo> errors = minificationResult.Errors;
if (errors.Count == 0)
{
result = minificationResult.MinifiedContent ?? string.Empty;
}
else
{
SourceCodeNodeCoordinates absoluteErrorCoordinates = CalculateAbsoluteInlineCodeErrorCoordinates(
context.NodeCoordinates, attributeCoordinates, expressionCoordinates);
string sourceFragment = SourceCodeNavigator.GetSourceFragment(
context.SourceCode, absoluteErrorCoordinates);
string errorMessage = errors[0].Message;
WriteError(LogCategoryConstants.JsTemplateMinificationError,
string.Format(Strings.ErrorMessage_BindingExpressionMinificationFailed,
"Angular", errorMessage.TrimEnd('.')),
_fileContext,
absoluteErrorCoordinates.LineNumber, absoluteErrorCoordinates.ColumnNumber,
sourceFragment);
}
result = Utils.RemoveEndingSemicolon(result);
return result;
}