You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.0 KiB
62 lines
1.0 KiB
|
|
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) |
|
}) |
|
}) |
|
}
|
|
|