Spaces:
Running
Running
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) | |
}) | |
}) | |
} | |