| /*! |
| * 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; |