fs: replace duplicate conditions by function
PR-URL: https://github.com/nodejs/node/pull/18717 Reviewed-By: Weijia Wang <starkwang@126.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
parent
5a55a71150
commit
523d44a66e
24
lib/fs.js
24
lib/fs.js
@ -145,6 +145,12 @@ function isFd(path) {
|
|||||||
|
|
||||||
fs.Stats = Stats;
|
fs.Stats = Stats;
|
||||||
|
|
||||||
|
function isFileType(fileType) {
|
||||||
|
// Use stats array directly to avoid creating an fs.Stats instance just for
|
||||||
|
// our internal use.
|
||||||
|
return (statValues[1/*mode*/] & S_IFMT) === fileType;
|
||||||
|
}
|
||||||
|
|
||||||
// Don't allow mode to accidentally be overwritten.
|
// Don't allow mode to accidentally be overwritten.
|
||||||
Object.defineProperties(fs, {
|
Object.defineProperties(fs, {
|
||||||
F_OK: { enumerable: true, value: constants.F_OK || 0 },
|
F_OK: { enumerable: true, value: constants.F_OK || 0 },
|
||||||
@ -317,10 +323,8 @@ function readFileAfterStat(err) {
|
|||||||
if (err)
|
if (err)
|
||||||
return context.close(err);
|
return context.close(err);
|
||||||
|
|
||||||
// Use stats array directly to avoid creating an fs.Stats instance just for
|
|
||||||
// our internal use.
|
|
||||||
var size;
|
var size;
|
||||||
if ((statValues[1/*mode*/] & S_IFMT) === S_IFREG)
|
if (isFileType(S_IFREG))
|
||||||
size = context.size = statValues[8];
|
size = context.size = statValues[8];
|
||||||
else
|
else
|
||||||
size = context.size = 0;
|
size = context.size = 0;
|
||||||
@ -432,10 +436,8 @@ fs.readFileSync = function(path, options) {
|
|||||||
var fd = isUserFd ? path : fs.openSync(path, options.flag || 'r', 0o666);
|
var fd = isUserFd ? path : fs.openSync(path, options.flag || 'r', 0o666);
|
||||||
|
|
||||||
tryStatSync(fd, isUserFd);
|
tryStatSync(fd, isUserFd);
|
||||||
// Use stats array directly to avoid creating an fs.Stats instance just for
|
|
||||||
// our internal use.
|
|
||||||
var size;
|
var size;
|
||||||
if ((statValues[1/*mode*/] & S_IFMT) === S_IFREG)
|
if (isFileType(S_IFREG))
|
||||||
size = statValues[8];
|
size = statValues[8];
|
||||||
else
|
else
|
||||||
size = 0;
|
size = 0;
|
||||||
@ -1604,8 +1606,7 @@ fs.realpathSync = function realpathSync(p, options) {
|
|||||||
|
|
||||||
// continue if not a symlink, break if a pipe/socket
|
// continue if not a symlink, break if a pipe/socket
|
||||||
if (knownHard[base] || (cache && cache.get(base) === base)) {
|
if (knownHard[base] || (cache && cache.get(base) === base)) {
|
||||||
if ((statValues[1/*mode*/] & S_IFMT) === S_IFIFO ||
|
if (isFileType(S_IFIFO) || isFileType(S_IFSOCK)) {
|
||||||
(statValues[1/*mode*/] & S_IFMT) === S_IFSOCK) {
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
@ -1624,7 +1625,7 @@ fs.realpathSync = function realpathSync(p, options) {
|
|||||||
binding.lstat(baseLong, undefined, ctx);
|
binding.lstat(baseLong, undefined, ctx);
|
||||||
handleErrorFromBinding(ctx);
|
handleErrorFromBinding(ctx);
|
||||||
|
|
||||||
if ((statValues[1/*mode*/] & S_IFMT) !== S_IFLNK) {
|
if (!isFileType(S_IFLNK)) {
|
||||||
knownHard[base] = true;
|
knownHard[base] = true;
|
||||||
if (cache) cache.set(base, base);
|
if (cache) cache.set(base, base);
|
||||||
continue;
|
continue;
|
||||||
@ -1750,8 +1751,7 @@ fs.realpath = function realpath(p, options, callback) {
|
|||||||
|
|
||||||
// continue if not a symlink, break if a pipe/socket
|
// continue if not a symlink, break if a pipe/socket
|
||||||
if (knownHard[base]) {
|
if (knownHard[base]) {
|
||||||
if ((statValues[1/*mode*/] & S_IFMT) === S_IFIFO ||
|
if (isFileType(S_IFIFO) || isFileType(S_IFSOCK)) {
|
||||||
(statValues[1/*mode*/] & S_IFMT) === S_IFSOCK) {
|
|
||||||
return callback(null, encodeRealpathResult(p, options));
|
return callback(null, encodeRealpathResult(p, options));
|
||||||
}
|
}
|
||||||
return process.nextTick(LOOP);
|
return process.nextTick(LOOP);
|
||||||
@ -1767,7 +1767,7 @@ fs.realpath = function realpath(p, options, callback) {
|
|||||||
// our internal use.
|
// our internal use.
|
||||||
|
|
||||||
// if not a symlink, skip to the next path part
|
// if not a symlink, skip to the next path part
|
||||||
if ((statValues[1/*mode*/] & S_IFMT) !== S_IFLNK) {
|
if (!isFileType(S_IFLNK)) {
|
||||||
knownHard[base] = true;
|
knownHard[base] = true;
|
||||||
return process.nextTick(LOOP);
|
return process.nextTick(LOOP);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user