From dfe19c5c7570c650e25617f6653bb103ad89e4d5 Mon Sep 17 00:00:00 2001 From: Casper Beyer Date: Tue, 20 Oct 2020 21:52:10 +0800 Subject: [PATCH] feat: stabilize Deno.fsync and Deno.fdatasync (#8038) --- cli/diagnostics.rs | 4 --- cli/dts/lib.deno.ns.d.ts | 46 ++++++++++++++++++++++++++++++++++ cli/dts/lib.deno.unstable.d.ts | 46 ---------------------------------- cli/ops/fs.rs | 6 ----- 4 files changed, 46 insertions(+), 56 deletions(-) diff --git a/cli/diagnostics.rs b/cli/diagnostics.rs index 290007cc72..b92388322f 100644 --- a/cli/diagnostics.rs +++ b/cli/diagnostics.rs @@ -47,15 +47,11 @@ const UNSTABLE_DENO_PROPS: &[&str] = &[ "connect", "consoleSize", "createHttpClient", - "fdatasync", - "fdatasyncSync", "formatDiagnostics", "futime", "futimeSync", "fstat", "fstatSync", - "fsync", - "fsyncSync", "ftruncate", "ftruncateSync", "hostname", diff --git a/cli/dts/lib.deno.ns.d.ts b/cli/dts/lib.deno.ns.d.ts index 276f13e375..896b5c8004 100644 --- a/cli/dts/lib.deno.ns.d.ts +++ b/cli/dts/lib.deno.ns.d.ts @@ -676,6 +676,52 @@ declare namespace Deno { whence: SeekMode, ): Promise; + /** + * Synchronously flushes any pending data and metadata operations of the given file stream to disk. + * ```ts + * const file = Deno.openSync("my_file.txt", { read: true, write: true, create: true }); + * Deno.writeSync(file.rid, new TextEncoder().encode("Hello World")); + * Deno.ftruncateSync(file.rid, 1); + * Deno.fsyncSync(file.rid); + * console.log(new TextDecoder().decode(Deno.readFileSync("my_file.txt"))); // H + * ``` + */ + export function fsyncSync(rid: number): void; + + /** + * Flushes any pending data and metadata operations of the given file stream to disk. + * ```ts + * const file = await Deno.open("my_file.txt", { read: true, write: true, create: true }); + * await Deno.write(file.rid, new TextEncoder().encode("Hello World")); + * await Deno.ftruncate(file.rid, 1); + * await Deno.fsync(file.rid); + * console.log(new TextDecoder().decode(await Deno.readFile("my_file.txt"))); // H + * ``` + */ + export function fsync(rid: number): Promise; + + /* + * Synchronously flushes any pending data operations of the given file stream to disk. + * ```ts + * const file = Deno.openSync("my_file.txt", { read: true, write: true, create: true }); + * Deno.writeSync(file.rid, new TextEncoder().encode("Hello World")); + * Deno.fdatasyncSync(file.rid); + * console.log(new TextDecoder().decode(Deno.readFileSync("my_file.txt"))); // Hello World + * ``` + */ + export function fdatasyncSync(rid: number): void; + + /** + * Flushes any pending data operations of the given file stream to disk. + * ```ts + * const file = await Deno.open("my_file.txt", { read: true, write: true, create: true }); + * await Deno.write(file.rid, new TextEncoder().encode("Hello World")); + * await Deno.fdatasync(file.rid); + * console.log(new TextDecoder().decode(await Deno.readFile("my_file.txt"))); // Hello World + * ``` + */ + export function fdatasync(rid: number): Promise; + /** Close the given resource ID (rid) which has been previously opened, such * as via opening or creating a file. Closing a file when you are finished * with it is important to avoid leaking resources. diff --git a/cli/dts/lib.deno.unstable.d.ts b/cli/dts/lib.deno.unstable.d.ts index 4269d4b74d..1c1869827d 100644 --- a/cli/dts/lib.deno.unstable.d.ts +++ b/cli/dts/lib.deno.unstable.d.ts @@ -1170,52 +1170,6 @@ declare namespace Deno { */ export function ftruncate(rid: number, len?: number): Promise; - /* **UNSTABLE**: New API, yet to be vetted. - * Synchronously flushes any pending data operations of the given file stream to disk. - * ```ts - * const file = Deno.openSync("my_file.txt", { read: true, write: true, create: true }); - * Deno.writeSync(file.rid, new TextEncoder().encode("Hello World")); - * Deno.fdatasyncSync(file.rid); - * console.log(new TextDecoder().decode(Deno.readFileSync("my_file.txt"))); // Hello World - * ``` - */ - export function fdatasyncSync(rid: number): void; - - /** **UNSTABLE**: New API, yet to be vetted. - * Flushes any pending data operations of the given file stream to disk. - * ```ts - * const file = await Deno.open("my_file.txt", { read: true, write: true, create: true }); - * await Deno.write(file.rid, new TextEncoder().encode("Hello World")); - * await Deno.fdatasync(file.rid); - * console.log(new TextDecoder().decode(await Deno.readFile("my_file.txt"))); // Hello World - * ``` - */ - export function fdatasync(rid: number): Promise; - - /** **UNSTABLE**: New API, yet to be vetted. - * Synchronously flushes any pending data and metadata operations of the given file stream to disk. - * ```ts - * const file = Deno.openSync("my_file.txt", { read: true, write: true, create: true }); - * Deno.writeSync(file.rid, new TextEncoder().encode("Hello World")); - * Deno.ftruncateSync(file.rid, 1); - * Deno.fsyncSync(file.rid); - * console.log(new TextDecoder().decode(Deno.readFileSync("my_file.txt"))); // H - * ``` - */ - export function fsyncSync(rid: number): void; - - /** **UNSTABLE**: New API, yet to be vetted. - * Flushes any pending data and metadata operations of the given file stream to disk. - * ```ts - * const file = await Deno.open("my_file.txt", { read: true, write: true, create: true }); - * await Deno.write(file.rid, new TextEncoder().encode("Hello World")); - * await Deno.ftruncate(file.rid, 1); - * await Deno.fsync(file.rid); - * console.log(new TextDecoder().decode(await Deno.readFile("my_file.txt"))); // H - * ``` - */ - export function fsync(rid: number): Promise; - /** **UNSTABLE**: New API, yet to be vetted. * Synchronously returns a `Deno.FileInfo` for the given file stream. * diff --git a/cli/ops/fs.rs b/cli/ops/fs.rs index 8542b5230f..204d447be4 100644 --- a/cli/ops/fs.rs +++ b/cli/ops/fs.rs @@ -282,7 +282,6 @@ fn op_fdatasync_sync( args: Value, _zero_copy: &mut [ZeroCopyBuf], ) -> Result { - super::check_unstable(state, "Deno.fdatasync"); let args: FdatasyncArgs = serde_json::from_value(args)?; let rid = args.rid as u32; std_file_resource(state, rid, |r| match r { @@ -297,8 +296,6 @@ async fn op_fdatasync_async( args: Value, _zero_copy: BufVec, ) -> Result { - super::check_unstable2(&state, "Deno.fdatasync"); - let args: FdatasyncArgs = serde_json::from_value(args)?; let rid = args.rid as u32; std_file_resource(&mut state.borrow_mut(), rid, |r| match r { @@ -319,7 +316,6 @@ fn op_fsync_sync( args: Value, _zero_copy: &mut [ZeroCopyBuf], ) -> Result { - super::check_unstable(state, "Deno.fsync"); let args: FsyncArgs = serde_json::from_value(args)?; let rid = args.rid as u32; std_file_resource(state, rid, |r| match r { @@ -334,8 +330,6 @@ async fn op_fsync_async( args: Value, _zero_copy: BufVec, ) -> Result { - super::check_unstable2(&state, "Deno.fsync"); - let args: FsyncArgs = serde_json::from_value(args)?; let rid = args.rid as u32; std_file_resource(&mut state.borrow_mut(), rid, |r| match r {