You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					33 lines
				
				693 B
			
		
		
			
		
	
	
					33 lines
				
				693 B
			| 
											3 years ago
										 | '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; | ||
|  | }; |