Skip to content

Commit 11412e8

Browse files
anonrigUlisesGascon
authored andcommitted
fs: do not throw error on cpSync internals
PR-URL: #50185 Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
1 parent 8414fb4 commit 11412e8

1 file changed

Lines changed: 8 additions & 17 deletions

File tree

‎lib/internal/fs/cp/cp-sync.js‎

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -116,31 +116,22 @@ function checkPathsSync(src, dest, opts) {
116116
}
117117

118118
functiongetStatsSync(src,dest,opts){
119-
letdestStat;
120-
conststatFunc=opts.dereference ?
121-
(file)=>statSync(file,{bigint: true}) :
122-
(file)=>lstatSync(file,{bigint: true});
123-
constsrcStat=statFunc(src);
124-
try{
125-
destStat=statFunc(dest);
126-
}catch(err){
127-
if(err.code==='ENOENT')return{ srcStat,destStat: null};
128-
throwerr;
129-
}
119+
conststatFunc=opts.dereference ? statSync : lstatSync;
120+
constsrcStat=statFunc(src,{bigint: true,throwIfNoEntry: true});
121+
constdestStat=statFunc(dest,{bigint: true,throwIfNoEntry: false});
130122
return{ srcStat, destStat };
131123
}
132124

133125
functioncheckParentPathsSync(src,srcStat,dest){
134126
constsrcParent=resolve(dirname(src));
135127
constdestParent=resolve(dirname(dest));
136128
if(destParent===srcParent||destParent===parse(destParent).root)return;
137-
letdestStat;
138-
try{
139-
destStat=statSync(destParent,{bigint: true});
140-
}catch(err){
141-
if(err.code==='ENOENT')return;
142-
throwerr;
129+
constdestStat=statSync(destParent,{bigint: true,throwIfNoEntry: false});
130+
131+
if(destStat===undefined){
132+
return;
143133
}
134+
144135
if(areIdentical(srcStat,destStat)){
145136
thrownewERR_FS_CP_EINVAL({
146137
message: `cannot copy ${src} to a subdirectory of self ${dest}`,

0 commit comments

Comments
 (0)