summaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
Diffstat (limited to 'std')
-rw-r--r--std/archive/tar.ts7
-rw-r--r--std/fs/copy.ts36
-rw-r--r--std/fs/copy_test.ts24
-rw-r--r--std/node/_fs/_fs_dirent_test.ts6
4 files changed, 36 insertions, 37 deletions
diff --git a/std/archive/tar.ts b/std/archive/tar.ts
index 699b982a9..28c4bbd9a 100644
--- a/std/archive/tar.ts
+++ b/std/archive/tar.ts
@@ -317,10 +317,9 @@ export class Tar {
const mode =
opts.fileMode || (info && info.mode) || parseInt("777", 8) & 0xfff,
- mtime =
- opts.mtime ||
- (info && info.modified) ||
- Math.floor(new Date().getTime() / 1000),
+ mtime = Math.floor(
+ opts.mtime ?? (info?.mtime ?? new Date()).valueOf() / 1000
+ ),
uid = opts.uid || 0,
gid = opts.gid || 0;
if (typeof opts.owner === "string" && opts.owner.length >= 32) {
diff --git a/std/fs/copy.ts b/std/fs/copy.ts
index 05ce4b12c..27b3c2a3c 100644
--- a/std/fs/copy.ts
+++ b/std/fs/copy.ts
@@ -85,9 +85,9 @@ async function copyFile(
await Deno.copyFile(src, dest);
if (options.preserveTimestamps) {
const statInfo = await Deno.stat(src);
- assert(statInfo.accessed != null, `statInfo.accessed is unavailable`);
- assert(statInfo.modified != null, `statInfo.modified is unavailable`);
- await Deno.utime(dest, statInfo.accessed, statInfo.modified);
+ assert(statInfo.atime instanceof Date, `statInfo.atime is unavailable`);
+ assert(statInfo.mtime instanceof Date, `statInfo.mtime is unavailable`);
+ await Deno.utime(dest, statInfo.atime, statInfo.mtime);
}
}
/* copy file to dest synchronously */
@@ -96,9 +96,9 @@ function copyFileSync(src: string, dest: string, options: CopyOptions): void {
Deno.copyFileSync(src, dest);
if (options.preserveTimestamps) {
const statInfo = Deno.statSync(src);
- assert(statInfo.accessed != null, `statInfo.accessed is unavailable`);
- assert(statInfo.modified != null, `statInfo.modified is unavailable`);
- Deno.utimeSync(dest, statInfo.accessed, statInfo.modified);
+ assert(statInfo.atime instanceof Date, `statInfo.atime is unavailable`);
+ assert(statInfo.mtime instanceof Date, `statInfo.mtime is unavailable`);
+ Deno.utimeSync(dest, statInfo.atime, statInfo.mtime);
}
}
@@ -114,9 +114,9 @@ async function copySymLink(
await Deno.symlink(originSrcFilePath, dest, type);
if (options.preserveTimestamps) {
const statInfo = await Deno.lstat(src);
- assert(statInfo.accessed != null, `statInfo.accessed is unavailable`);
- assert(statInfo.modified != null, `statInfo.modified is unavailable`);
- await Deno.utime(dest, statInfo.accessed, statInfo.modified);
+ assert(statInfo.atime instanceof Date, `statInfo.atime is unavailable`);
+ assert(statInfo.mtime instanceof Date, `statInfo.mtime is unavailable`);
+ await Deno.utime(dest, statInfo.atime, statInfo.mtime);
}
}
@@ -132,9 +132,9 @@ function copySymlinkSync(
Deno.symlinkSync(originSrcFilePath, dest, type);
if (options.preserveTimestamps) {
const statInfo = Deno.lstatSync(src);
- assert(statInfo.accessed != null, `statInfo.accessed is unavailable`);
- assert(statInfo.modified != null, `statInfo.modified is unavailable`);
- Deno.utimeSync(dest, statInfo.accessed, statInfo.modified);
+ assert(statInfo.atime instanceof Date, `statInfo.atime is unavailable`);
+ assert(statInfo.mtime instanceof Date, `statInfo.mtime is unavailable`);
+ Deno.utimeSync(dest, statInfo.atime, statInfo.mtime);
}
}
@@ -152,9 +152,9 @@ async function copyDir(
if (options.preserveTimestamps) {
const srcStatInfo = await Deno.stat(src);
- assert(srcStatInfo.accessed != null, `statInfo.accessed is unavailable`);
- assert(srcStatInfo.modified != null, `statInfo.modified is unavailable`);
- await Deno.utime(dest, srcStatInfo.accessed, srcStatInfo.modified);
+ assert(srcStatInfo.atime instanceof Date, `statInfo.atime is unavailable`);
+ assert(srcStatInfo.mtime instanceof Date, `statInfo.mtime is unavailable`);
+ await Deno.utime(dest, srcStatInfo.atime, srcStatInfo.mtime);
}
for await (const file of Deno.readdir(src)) {
@@ -180,9 +180,9 @@ function copyDirSync(src: string, dest: string, options: CopyOptions): void {
if (options.preserveTimestamps) {
const srcStatInfo = Deno.statSync(src);
- assert(srcStatInfo.accessed != null, `statInfo.accessed is unavailable`);
- assert(srcStatInfo.modified != null, `statInfo.modified is unavailable`);
- Deno.utimeSync(dest, srcStatInfo.accessed, srcStatInfo.modified);
+ assert(srcStatInfo.atime instanceof Date, `statInfo.atime is unavailable`);
+ assert(srcStatInfo.mtime instanceof Date, `statInfo.mtime is unavailable`);
+ Deno.utimeSync(dest, srcStatInfo.atime, srcStatInfo.mtime);
}
for (const file of Deno.readdirSync(src)) {
diff --git a/std/fs/copy_test.ts b/std/fs/copy_test.ts
index 65e36a5fc..5323ac9e4 100644
--- a/std/fs/copy_test.ts
+++ b/std/fs/copy_test.ts
@@ -143,8 +143,8 @@ testCopy(
const srcStatInfo = await Deno.stat(srcFile);
- assert(typeof srcStatInfo.accessed === "number");
- assert(typeof srcStatInfo.modified === "number");
+ assert(srcStatInfo.atime instanceof Date);
+ assert(srcStatInfo.mtime instanceof Date);
// Copy with overwrite and preserve timestamps options.
await copy(srcFile, destFile, {
@@ -154,10 +154,10 @@ testCopy(
const destStatInfo = await Deno.stat(destFile);
- assert(typeof destStatInfo.accessed === "number");
- assert(typeof destStatInfo.modified === "number");
- assertEquals(destStatInfo.accessed, srcStatInfo.accessed);
- assertEquals(destStatInfo.modified, srcStatInfo.modified);
+ assert(destStatInfo.atime instanceof Date);
+ assert(destStatInfo.mtime instanceof Date);
+ assertEquals(destStatInfo.atime, srcStatInfo.atime);
+ assertEquals(destStatInfo.mtime, srcStatInfo.mtime);
}
);
@@ -327,8 +327,8 @@ testCopySync(
const srcStatInfo = Deno.statSync(srcFile);
- assert(typeof srcStatInfo.accessed === "number");
- assert(typeof srcStatInfo.modified === "number");
+ assert(srcStatInfo.atime instanceof Date);
+ assert(srcStatInfo.mtime instanceof Date);
// Copy with overwrite and preserve timestamps options.
copySync(srcFile, destFile, {
@@ -338,12 +338,12 @@ testCopySync(
const destStatInfo = Deno.statSync(destFile);
- assert(typeof destStatInfo.accessed === "number");
- assert(typeof destStatInfo.modified === "number");
+ assert(destStatInfo.atime instanceof Date);
+ assert(destStatInfo.mtime instanceof Date);
// TODO: Activate test when https://github.com/denoland/deno/issues/2411
// is fixed
- // assertEquals(destStatInfo.accessed, srcStatInfo.accessed);
- // assertEquals(destStatInfo.modified, srcStatInfo.modified);
+ // assertEquals(destStatInfo.atime, srcStatInfo.atime);
+ // assertEquals(destStatInfo.mtime, srcStatInfo.mtime);
}
);
diff --git a/std/node/_fs/_fs_dirent_test.ts b/std/node/_fs/_fs_dirent_test.ts
index 548fa6b8a..5288cb3db 100644
--- a/std/node/_fs/_fs_dirent_test.ts
+++ b/std/node/_fs/_fs_dirent_test.ts
@@ -7,9 +7,9 @@ class DirEntryMock implements Deno.DirEntry {
isDirectory = false;
isSymlink = false;
size = -1;
- modified = -1;
- accessed = -1;
- created = -1;
+ mtime = new Date(-1);
+ atime = new Date(-1);
+ birthtime = new Date(-1);
name = "";
dev = -1;
ino = -1;