diff options
author | Casper Beyer <caspervonb@pm.me> | 2020-06-22 20:58:52 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-22 08:58:52 -0400 |
commit | 6b3be01a00d9eaa134a5e58570239d6c1cd3bf54 (patch) | |
tree | efa06fcb35a67a1481fbd6d48c8e2d18cc43381b /cli/js | |
parent | 79adc7b000a807caff01a3639b18cb91aef9bd9c (diff) |
feat(unstable): add Deno.fstatSync and fstat (#6425)
Diffstat (limited to 'cli/js')
-rw-r--r-- | cli/js/deno_unstable.ts | 1 | ||||
-rw-r--r-- | cli/js/lib.deno.unstable.d.ts | 22 | ||||
-rw-r--r-- | cli/js/ops/fs/stat.ts | 8 |
3 files changed, 31 insertions, 0 deletions
diff --git a/cli/js/deno_unstable.ts b/cli/js/deno_unstable.ts index 967eafdcd..2327b554d 100644 --- a/cli/js/deno_unstable.ts +++ b/cli/js/deno_unstable.ts @@ -4,6 +4,7 @@ export { umask } from "./ops/fs/umask.ts"; export { linkSync, link } from "./ops/fs/link.ts"; +export { fstatSync, fstat } from "./ops/fs/stat.ts"; export { fsyncSync, fsync } from "./ops/fs/sync.ts"; export { symlinkSync, symlink } from "./ops/fs/symlink.ts"; export { loadavg, osRelease, hostname } from "./ops/os.ts"; diff --git a/cli/js/lib.deno.unstable.d.ts b/cli/js/lib.deno.unstable.d.ts index daecf6604..cc7dea987 100644 --- a/cli/js/lib.deno.unstable.d.ts +++ b/cli/js/lib.deno.unstable.d.ts @@ -1142,4 +1142,26 @@ declare namespace Deno { * ``` */ export function fsync(rid: number): Promise<void>; + + /** **UNSTABLE**: New API, yet to be vetted. + * Synchronously returns a `Deno.FileInfo` for the given file stream. + * + * ```ts + * const file = Deno.openSync("file.txt", { read: true }); + * const fileInfo = Deno.fstatSync(file.rid); + * assert(fileInfo.isFile); + * ``` + */ + export function fstatSync(rid: number): FileInfo; + + /** **UNSTABLE**: New API, yet to be vetted. + * Returns a `Deno.FileInfo` for the given file stream. + * + * ```ts + * const file = await Deno.open("file.txt", { read: true }); + * const fileInfo = await Deno.fstat(file.rid); + * assert(fileInfo.isFile); + * ``` + */ + export function fstat(rid: number): Promise<FileInfo>; } diff --git a/cli/js/ops/fs/stat.ts b/cli/js/ops/fs/stat.ts index 93d31fc3f..402adeafc 100644 --- a/cli/js/ops/fs/stat.ts +++ b/cli/js/ops/fs/stat.ts @@ -66,6 +66,14 @@ export function parseFileInfo(response: StatResponse): FileInfo { }; } +export function fstatSync(rid: number): FileInfo { + return parseFileInfo(sendSync("op_fstat", { rid })); +} + +export async function fstat(rid: number): Promise<FileInfo> { + return parseFileInfo(await sendAsync("op_fstat", { rid })); +} + export async function lstat(path: string | URL): Promise<FileInfo> { path = pathFromURL(path); const res = (await sendAsync("op_stat", { |