summaryrefslogtreecommitdiff
path: root/cli/js
diff options
context:
space:
mode:
authorCasper Beyer <caspervonb@pm.me>2020-06-22 20:58:52 +0800
committerGitHub <noreply@github.com>2020-06-22 08:58:52 -0400
commit6b3be01a00d9eaa134a5e58570239d6c1cd3bf54 (patch)
treeefa06fcb35a67a1481fbd6d48c8e2d18cc43381b /cli/js
parent79adc7b000a807caff01a3639b18cb91aef9bd9c (diff)
feat(unstable): add Deno.fstatSync and fstat (#6425)
Diffstat (limited to 'cli/js')
-rw-r--r--cli/js/deno_unstable.ts1
-rw-r--r--cli/js/lib.deno.unstable.d.ts22
-rw-r--r--cli/js/ops/fs/stat.ts8
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", {