| 
 | |
| var Promise = require('any-promise') | |
| var fs | |
| try { | |
|   fs = require('graceful-fs') | |
| } catch(err) { | |
|   fs = require('fs') | |
| } | |
| 
 | |
| var api = [ | |
|   'appendFile', | |
|   'chmod', | |
|   'chown', | |
|   'close', | |
|   'fchmod', | |
|   'fchown', | |
|   'fdatasync', | |
|   'fstat', | |
|   'fsync', | |
|   'ftruncate', | |
|   'futimes', | |
|   'lchown', | |
|   'link', | |
|   'lstat', | |
|   'mkdir', | |
|   'open', | |
|   'read', | |
|   'readFile', | |
|   'readdir', | |
|   'readlink', | |
|   'realpath', | |
|   'rename', | |
|   'rmdir', | |
|   'stat', | |
|   'symlink', | |
|   'truncate', | |
|   'unlink', | |
|   'utimes', | |
|   'write', | |
|   'writeFile' | |
| ] | |
| 
 | |
| typeof fs.access === 'function' && api.push('access') | |
| typeof fs.copyFile === 'function' && api.push('copyFile') | |
| typeof fs.mkdtemp === 'function' && api.push('mkdtemp') | |
| 
 | |
| require('thenify-all').withCallback(fs, exports, api) | |
| 
 | |
| exports.exists = function (filename, callback) { | |
|   // callback | |
|   if (typeof callback === 'function') { | |
|     return fs.stat(filename, function (err) { | |
|       callback(null, !err); | |
|     }) | |
|   } | |
|   // or promise | |
|   return new Promise(function (resolve) { | |
|     fs.stat(filename, function (err) { | |
|       resolve(!err) | |
|     }) | |
|   }) | |
| }
 |