@@ -116,31 +116,22 @@ function checkPathsSync(src, dest, opts) {
116116}
117117
118118function getStatsSync ( src , dest , opts ) {
119- let destStat ;
120- const statFunc = opts . dereference ?
121- ( file ) => statSync ( file , { bigint : true } ) :
122- ( file ) => lstatSync ( file , { bigint : true } ) ;
123- const srcStat = statFunc ( src ) ;
124- try {
125- destStat = statFunc ( dest ) ;
126- } catch ( err ) {
127- if ( err . code === 'ENOENT' ) return { srcStat, destStat : null } ;
128- throw err ;
129- }
119+ const statFunc = opts . dereference ? statSync : lstatSync ;
120+ const srcStat = statFunc ( src , { bigint : true , throwIfNoEntry : true } ) ;
121+ const destStat = statFunc ( dest , { bigint : true , throwIfNoEntry : false } ) ;
130122 return { srcStat, destStat } ;
131123}
132124
133125function checkParentPathsSync ( src , srcStat , dest ) {
134126 const srcParent = resolve ( dirname ( src ) ) ;
135127 const destParent = resolve ( dirname ( dest ) ) ;
136128 if ( destParent === srcParent || destParent === parse ( destParent ) . root ) return ;
137- let destStat ;
138- try {
139- destStat = statSync ( destParent , { bigint : true } ) ;
140- } catch ( err ) {
141- if ( err . code === 'ENOENT' ) return ;
142- throw err ;
129+ const destStat = statSync ( destParent , { bigint : true , throwIfNoEntry : false } ) ;
130+
131+ if ( destStat === undefined ) {
132+ return ;
143133 }
134+
144135 if ( areIdentical ( srcStat , destStat ) ) {
145136 throw new ERR_FS_CP_EINVAL ( {
146137 message : `cannot copy ${ src } to a subdirectory of self ${ dest } ` ,
0 commit comments