combohandler
Version:
Simple Yahoo!-style combo handler.
209 lines (127 loc) • 6.13 kB
Markdown
Combo Handler History
=====================
0.4.0 (2014-08-04)
------------------
* Fixed non-whitespace captures to avoid errors when rewriting minified CSS
imports. (#80)
* Added support for Express 4.7.3+ (thanks @natecavanaugh).
* Updated dependency versions for mkdirp, nopt, and URIjs.
0.3.8 (2013-10-22)
------------------
* Fixed errant nopt config, acknowledging `--no-resolve-symlinks` when passed.
0.3.7 (2013-10-22)
------------------
* Fixed a few `dynamicPath` middleware edge cases with multiple and duplicate
route parameters.
* Added --no-resolve-symlinks option that uses fs.statSync to validate rootPath
instead of fs.realpathSync. Caveat emptor.
* Updated jshint devDependency to 2.3.0.
* Updated should devDependency to 2.0.2.
0.3.6 (2013-10-18)
------------------
* The `dynamicPath` middleware now understands multiple parameters in a route.
* Increased test coverage substantially.
* All dependency versions are now explicit.
* Updated express dependency to 3.4.0.
* Updated should devDependency to 2.0.1.
0.3.5 (2013-10-08)
------------------
* Added `errorHandler` middleware to main export, encapsulating a convenient
way to cache error responses for a different duration than normal responses.
* Ensured that Unicode BOM in the response is removed, if found.
[elementstorm]
* Fixed tests in `node` v0.11.x, adding jshint and sinon to `devDependencies`.
* Updated express dependency to 3.3.x. [Eric Ferraiuolo]
0.3.4 (2013-04-29)
------------------
* Encapsulated option-based instance CLI behaviour with args.invoke().
* Exposed CLI option config on the exported object to allow ad-hoc
customization for those that `require('combohandler/lib/args')`.
0.3.3 (2013-04-26)
------------------
* Fixed a naive regular expression that was preventing url() rewriting when
background property shorthand syntax was used.
0.3.2 (2013-04-26)
------------------
* Added --webRoot option to support CSS url() rewriting across multiple
dynamic paths. This option will supplant --basePath if both are present.
* Changed dynamicPath resolution to use fs.stat() instead of fs.realpath(),
allowing symlinks under a well-known rootPath to build an "absolutely
relative" pathname instead of always resolving to the rootPath.
* Reorganized tests to cut down on repetitive string concatenation and
clarify intention. Also added a bunch of complex symlink tests.
0.3.1 (2013-04-24)
------------------
* Fixed cluster worker configuration via events rather than `setupMaster`
args. Custom `server` config now works, and receives all properties from
the parsed CLI arguments.
* Changed all pidfile IO to be synchronous. It's not frequent enough to justify
the indeterminate nature of asynchronicity (which wasn't even used, anyway).
* Added more tests, increasing code coverage slightly.
0.3.0 (2013-04-22)
------------------
* Removed `app.js` and `config.sample.js`. They served us well.
* Changed Travis script to also run code coverage, which is also now checked
against reasonable threshholds.
* Changed default `lib/server` to consume all available config for each route
in addition to the `rootPath`.
* Added CLI executable `combohandler` to replace the old `app.js`, among many,
many other things.
* Added new multi-process implementation built on top of `node` v0.8.x+ core
`cluster` module.
* Added oodles and oodles of tests.
* Added `mkdirp`, `nopt`, and `rimraf` dependencies.
* Updated `request` and `should` dependency versions.
* Updated package.json config with defaults for `port` and `server` options.
0.2.2 (2013-04-21)
------------------
* Changed default `combine` middleware to return an array of middleware instead
of a function, allowing addition of bundled middlware depending on configured
values. (Express flattens any arrays passed as route callbacks)
* Changed default error handler to pass the error to `next()` when it isn't a
`BadRequest`, which was itself extracted to a separate file.
* Changed CSS `url()` rewriter to use built-in `path` methods instead of custom
algorithm, with expanded test coverage.
* Added `bodyContents` and `relativePaths` arrays to `res.locals` object in the
default `combine` middleware, allowing subsequent middleware access to those
values.
* Added `cssUrls` middleware, an extraction of the CSS `url()` rewriter, with
the optional capability of rewriting `@import` statements as well.
* Added `dynamicPath` middleware, supporting route params (e.g., `:version`)
that point to different trees under the same filesystem root.
* Added `respond` middleware for convenience. It simply responds 200 with the
contents of the `res.body` property.
* Added code coverage with `istanbul`.
* Added Travis support.
* Added [Daniel Stockman](https://github.com/evocateur) as a maintainer.
* Updated mocha dependency to 1.9.0.
* Updated express dependency to 3.2.x. [Eric Ferraiuolo]
0.2.1 (2013-04-01)
------------------
* Added a `basePath` config option that can be used to specify a
non-combohandled base path. Relative URLs in combohandled CSS files will
be automatically rewritten to be relative to this base path rather than the
combo URL. [Ryan Cannon]
0.2.0 (2012-11-03)
------------------
* Supports Express 3.0.
* Removed support for Cluster, since it's dead.
* Added support for symlinks that point to files outside the root path.
* Added support for setting `Cache-Control` and `Expires` headers via the
`maxAge` config property. [Daniel Stockman]
* Errors now provide more descriptive messages. [Daniel Stockman]
* Deny requests with non-whitelisted or differing MIME types. [Daniel Stockman]
* Return a quick error on requests that are obviously truncated or otherwise
mangled. [Daniel Stockman]
0.1.3 (2011-10-31)
------------------
* Use Cluster instead of Spark2.
0.1.2 (2011-07-11)
------------------
* Chasing the latest Express and Connect versions again.
0.1.1 (2011-04-12)
------------------
* Now works with latest Express (2.x) and Connect (1.x).
0.1.0 (2011-02-05)
------------------
* Initial release.