Shopify/batman — pull request #249 by hornairs (2011-11-25 03:23:46+00:00)
Title: Storage adapter refactor

- Logic which is shared between different actions on a storage adapter is put in filters.
- Filters transform a data object's attributes and then call `next()`, optionally with an error, at some point in the future.
- The bodies of the read, create, update, etc functions on the storage adapters are what is unique to the core of just that action, and nothing more.
- Filters can now be asynchronous.
- Arbitrary objects can be passed around from filter to filter instead of relying on the variable arguments used in the old system.
- Errors are now formalized so they can be `instanceof`'d