66 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /*! | ||
|  |  * is-directory <https://github.com/jonschlinkert/is-directory>
 | ||
|  |  * | ||
|  |  * Copyright (c) 2014-2015, Jon Schlinkert. | ||
|  |  * Licensed under the MIT License. | ||
|  |  */ | ||
|  | 
 | ||
|  | 'use strict'; | ||
|  | 
 | ||
|  | var fs = require('fs'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * async | ||
|  |  */ | ||
|  | 
 | ||
|  | function isDirectory(filepath, cb) { | ||
|  |   if (typeof cb !== 'function') { | ||
|  |     throw new Error('expected a callback function'); | ||
|  |   } | ||
|  | 
 | ||
|  |   if (typeof filepath !== 'string') { | ||
|  |     cb(new Error('expected filepath to be a string')); | ||
|  |     return; | ||
|  |   } | ||
|  | 
 | ||
|  |   fs.stat(filepath, function(err, stats) { | ||
|  |     if (err) { | ||
|  |       if (err.code === 'ENOENT') { | ||
|  |         cb(null, false); | ||
|  |         return; | ||
|  |       } | ||
|  |       cb(err); | ||
|  |       return; | ||
|  |     } | ||
|  |     cb(null, stats.isDirectory()); | ||
|  |   }); | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * sync | ||
|  |  */ | ||
|  | 
 | ||
|  | isDirectory.sync = function isDirectorySync(filepath) { | ||
|  |   if (typeof filepath !== 'string') { | ||
|  |     throw new Error('expected filepath to be a string'); | ||
|  |   } | ||
|  | 
 | ||
|  |   try { | ||
|  |     var stat = fs.statSync(filepath); | ||
|  |     return stat.isDirectory(); | ||
|  |   } catch (err) { | ||
|  |     if (err.code === 'ENOENT') { | ||
|  |       return false; | ||
|  |     } else { | ||
|  |       throw err; | ||
|  |     } | ||
|  |   } | ||
|  |   return false; | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Expose `isDirectory` | ||
|  |  */ | ||
|  | 
 | ||
|  | module.exports = isDirectory; |