/// <summary> /// Constructs a instance of Handlebars translator /// </summary> /// <param name="createJsEngineInstance">Delegate that creates an instance of JS engine</param> /// <param name="handlebarsConfig">Configuration settings of Handlebars translator</param> public HandlebarsTranslator(Func <IJsEngine> createJsEngineInstance, HandlebarsSettings handlebarsConfig) { Namespace = handlebarsConfig.Namespace; RootPath = handlebarsConfig.RootPath; KnownHelpers = handlebarsConfig.KnownHelpers; KnownHelpersOnly = handlebarsConfig.KnownHelpersOnly; Data = handlebarsConfig.Data; if (string.IsNullOrWhiteSpace(Namespace)) { throw new Core.EmptyValueException(Strings.Translators_TemplateNamespaceNotSpecified); } if (createJsEngineInstance == null) { string jsEngineName = handlebarsConfig.JsEngine.Name; if (string.IsNullOrWhiteSpace(jsEngineName)) { throw new ConfigurationErrorsException( string.Format(CoreStrings.Configuration_JsEngineNotSpecified, "handlebars", @" * JavaScriptEngineSwitcher.Msie * JavaScriptEngineSwitcher.V8 * JavaScriptEngineSwitcher.ChakraCore", "MsieJsEngine") ); } createJsEngineInstance = () => JsEngineSwitcher.Current.CreateEngine(jsEngineName); } _createJsEngineInstance = createJsEngineInstance; }
/// <summary> /// Constructs a instance of Handlebars-translator /// </summary> /// <param name="createJsEngineInstance">Delegate that creates an instance of JavaScript engine</param> /// <param name="handlebarsConfig">Configuration settings of Handlebars-translator</param> public HandlebarsTranslator(Func<IJsEngine> createJsEngineInstance, HandlebarsSettings handlebarsConfig) { Namespace = handlebarsConfig.Namespace; RootPath = handlebarsConfig.RootPath; KnownHelpers = handlebarsConfig.KnownHelpers; KnownHelpersOnly = handlebarsConfig.KnownHelpersOnly; Data = handlebarsConfig.Data; if (string.IsNullOrWhiteSpace(Namespace)) { throw new Core.EmptyValueException(Strings.Translators_TemplateNamespaceNotSpecified); } if (createJsEngineInstance == null) { string jsEngineName = handlebarsConfig.JsEngine.Name; if (string.IsNullOrWhiteSpace(jsEngineName)) { throw new ConfigurationErrorsException( string.Format(CoreStrings.Configuration_JsEngineNotSpecified, "handlebars", @" * JavaScriptEngineSwitcher.Msie * JavaScriptEngineSwitcher.V8", "MsieJsEngine") ); } createJsEngineInstance = (() => JsEngineSwitcher.Current.CreateJsEngineInstance(jsEngineName)); } _createJsEngineInstance = createJsEngineInstance; }