BREAKING(fs): remove Deno.ftruncate[Sync]() (#25412)

Towards #22079

Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
This commit is contained in:
Asher Gomez 2024-09-04 18:53:43 +10:00 committed by GitHub
parent ac33fc2892
commit 3d36cbd056
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 6 additions and 131 deletions

View file

@ -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_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_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_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_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_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"], "op_fs_link_async" => ["create a hard link", "awaiting the result of a `Deno.link` call"],

View file

@ -5193,97 +5193,6 @@ declare namespace Deno {
options?: SymlinkOptions, options?: SymlinkOptions,
): void; ): 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 * Synchronously changes the access (`atime`) and modification (`mtime`) times
* of a file system object referenced by `path`. Given times are either in * of a file system object referenced by `path`. Given times are either in

View file

@ -19,11 +19,11 @@ import {
op_fs_fdatasync_sync, op_fs_fdatasync_sync,
op_fs_file_stat_async, op_fs_file_stat_async,
op_fs_file_stat_sync, op_fs_file_stat_sync,
op_fs_file_truncate_async,
op_fs_flock_async, op_fs_flock_async,
op_fs_flock_sync, op_fs_flock_sync,
op_fs_fsync_async, op_fs_fsync_async,
op_fs_fsync_sync, op_fs_fsync_sync,
op_fs_ftruncate_async,
op_fs_ftruncate_sync, op_fs_ftruncate_sync,
op_fs_funlock_async, op_fs_funlock_async,
op_fs_funlock_async_unstable, op_fs_funlock_async_unstable,
@ -422,14 +422,6 @@ function coerceLen(len) {
return 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) { function truncateSync(path, len) {
op_fs_truncate_sync(path, coerceLen(len)); op_fs_truncate_sync(path, coerceLen(len));
} }
@ -655,11 +647,11 @@ class FsFile {
} }
truncate(len) { truncate(len) {
return ftruncate(this.#rid, len); return op_fs_file_truncate_async(this.#rid, coerceLen(len));
} }
truncateSync(len) { truncateSync(len) {
return ftruncateSync(this.#rid, len); return op_fs_ftruncate_sync(this.#rid, coerceLen(len));
} }
read(p) { read(p) {
@ -962,8 +954,6 @@ export {
FsFile, FsFile,
fsync, fsync,
fsyncSync, fsyncSync,
ftruncate,
ftruncateSync,
funlock, funlock,
funlockSync, funlockSync,
link, link,

View file

@ -242,7 +242,7 @@ deno_core::extension!(deno_fs,
op_fs_funlock_async, op_fs_funlock_async,
op_fs_funlock_sync, op_fs_funlock_sync,
op_fs_ftruncate_sync, op_fs_ftruncate_sync,
op_fs_ftruncate_async, op_fs_file_truncate_async,
op_fs_futime_sync, op_fs_futime_sync,
op_fs_futime_async, op_fs_futime_async,

View file

@ -1569,7 +1569,7 @@ pub fn op_fs_ftruncate_sync(
} }
#[op2(async)] #[op2(async)]
pub async fn op_fs_ftruncate_async( pub async fn op_fs_file_truncate_async(
state: Rc<RefCell<OpState>>, state: Rc<RefCell<OpState>>,
#[smi] rid: ResourceId, #[smi] rid: ResourceId,
#[number] len: u64, #[number] len: u64,

View file

@ -77,22 +77,6 @@ const denoNs = {
lstat: fs.lstat, lstat: fs.lstat,
truncateSync: fs.truncateSync, truncateSync: fs.truncateSync,
truncate: fs.truncate, 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, errors: errors.errors,
inspect: console.inspect, inspect: console.inspect,
env: os.env, env: os.env,

View file

@ -802,8 +802,6 @@ function bootstrapMainRuntime(runtimeOptions, warmup = false) {
delete globalThis.window; delete globalThis.window;
delete Deno.Buffer; delete Deno.Buffer;
delete Deno.File; delete Deno.File;
delete Deno.ftruncate;
delete Deno.ftruncateSync;
delete Deno.FsFile.prototype.rid; delete Deno.FsFile.prototype.rid;
delete Deno.funlock; delete Deno.funlock;
delete Deno.funlockSync; delete Deno.funlockSync;
@ -975,8 +973,6 @@ function bootstrapWorkerRuntime(
if (future) { if (future) {
delete Deno.Buffer; delete Deno.Buffer;
delete Deno.File; delete Deno.File;
delete Deno.ftruncate;
delete Deno.ftruncateSync;
delete Deno.FsFile.prototype.rid; delete Deno.FsFile.prototype.rid;
delete Deno.funlock; delete Deno.funlock;
delete Deno.funlockSync; delete Deno.funlockSync;

View file

@ -1,8 +1,6 @@
console.log("window is", globalThis.window); console.log("window is", globalThis.window);
console.log("Deno.Buffer is", Deno.Buffer); console.log("Deno.Buffer is", Deno.Buffer);
console.log("Deno.File is", Deno.File); console.log("Deno.File is", Deno.File);
console.log("Deno.ftruncate is", Deno.ftruncate);
console.log("Deno.ftruncateSync is", Deno.ftruncateSync);
console.log( console.log(
"Deno.FsFile.prototype.rid is", "Deno.FsFile.prototype.rid is",
Deno.openSync(import.meta.filename).rid, Deno.openSync(import.meta.filename).rid,

View file

@ -1,8 +1,6 @@
window is undefined window is undefined
Deno.Buffer is undefined Deno.Buffer is undefined
Deno.File is undefined Deno.File is undefined
Deno.ftruncate is undefined
Deno.ftruncateSync is undefined
Deno.FsFile.prototype.rid is undefined Deno.FsFile.prototype.rid is undefined
Deno.funlock is undefined Deno.funlock is undefined
Deno.funlockSync is undefined Deno.funlockSync is undefined