$ show wondrify/asset-pipeline
This is a multi-module JVM asset pipeline library for managing, processing, and serving static web assets (JavaScript, CSS, images, etc.) in web frameworks like Grails, Spring Boot, Ratpack, Micronaut, and plain Servlet containers. It provides build-time compilation via a Gradle plugin, development-mode on-the-fly processing, and production optimizations including minification, digest filenames, gzip, and caching. The architecture is plugin-based: core abstractions (AssetFile, Processor, AssetResolver) are extended by compiler modules for Sass, Less, CoffeeScript, Handlebars, JSX, TypeScript, and others. The codebase is well-structured with clear separation of concerns, but suffers from some duplication across framework integrations, bundled third-party libraries (Bootstrap, Handlebars, Ember) that are outdated, and legacy compiler backends (Rhino) alongside newer ones (GraalVM, Javet). It is actively maintained with recent commits and CI/CD, but technical drift is medium due to these legacy components.
The LLM identified 4 files worth highlighting for reuse:
Implements a cache with MD5-based keys, dependency tracking for invalidation, and optional serialization to disk. Demonstrates a robust caching pattern that can be extracted for any build-time or runtime caching need.
Processes //= require and //= require_tree directives to build a dependency graph of assets. This pattern is reusable for any system that needs to resolve file dependencies from inline directives.
Provides a clean abstraction for resolving assets from a directory tree, with support for relative paths and file filtering. Could be extracted as a standalone file resolver library.
Handles HTTP caching headers (ETag, Last-Modified, If-None-Match) and returns 304 responses. Reusable for any HTTP asset serving component.