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;
 |