Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(fs): remove Deno.futime[Sync]() #25252

Merged
merged 5 commits into from
Aug 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion cli/tools/test/fmt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,6 @@ pub const OP_DETAILS: phf::Map<&'static str, [&'static str; 2]> = phf_map! {
"op_fs_ftruncate_async" => ["truncate a file", "awaiting the result of a `Deno.ftruncate` or `Deno.FsFile.truncate` call"],
"op_fs_funlock_async_unstable" => ["unlock a file", "awaiting the result of a `Deno.funlock` call"],
"op_fs_funlock_async" => ["unlock a file", "awaiting the result of a `Deno.FsFile.unlock` call"],
"op_fs_futime_async" => ["change file timestamps", "awaiting the result of a `Deno.futime` or `Deno.FsFile.utime` call"],
"op_fs_link_async" => ["create a hard link", "awaiting the result of a `Deno.link` call"],
"op_fs_lstat_async" => ["get file metadata", "awaiting the result of a `Deno.lstat` call"],
"op_fs_make_temp_dir_async" => ["create a temporary directory", "awaiting the result of a `Deno.makeTempDir` call"],
Expand Down
44 changes: 0 additions & 44 deletions cli/tsc/dts/lib.deno.ns.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5506,50 +5506,6 @@ declare namespace Deno {
*/
export function ftruncateSync(rid: number, len?: number): void;

/**
* Synchronously changes the access (`atime`) and modification (`mtime`) times
* of a file stream resource referenced by `rid`. Given times are either in
* seconds (UNIX epoch time) or as `Date` objects.
*
* ```ts
* const file = Deno.openSync("file.txt", { create: true, write: true });
* Deno.futimeSync(file.rid, 1556495550, new Date());
* ```
*
* @deprecated This will be removed in Deno 2.0. See the
* {@link https://docs.deno.com/runtime/manual/advanced/migrate_deprecations | Deno 1.x to 2.x Migration Guide}
* for migration instructions.
*
* @category File System
*/
export function futimeSync(
rid: number,
atime: number | Date,
mtime: number | Date,
): void;

/**
* Changes the access (`atime`) and modification (`mtime`) times of a file
* stream resource referenced by `rid`. Given times are either in seconds
* (UNIX epoch time) or as `Date` objects.
*
* ```ts
* const file = await Deno.open("file.txt", { create: true, write: true });
* await Deno.futime(file.rid, 1556495550, new Date());
* ```
*
* @deprecated This will be removed in Deno 2.0. See the
* {@link https://docs.deno.com/runtime/manual/advanced/migrate_deprecations | Deno 1.x to 2.x Migration Guide}
* for migration instructions.
*
* @category File System
*/
export function futime(
rid: number,
atime: number | Date,
mtime: number | Date,
): Promise<void>;

/**
* Returns a `Deno.FileInfo` for the given file stream.
*
Expand Down
42 changes: 12 additions & 30 deletions ext/fs/30_fs.js
Original file line number Diff line number Diff line change
Expand Up @@ -482,32 +482,6 @@ function toUnixTimeFromEpoch(value) {
];
}

function futimeSync(
rid,
atime,
mtime,
) {
const { 0: atimeSec, 1: atimeNsec } = toUnixTimeFromEpoch(atime);
const { 0: mtimeSec, 1: mtimeNsec } = toUnixTimeFromEpoch(mtime);
op_fs_futime_sync(rid, atimeSec, atimeNsec, mtimeSec, mtimeNsec);
}

async function futime(
rid,
atime,
mtime,
) {
const { 0: atimeSec, 1: atimeNsec } = toUnixTimeFromEpoch(atime);
const { 0: mtimeSec, 1: mtimeNsec } = toUnixTimeFromEpoch(mtime);
await op_fs_futime_async(
rid,
atimeSec,
atimeNsec,
mtimeSec,
mtimeNsec,
);
}

function utimeSync(
path,
atime,
Expand Down Expand Up @@ -766,11 +740,21 @@ class FsFile {
}

async utime(atime, mtime) {
await futime(this.#rid, atime, mtime);
const { 0: atimeSec, 1: atimeNsec } = toUnixTimeFromEpoch(atime);
const { 0: mtimeSec, 1: mtimeNsec } = toUnixTimeFromEpoch(mtime);
await op_fs_futime_async(
this.#rid,
atimeSec,
atimeNsec,
mtimeSec,
mtimeNsec,
);
}

utimeSync(atime, mtime) {
futimeSync(this.#rid, atime, mtime);
const { 0: atimeSec, 1: atimeNsec } = toUnixTimeFromEpoch(atime);
const { 0: mtimeSec, 1: mtimeNsec } = toUnixTimeFromEpoch(mtime);
op_fs_futime_sync(this.#rid, atimeSec, atimeNsec, mtimeSec, mtimeNsec);
}

isTerminal() {
Expand Down Expand Up @@ -1004,8 +988,6 @@ export {
ftruncateSync,
funlock,
funlockSync,
futime,
futimeSync,
link,
linkSync,
lstat,
Expand Down
16 changes: 0 additions & 16 deletions runtime/js/90_deno_ns.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,22 +97,6 @@ const denoNs = {
);
return fs.ftruncate(rid, len);
},
async futime(rid, atime, mtime) {
internals.warnOnDeprecatedApi(
"Deno.futime()",
new Error().stack,
"Use `Deno.FsFile.utime()` instead.",
);
await fs.futime(rid, atime, mtime);
},
futimeSync(rid, atime, mtime) {
internals.warnOnDeprecatedApi(
"Deno.futimeSync()",
new Error().stack,
"Use `Deno.FsFile.utimeSync()` instead.",
);
fs.futimeSync(rid, atime, mtime);
},
errors: errors.errors,
inspect: console.inspect,
env: os.env,
Expand Down
45 changes: 0 additions & 45 deletions tests/unit/utime_test.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,12 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.

// deno-lint-ignore-file no-deprecated-deno-api

import {
assertEquals,
assertRejects,
assertThrows,
DENO_FUTURE,
pathToAbsoluteFileUrl,
} from "./test_util.ts";

Deno.test(
{ ignore: DENO_FUTURE, permissions: { read: true, write: true } },
async function futimeSyncSuccess() {
const testDir = await Deno.makeTempDir();
const filename = testDir + "/file.txt";
using file = await Deno.open(filename, {
create: true,
write: true,
});

const atime = 1000;
const mtime = 50000;
await Deno.futime(file.rid, atime, mtime);
await file.syncData();

const fileInfo = Deno.statSync(filename);
assertEquals(fileInfo.atime, new Date(atime * 1000));
assertEquals(fileInfo.mtime, new Date(mtime * 1000));
},
);

Deno.test(
{ permissions: { read: true, write: true } },
async function fsFileUtimeSyncSuccess() {
Expand All @@ -52,27 +28,6 @@ Deno.test(
},
);

Deno.test(
{ ignore: DENO_FUTURE, permissions: { read: true, write: true } },
function futimeSyncSuccess() {
const testDir = Deno.makeTempDirSync();
const filename = testDir + "/file.txt";
using file = Deno.openSync(filename, {
create: true,
write: true,
});

const atime = 1000;
const mtime = 50000;
Deno.futimeSync(file.rid, atime, mtime);
file.syncDataSync();

const fileInfo = Deno.statSync(filename);
assertEquals(fileInfo.atime, new Date(atime * 1000));
assertEquals(fileInfo.mtime, new Date(mtime * 1000));
},
);

Deno.test(
{ permissions: { read: true, write: true } },
function futimeSyncSuccess() {
Expand Down