diff options
author | Bert Belder <bertbelder@gmail.com> | 2020-04-27 20:09:56 +0200 |
---|---|---|
committer | Bert Belder <bertbelder@gmail.com> | 2020-04-27 21:13:32 +0200 |
commit | ee4e6a1ef9f51beaaef5e189302afe1db68ff6c1 (patch) | |
tree | d0a94be76718630b210c481e9b0f3171542b4007 /std/fs | |
parent | c190a0dbc48e7de6a63a2f633f59054d40800600 (diff) |
Rename FileInfo time fields and represent them as Date objects (#4932)
This patch also increases the resolution of reported file times to
sub-millisecond precision.
Diffstat (limited to 'std/fs')
-rw-r--r-- | std/fs/copy.ts | 36 | ||||
-rw-r--r-- | std/fs/copy_test.ts | 24 |
2 files changed, 30 insertions, 30 deletions
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); } ); |