/// <summary> /// Translates a code of assets written on Handlebars to JS code /// </summary> /// <param name="assets">Set of assets with code written on Handlebars</param> /// <returns>Set of assets with translated code</returns> public IList <IAsset> Translate(IList <IAsset> assets) { if (assets == null) { throw new ArgumentNullException( nameof(assets), string.Format(CoreStrings.Common_ArgumentIsNull, nameof(assets)) ); } if (assets.Count == 0) { return(assets); } var assetsToProcessing = assets.Where(a => a.AssetTypeCode == Constants.AssetTypeCode.Handlebars).ToList(); if (assetsToProcessing.Count == 0) { return(assets); } CompilationOptions options = CreateCompilationOptions(); using (var handlebarsCompiler = new HandlebarsCompiler(_createJsEngineInstance, options)) { foreach (var asset in assetsToProcessing) { InnerTranslate(asset, handlebarsCompiler); } } return(assets); }
public void TestCompiler() { //lazy test var hc = new HandlebarsCompiler(); var template = hc.Precompile("asdf {{asdf}}", false); Assert.IsNotNull(template); Assert.IsTrue(template.IndexOf("asdf") > 0); }
public HandlebarsEnvironment(HandlebarsConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } _compiler = new HandlebarsCompiler(configuration); Configuration = configuration; RegisterBuiltinHelpers(); }
/// <summary> /// Translates a code of asset written on Handlebars to JS code /// </summary> /// <param name="asset">Asset with code written on Handlebars</param> /// <returns>Asset with translated code</returns> public IAsset Translate(IAsset asset) { if (asset == null) { throw new ArgumentException(CoreStrings.Common_ValueIsEmpty, "asset"); } CompilationOptions options = CreateCompilationOptions(); using (var handlebarsCompiler = new HandlebarsCompiler(_createJsEngineInstance, options)) { InnerTranslate(asset, handlebarsCompiler); } return(asset); }
/// <summary> /// Translates a code of asset written on Handlebars to JS code /// </summary> /// <param name="asset">Asset with code written on Handlebars</param> /// <returns>Asset with translated code</returns> public IAsset Translate(IAsset asset) { if (asset == null) { throw new ArgumentNullException( nameof(asset), string.Format(CoreStrings.Common_ArgumentIsNull, nameof(asset)) ); } CompilationOptions options = CreateCompilationOptions(); using (var handlebarsCompiler = new HandlebarsCompiler(_createJsEngineInstance, options)) { InnerTranslate(asset, handlebarsCompiler); } return(asset); }
private void InnerTranslate(IAsset asset, HandlebarsCompiler handlebarsCompiler) { string newContent; string assetUrl = asset.Url; try { newContent = handlebarsCompiler.Compile(asset.Content, assetUrl); } catch (HandlebarsCompilationException e) { throw new AssetTranslationException( string.Format(CoreStrings.Translators_TranslationSyntaxError, INPUT_CODE_TYPE, OUTPUT_CODE_TYPE, assetUrl, e.Message)); } catch (Exception e) { throw new AssetTranslationException( string.Format(CoreStrings.Translators_TranslationFailed, INPUT_CODE_TYPE, OUTPUT_CODE_TYPE, assetUrl, e.Message)); } asset.Content = newContent; }
private void InnerTranslate(IAsset asset, HandlebarsCompiler handlebarsCompiler) { string newContent; string assetVirtualPath = asset.VirtualPath; try { newContent = handlebarsCompiler.Compile(asset.Content, assetVirtualPath); } catch (HandlebarsCompilingException e) { throw new AssetTranslationException( string.Format(CoreStrings.Translators_TranslationSyntaxError, INPUT_CODE_TYPE, OUTPUT_CODE_TYPE, assetVirtualPath, e.Message)); } catch (Exception e) { throw new AssetTranslationException( string.Format(CoreStrings.Translators_TranslationFailed, INPUT_CODE_TYPE, OUTPUT_CODE_TYPE, assetVirtualPath, e.Message)); } asset.Content = newContent; }
/// <summary> /// Translates a code of assets written on Handlebars to JS-code /// </summary> /// <param name="assets">Set of assets with code written on Handlebars</param> /// <returns>Set of assets with translated code</returns> public IList<IAsset> Translate(IList<IAsset> assets) { if (assets == null) { throw new ArgumentException(CoreStrings.Common_ValueIsEmpty, "assets"); } if (assets.Count == 0) { return assets; } var assetsToProcessing = assets.Where(a => a.AssetTypeCode == Constants.AssetTypeCode.Handlebars).ToList(); if (assetsToProcessing.Count == 0) { return assets; } CompilationOptions options = CreateCompilationOptions(); using (var handlebarsCompiler = new HandlebarsCompiler(_createJsEngineInstance, options)) { foreach (var asset in assetsToProcessing) { InnerTranslate(asset, handlebarsCompiler); } } return assets; }
/// <summary> /// Translates a code of asset written on Handlebars to JS-code /// </summary> /// <param name="asset">Asset with code written on Handlebars</param> /// <returns>Asset with translated code</returns> public IAsset Translate(IAsset asset) { if (asset == null) { throw new ArgumentException(CoreStrings.Common_ValueIsEmpty, "asset"); } CompilationOptions options = CreateCompilationOptions(); using (var handlebarsCompiler = new HandlebarsCompiler(_createJsEngineInstance, options)) { InnerTranslate(asset, handlebarsCompiler); } return asset; }