index.js
function Cache (cache, options) {
  if (arguments.length === 1) {
    if (cache.hasOwnProperty('normalizeKey') || cache.hasOwnProperty('transform')) {
      options = cache;
      cache = {};
    }
  }
  options = options || {};
  this.cache = cache || {};
  this.normalizeKey = options.normalizeKey || function (key) { return key; };
  this.transform = options.transform || function (value) { return value; };
}
function Cache (cache, options) {
  if (arguments.length === 1) {
    if (cache.hasOwnProperty('normalizeKey') || cache.hasOwnProperty('transform')) {
      options = cache;
      cache = {};
    }
  }
  options = options || {};
  this.cache = cache || {};
  this.normalizeKey = options.normalizeKey || function (key) { return key; };
  this.transform = options.transform || function (value) { return value; };
}
function Cache ( cache , options ) { if ( arguments . length === 1 ) { if ( cache . hasOwnProperty ( 'normalizeKey' ) || cache . hasOwnProperty ( 'transform' ) ) { options = cache ; cache = { } ; } } options = options || { } ; this . cache = cache || { } ; this . normalizeKey = options . normalizeKey || function ( key ) { return key ; } ; this . transform = options . transform || function ( value ) { return value ; } ; }
Create a cache that transforms values when setting.

```js
function makeKey = function (key) { return key.toUpperCase(); };
function transform = function (value) { return value.toUpperCase(); };

var cache = new Cache(makeKey, tranform);
```

@param {Object} `cache` Object to store the cache on.
@param {Object} `options`
@option {Function} `normalizeKey` normalize the `key` when getting and setting
@option {Function} `transform` transform the `value` when setting
@api public
Create a cache that transforms values when setting .