Example #1
0
        PackageContentItem GetOrLoadContentItem(OminifyOptions options)
        {
            isLocked = true;

            var content = cache.Get(packagePath) as PackageContentItem;

            if (content == null)
            {
                lock (syncLock)
                {
                    content = CreateContent(options);

                    var cacheItemPolicy = new CacheItemPolicy();

                    if (options.AutoRefreshOnFileChanges)
                    {
                        cacheItemPolicy.ChangeMonitors.Add(new HostFileChangeMonitor(fileSystemPaths));
                    }

                    cache.Set(packagePath, content, cacheItemPolicy);
                }
            }

            return(content);
        }
Example #2
0
        public static Action <Func <Func <IDictionary <string, object>, Task>, Func <IDictionary <string, object>, Task> > > UseOminifier(
            this Action <Func <Func <IDictionary <string, object>, Task>, Func <IDictionary <string, object>, Task> > > app, Action <OminifyOptions> withOptions)
        {
            var options = new OminifyOptions();

            withOptions.Invoke(options);
            return(app.UseOminifier(options));
        }
Example #3
0
        public static void Initialize(OminifyOptions minifierOptions)
        {
            if (options != null)
                throw new InvalidOperationException("The Ominifier can only be initialized once.");

            options = minifierOptions;
            packages = options.Packages.ToDictionary(x => x.PackagePath, x => x);
        }
Example #4
0
        public static void Initialize(OminifyOptions minifierOptions)
        {
            if (options != null)
            {
                throw new InvalidOperationException("The Ominifier can only be initialized once.");
            }

            options  = minifierOptions;
            packages = options.Packages.ToDictionary(x => x.PackagePath, x => x);
        }
Example #5
0
        PackageContentItem CreateContent(OminifyOptions options)
        {
            var topLastModified = DateTime.MinValue;
            var sb = new StringBuilder();

            foreach (var fileSystemPath in fileSystemPaths)
            {
                var content = ReadFileContent(fileSystemPath, options.MinifyBundles);

                sb.AppendLine(content);

                var lastModified = ReadFileLastModifiedUtc(fileSystemPath);
                if (topLastModified < lastModified)
                {
                    topLastModified = lastModified;
                }
            }

            return(new PackageContentItem(sb.ToString(), topLastModified));
        }
Example #6
0
 public static Action <Func <Func <IDictionary <string, object>, Task>, Func <IDictionary <string, object>, Task> > > UseOminifier(
     this Action <Func <Func <IDictionary <string, object>, Task>, Func <IDictionary <string, object>, Task> > > app, OminifyOptions options)
 {
     Ominifier.Initialize(options);
     app(next => new Ominifier(next).Invoke);
     return(app);
 }
Example #7
0
 public DateTime GetLastModifiedUtc(OminifyOptions options)
 {
     var contentItem = GetOrLoadContentItem(options);
     return contentItem.LastModifiedUtc;
 }
Example #8
0
 public string GetContent(OminifyOptions options)
 {
     var contentItem = GetOrLoadContentItem(options);
     return contentItem.Content;
 }
Example #9
0
        PackageContentItem GetOrLoadContentItem(OminifyOptions options)
        {
            isLocked = true;

            var content = cache.Get(packagePath) as PackageContentItem;

            if (content == null)
            {
                lock (syncLock)
                {
                    content = CreateContent(options);

                    var cacheItemPolicy = new CacheItemPolicy();

                    if (options.AutoRefreshOnFileChanges)
                    {
                        cacheItemPolicy.ChangeMonitors.Add(new HostFileChangeMonitor(fileSystemPaths));
                    }

                    cache.Set(packagePath, content, cacheItemPolicy);
                }
            }

            return content;
        }
Example #10
0
        PackageContentItem CreateContent(OminifyOptions options)
        {
            var topLastModified = DateTime.MinValue;
            var sb = new StringBuilder();

            foreach (var fileSystemPath in fileSystemPaths)
            {
                var content = ReadFileContent(fileSystemPath, options.MinifyBundles);

                sb.AppendLine(content);

                var lastModified = ReadFileLastModifiedUtc(fileSystemPath);
                if (topLastModified < lastModified)
                {
                    topLastModified = lastModified;
                }
            }

            return new PackageContentItem(sb.ToString(), topLastModified);
        }
Example #11
0
        public DateTime GetLastModifiedUtc(OminifyOptions options)
        {
            var contentItem = GetOrLoadContentItem(options);

            return(contentItem.LastModifiedUtc);
        }
Example #12
0
        public string GetContent(OminifyOptions options)
        {
            var contentItem = GetOrLoadContentItem(options);

            return(contentItem.Content);
        }