8000
We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 541bdf1 commit 3e7226aCopy full SHA for 3e7226a
lib/internal/fs/cp/cp-sync.js
@@ -116,31 +116,22 @@ function checkPathsSync(src, dest, opts) {
116
}
117
118
function 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
- }
+ const statFunc = opts.dereference ? statSync : lstatSync;
+ const srcStat = statFunc(src, { bigint: true, throwIfNoEntry: true });
+ const destStat = statFunc(dest, { bigint: true, throwIfNoEntry: false });
130
return { srcStat, destStat };
131
132
133
function checkParentPathsSync(src, srcStat, dest) {
134
const srcParent = resolve(dirname(src));
135
const destParent = resolve(dirname(dest));
136
if (destParent === srcParent || destParent === parse(destParent).root) return;
137
138
139
- destStat = statSync(destParent, { bigint: true });
140
141
- if (err.code === 'ENOENT') return;
142
+ const destStat = statSync(destParent, { bigint: true, throwIfNoEntry: false });
+
+ if (destStat === undefined) {
+ return;
143
144
if (areIdentical(srcStat, destStat)) {
145
throw new ERR_FS_CP_EINVAL({
146
message: `cannot copy ${src} to a subdirectory of self ${dest}`,