| 'use strict'; |
| const path = require('path'); |
| const commonDir = require('commondir'); |
| const pkgDir = require('pkg-dir'); |
| const makeDir = require('make-dir'); |
| |
| module.exports = (options = {}) => { |
| const {name} = options; |
| let directory = options.cwd; |
| |
| if (options.files) { |
| directory = commonDir(directory, options.files); |
| } else { |
| directory = directory || process.cwd(); |
| } |
| |
| directory = pkgDir.sync(directory); |
| |
| if (directory) { |
| directory = path.join(directory, 'node_modules', '.cache', name); |
| |
| if (directory && options.create) { |
| makeDir.sync(directory); |
| } |
| |
| if (options.thunk) { |
| return (...arguments_) => path.join(directory, ...arguments_); |
| } |
| } |
| |
| return directory; |
| }; |