diff options
Diffstat (limited to 'node_modules/is-directory/index.js')
-rw-r--r-- | node_modules/is-directory/index.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/node_modules/is-directory/index.js b/node_modules/is-directory/index.js new file mode 100644 index 0000000..9288d0f --- /dev/null +++ b/node_modules/is-directory/index.js @@ -0,0 +1,65 @@ +/*! + * 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; |