Skip to content

Commit

Permalink
BREAKING(fs): remove Deno.ftruncate[Sync]() (#25412)
Browse files Browse the repository at this point in the history
Towards #22079

Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
  • Loading branch information
iuioiua authored Sep 4, 2024
1 parent ac33fc2 commit 3d36cbd
Show file tree
Hide file tree
Showing 9 changed files with 6 additions and 131 deletions.
2 changes: 1 addition & 1 deletion cli/tools/test/fmt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ pub const OP_DETAILS: phf::Map<&'static str, [&'static str; 2]> = phf_map! {
"op_fs_file_stat_async" => ["get file metadata", "awaiting the result of a `Deno.FsFile.prototype.stat` call"],
"op_fs_flock_async" => ["lock a file", "awaiting the result of a `Deno.FsFile.lock` call"],
"op_fs_fsync_async" => ["flush pending data operations for a file to disk", "awaiting the result of a `Deno.fsync` or `Deno.FsFile.sync` call"],
"op_fs_ftruncate_async" => ["truncate a file", "awaiting the result of a `Deno.ftruncate` or `Deno.FsFile.truncate` call"],
"op_fs_file_truncate_async" => ["truncate a file", "awaiting the result of a `Deno.FsFile.prototype.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_link_async" => ["create a hard link", "awaiting the result of a `Deno.link` call"],
Expand Down
91 changes: 0 additions & 91 deletions cli/tsc/dts/lib.deno.ns.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5193,97 +5193,6 @@ declare namespace Deno {
options?: SymlinkOptions,
): void;

/**
* Truncates or extends the specified file stream, to reach the specified
* `len`.
*
* If `len` is not specified then the entire file contents are truncated as if
* `len` was set to `0`.
*
* If the file previously was larger than this new length, the extra data is
* lost.
*
* If the file previously was shorter, it is extended, and the extended part
* reads as null bytes ('\0').
*
* ### Truncate the entire file
*
* ```ts
* const file = await Deno.open(
* "my_file.txt",
* { read: true, write: true, create: true }
* );
* await Deno.ftruncate(file.rid);
* ```
*
* ### Truncate part of the file
*
* ```ts
* const file = await Deno.open(
* "my_file.txt",
* { read: true, write: true, create: true }
* );
* await file.write(new TextEncoder().encode("Hello World"));
* await Deno.ftruncate(file.rid, 7);
* const data = new Uint8Array(32);
* await Deno.read(file.rid, data);
* console.log(new TextDecoder().decode(data)); // Hello W
* ```
*
* @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 ftruncate(rid: number, len?: number): Promise<void>;

/**
* Synchronously truncates or extends the specified file stream, to reach the
* specified `len`.
*
* If `len` is not specified then the entire file contents are truncated as if
* `len` was set to `0`.
*
* If the file previously was larger than this new length, the extra data is
* lost.
*
* If the file previously was shorter, it is extended, and the extended part
* reads as null bytes ('\0').
*
* ### Truncate the entire file
*
* ```ts
* const file = Deno.openSync(
* "my_file.txt",
* { read: true, write: true, truncate: true, create: true }
* );
* Deno.ftruncateSync(file.rid);
* ```
*
* ### Truncate part of the file
*
* ```ts
* const file = Deno.openSync(
* "my_file.txt",
* { read: true, write: true, create: true }
* );
* file.writeSync(new TextEncoder().encode("Hello World"));
* Deno.ftruncateSync(file.rid, 7);
* Deno.seekSync(file.rid, 0, Deno.SeekMode.Start);
* const data = new Uint8Array(32);
* Deno.readSync(file.rid, data);
* console.log(new TextDecoder().decode(data)); // Hello W
* ```
*
* @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 ftruncateSync(rid: number, len?: number): void;

/**
* Synchronously changes the access (`atime`) and modification (`mtime`) times
* of a file system object referenced by `path`. Given times are either in
Expand Down
16 changes: 3 additions & 13 deletions ext/fs/30_fs.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ import {
op_fs_fdatasync_sync,
op_fs_file_stat_async,
op_fs_file_stat_sync,
op_fs_file_truncate_async,
op_fs_flock_async,
op_fs_flock_sync,
op_fs_fsync_async,
op_fs_fsync_sync,
op_fs_ftruncate_async,
op_fs_ftruncate_sync,
op_fs_funlock_async,
op_fs_funlock_async_unstable,
Expand Down Expand Up @@ -422,14 +422,6 @@ function coerceLen(len) {
return len;
}

function ftruncateSync(rid, len) {
op_fs_ftruncate_sync(rid, coerceLen(len));
}

async function ftruncate(rid, len) {
await op_fs_ftruncate_async(rid, coerceLen(len));
}

function truncateSync(path, len) {
op_fs_truncate_sync(path, coerceLen(len));
}
Expand Down Expand Up @@ -655,11 +647,11 @@ class FsFile {
}

truncate(len) {
return ftruncate(this.#rid, len);
return op_fs_file_truncate_async(this.#rid, coerceLen(len));
}

truncateSync(len) {
return ftruncateSync(this.#rid, len);
return op_fs_ftruncate_sync(this.#rid, coerceLen(len));
}

read(p) {
Expand Down Expand Up @@ -962,8 +954,6 @@ export {
FsFile,
fsync,
fsyncSync,
ftruncate,
ftruncateSync,
funlock,
funlockSync,
link,
Expand Down
2 changes: 1 addition & 1 deletion ext/fs/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ deno_core::extension!(deno_fs,
op_fs_funlock_async,
op_fs_funlock_sync,
op_fs_ftruncate_sync,
op_fs_ftruncate_async,
op_fs_file_truncate_async,
op_fs_futime_sync,
op_fs_futime_async,

Expand Down
2 changes: 1 addition & 1 deletion ext/fs/ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1569,7 +1569,7 @@ pub fn op_fs_ftruncate_sync(
}

#[op2(async)]
pub async fn op_fs_ftruncate_async(
pub async fn op_fs_file_truncate_async(
state: Rc<RefCell<OpState>>,
#[smi] rid: ResourceId,
#[number] len: u64,
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 @@ -77,22 +77,6 @@ const denoNs = {
lstat: fs.lstat,
truncateSync: fs.truncateSync,
truncate: fs.truncate,
ftruncateSync(rid, len) {
internals.warnOnDeprecatedApi(
"Deno.ftruncateSync()",
new Error().stack,
"Use `Deno.FsFile.truncateSync()` instead.",
);
return fs.ftruncateSync(rid, len);
},
ftruncate(rid, len) {
internals.warnOnDeprecatedApi(
"Deno.ftruncate()",
new Error().stack,
"Use `Deno.FsFile.truncate()` instead.",
);
return fs.ftruncate(rid, len);
},
errors: errors.errors,
inspect: console.inspect,
env: os.env,
Expand Down
4 changes: 0 additions & 4 deletions runtime/js/99_main.js
Original file line number Diff line number Diff line change
Expand Up @@ -802,8 +802,6 @@ function bootstrapMainRuntime(runtimeOptions, warmup = false) {
delete globalThis.window;
delete Deno.Buffer;
delete Deno.File;
delete Deno.ftruncate;
delete Deno.ftruncateSync;
delete Deno.FsFile.prototype.rid;
delete Deno.funlock;
delete Deno.funlockSync;
Expand Down Expand Up @@ -975,8 +973,6 @@ function bootstrapWorkerRuntime(
if (future) {
delete Deno.Buffer;
delete Deno.File;
delete Deno.ftruncate;
delete Deno.ftruncateSync;
delete Deno.FsFile.prototype.rid;
delete Deno.funlock;
delete Deno.funlockSync;
Expand Down
2 changes: 0 additions & 2 deletions tests/specs/future/runtime_api/main.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
console.log("window is", globalThis.window);
console.log("Deno.Buffer is", Deno.Buffer);
console.log("Deno.File is", Deno.File);
console.log("Deno.ftruncate is", Deno.ftruncate);
console.log("Deno.ftruncateSync is", Deno.ftruncateSync);
console.log(
"Deno.FsFile.prototype.rid is",
Deno.openSync(import.meta.filename).rid,
Expand Down
2 changes: 0 additions & 2 deletions tests/specs/future/runtime_api/main.out
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
window is undefined
Deno.Buffer is undefined
Deno.File is undefined
Deno.ftruncate is undefined
Deno.ftruncateSync is undefined
Deno.FsFile.prototype.rid is undefined
Deno.funlock is undefined
Deno.funlockSync is undefined
Expand Down

0 comments on commit 3d36cbd

Please sign in to comment.