fs: deprecate exists() and existsSync()
These methods don't follow standard conventions, and shouldn't be used anyway. Fixes: https://github.com/iojs/io.js/issues/103 PR-URL: https://github.com/iojs/io.js/pull/166 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit is contained in:
parent
a5532674b0
commit
5678595856
@ -56,7 +56,7 @@ function measure(n) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function rmrf(location) {
|
function rmrf(location) {
|
||||||
if (fs.existsSync(location)) {
|
try {
|
||||||
var things = fs.readdirSync(location);
|
var things = fs.readdirSync(location);
|
||||||
things.forEach(function(thing) {
|
things.forEach(function(thing) {
|
||||||
var cur = path.join(location, thing),
|
var cur = path.join(location, thing),
|
||||||
@ -68,5 +68,7 @@ function rmrf(location) {
|
|||||||
fs.unlinkSync(cur);
|
fs.unlinkSync(cur);
|
||||||
});
|
});
|
||||||
fs.rmdirSync(location);
|
fs.rmdirSync(location);
|
||||||
|
} catch (err) {
|
||||||
|
// Ignore error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -656,13 +656,13 @@ that leaves you vulnerable to race conditions: another process may remove the
|
|||||||
file between the calls to `fs.exists()` and `fs.open()`. Just open the file
|
file between the calls to `fs.exists()` and `fs.open()`. Just open the file
|
||||||
and handle the error when it's not there.
|
and handle the error when it's not there.
|
||||||
|
|
||||||
`fs.exists()` will be deprecated.
|
`fs.exists()` is **deprecated**.
|
||||||
|
|
||||||
## fs.existsSync(path)
|
## fs.existsSync(path)
|
||||||
|
|
||||||
Synchronous version of `fs.exists`.
|
Synchronous version of `fs.exists`.
|
||||||
|
|
||||||
`fs.existsSync()` will be deprecated.
|
`fs.existsSync()` is **deprecated**.
|
||||||
|
|
||||||
## fs.access(path[, mode], callback)
|
## fs.access(path[, mode], callback)
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ fs.accessSync = function(path, mode) {
|
|||||||
binding.access(pathModule._makeLong(path), mode);
|
binding.access(pathModule._makeLong(path), mode);
|
||||||
};
|
};
|
||||||
|
|
||||||
fs.exists = function(path, callback) {
|
fs.exists = util.deprecate(function(path, callback) {
|
||||||
if (!nullCheck(path, cb)) return;
|
if (!nullCheck(path, cb)) return;
|
||||||
var req = new FSReqWrap();
|
var req = new FSReqWrap();
|
||||||
req.oncomplete = cb;
|
req.oncomplete = cb;
|
||||||
@ -228,9 +228,9 @@ fs.exists = function(path, callback) {
|
|||||||
function cb(err, stats) {
|
function cb(err, stats) {
|
||||||
if (callback) callback(err ? false : true);
|
if (callback) callback(err ? false : true);
|
||||||
}
|
}
|
||||||
};
|
}, 'fs.exists() is deprecated. Use fs.access() instead.');
|
||||||
|
|
||||||
fs.existsSync = function(path) {
|
fs.existsSync = util.deprecate(function(path) {
|
||||||
try {
|
try {
|
||||||
nullCheck(path);
|
nullCheck(path);
|
||||||
binding.stat(pathModule._makeLong(path));
|
binding.stat(pathModule._makeLong(path));
|
||||||
@ -238,7 +238,7 @@ fs.existsSync = function(path) {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
}, 'fs.existsSync() is deprecated. Use fs.accessSync() instead.');
|
||||||
|
|
||||||
fs.readFile = function(path, options, callback_) {
|
fs.readFile = function(path, options, callback_) {
|
||||||
var callback = maybeCallback(arguments[arguments.length - 1]);
|
var callback = maybeCallback(arguments[arguments.length - 1]);
|
||||||
|
@ -58,8 +58,11 @@ if (process.env.NODE_COMMON_PIPE) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fs.existsSync(exports.opensslCli))
|
try {
|
||||||
|
fs.accessSync(exports.opensslCli);
|
||||||
|
} catch (err) {
|
||||||
exports.opensslCli = false;
|
exports.opensslCli = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
exports.faketimeCli = false;
|
exports.faketimeCli = false;
|
||||||
@ -319,3 +322,12 @@ exports.isValidHostname = function(str) {
|
|||||||
|
|
||||||
return !!str.match(re) && str.length <= 255;
|
return !!str.match(re) && str.length <= 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exports.fileExists = function(pathname) {
|
||||||
|
try {
|
||||||
|
fs.accessSync(pathname);
|
||||||
|
return true;
|
||||||
|
} catch (err) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||||
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
var common = require('../common');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var spawn = require('child_process').spawn;
|
var spawn = require('child_process').spawn;
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
@ -26,7 +27,7 @@ var assert = require('assert');
|
|||||||
var errors = 0;
|
var errors = 0;
|
||||||
|
|
||||||
var enoentPath = 'foo123';
|
var enoentPath = 'foo123';
|
||||||
assert.equal(fs.existsSync(enoentPath), false);
|
assert.equal(common.fileExists(enoentPath), false);
|
||||||
|
|
||||||
var enoentChild = spawn(enoentPath);
|
var enoentChild = spawn(enoentPath);
|
||||||
enoentChild.on('error', function (err) {
|
enoentChild.on('error', function (err) {
|
||||||
|
@ -38,7 +38,7 @@ function unlink(pathname) {
|
|||||||
|
|
||||||
fs.mkdir(pathname, function(err) {
|
fs.mkdir(pathname, function(err) {
|
||||||
assert.equal(err, null);
|
assert.equal(err, null);
|
||||||
assert.equal(fs.existsSync(pathname), true);
|
assert.equal(common.fileExists(pathname), true);
|
||||||
ncalls++;
|
ncalls++;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ function unlink(pathname) {
|
|||||||
|
|
||||||
fs.mkdir(pathname, 511 /*=0777*/, function(err) {
|
fs.mkdir(pathname, 511 /*=0777*/, function(err) {
|
||||||
assert.equal(err, null);
|
assert.equal(err, null);
|
||||||
assert.equal(fs.existsSync(pathname), true);
|
assert.equal(common.fileExists(pathname), true);
|
||||||
ncalls++;
|
ncalls++;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ function unlink(pathname) {
|
|||||||
unlink(pathname);
|
unlink(pathname);
|
||||||
fs.mkdirSync(pathname);
|
fs.mkdirSync(pathname);
|
||||||
|
|
||||||
var exists = fs.existsSync(pathname);
|
var exists = common.fileExists(pathname);
|
||||||
unlink(pathname);
|
unlink(pathname);
|
||||||
|
|
||||||
assert.equal(exists, true);
|
assert.equal(exists, true);
|
||||||
|
@ -54,8 +54,8 @@ fs.symlink(linkData, linkPath, 'junction', function(err) {
|
|||||||
|
|
||||||
fs.unlink(linkPath, function(err) {
|
fs.unlink(linkPath, function(err) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
assert(!fs.existsSync(linkPath));
|
assert(!common.fileExists(linkPath));
|
||||||
assert(fs.existsSync(linkData));
|
assert(common.fileExists(linkData));
|
||||||
completed++;
|
completed++;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -40,14 +40,14 @@ fs.watchFile(FILENAME, {interval:TIMEOUT - 250}, function(curr, prev) {
|
|||||||
console.log([curr, prev]);
|
console.log([curr, prev]);
|
||||||
switch (++nevents) {
|
switch (++nevents) {
|
||||||
case 1:
|
case 1:
|
||||||
assert.equal(fs.existsSync(FILENAME), false);
|
assert.equal(common.fileExists(FILENAME), false);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
assert.equal(fs.existsSync(FILENAME), true);
|
assert.equal(common.fileExists(FILENAME), true);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
assert.equal(fs.existsSync(FILENAME), false);
|
assert.equal(common.fileExists(FILENAME), false);
|
||||||
fs.unwatchFile(FILENAME);
|
fs.unwatchFile(FILENAME);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -44,17 +44,17 @@ for (var i = 0; i < 50; i++) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Test existsSync
|
// Test existsSync
|
||||||
var r = fs.existsSync(dir);
|
var r = common.fileExists(dir);
|
||||||
if (r !== true) {
|
if (r !== true) {
|
||||||
cleanup();
|
cleanup();
|
||||||
throw new Error('fs.existsSync returned false');
|
throw new Error('fs.accessSync returned false');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Text exists
|
// Text exists
|
||||||
fs.exists(dir, function(r) {
|
fs.access(dir, function(err) {
|
||||||
cleanup();
|
cleanup();
|
||||||
if (r !== true) {
|
if (err) {
|
||||||
throw new Error('fs.exists reported false');
|
throw new Error('fs.access reported false');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user