/// <summary>
        /// Constructs a instance of Dean Edwards' JS-minifier
        /// </summary>
        /// <param name="createJsEngineInstance">Delegate that creates an instance of JavaScript engine</param>
        /// <param name="packerConfig">Configuration settings of Dean Edwards' Minifier</param>
        public EdwardsJsMinifier(Func<IJsEngine> createJsEngineInstance, PackerSettings packerConfig)
        {
            JsMinifierSettings jsMinifierConfig = packerConfig.JsMinifier;
            ShrinkVariables = jsMinifierConfig.ShrinkVariables;
            Base62Encode = jsMinifierConfig.Base62Encode;

            if (createJsEngineInstance == null)
            {
                string jsEngineName = packerConfig.JsEngine.Name;
                if (string.IsNullOrWhiteSpace(jsEngineName))
                {
                    throw new ConfigurationErrorsException(
                        string.Format(CoreStrings.Configuration_JsEngineNotSpecified,
                            "packer",
                            @"
              * JavaScriptEngineSwitcher.Msie
              * JavaScriptEngineSwitcher.V8",
                            "MsieJsEngine")
                    );
                }

                createJsEngineInstance = (() =>
                    JsEngineSwitcher.Current.CreateJsEngineInstance(jsEngineName));
            }
            _createJsEngineInstance = createJsEngineInstance;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Constructs a instance of Dean Edwards' JS minifier
        /// </summary>
        /// <param name="createJsEngineInstance">Delegate that creates an instance of JS engine</param>
        /// <param name="packerConfig">Configuration settings of Dean Edwards' Minifier</param>
        public EdwardsJsMinifier(Func <IJsEngine> createJsEngineInstance, PackerSettings packerConfig)
        {
            JsMinifierSettings jsMinifierConfig = packerConfig.JsMinifier;

            ShrinkVariables = jsMinifierConfig.ShrinkVariables;
            Base62Encode    = jsMinifierConfig.Base62Encode;

            if (createJsEngineInstance == null)
            {
                string jsEngineName = packerConfig.JsEngine.Name;
                if (string.IsNullOrWhiteSpace(jsEngineName))
                {
                    throw new ConfigurationErrorsException(
                              string.Format(CoreStrings.Configuration_JsEngineNotSpecified,
                                            "packer",
                                            @"
  * JavaScriptEngineSwitcher.Msie
  * JavaScriptEngineSwitcher.V8
  * JavaScriptEngineSwitcher.ChakraCore",
                                            "MsieJsEngine")
                              );
                }

                createJsEngineInstance = () => JsEngineSwitcher.Current.CreateEngine(jsEngineName);
            }
            _createJsEngineInstance = createJsEngineInstance;
        }