| 'use strict'; | 
| var path = require('path'); | 
| var commonDir = require('commondir'); | 
| var pkgDir = require('pkg-dir'); | 
| var mkdirp = require('mkdirp'); | 
|   | 
| module.exports = function (options) { | 
|     var name = options.name; | 
|     var dir = options.cwd; | 
|     if (options.files) { | 
|         dir = commonDir(dir, options.files); | 
|     } else { | 
|         dir = dir || process.cwd(); | 
|     } | 
|   | 
|     dir = pkgDir.sync(dir); | 
|   | 
|     if (dir) { | 
|         dir = path.join(dir, 'node_modules', '.cache', name); | 
|   | 
|         if (dir && options.create) { | 
|             mkdirp.sync(dir); | 
|         } | 
|   | 
|         if (options.thunk) { | 
|             return function () { | 
|                 return path.join.apply(path, [dir].concat(Array.prototype.slice.call(arguments))); | 
|             }; | 
|         } | 
|     } | 
|   | 
|     return dir; | 
| }; |