1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-12 02:27:46 -05:00
denoland-deno/ext/node/polyfills/internal/fs/handle.ts
nasa 4f7b109b93
feat(node_compat): Add a close method to the FileHandle class. (#19357)
## WHY 

ref: https://github.com/denoland/deno/issues/19165

The FileHandle class has many missing methods compared to node.
Add these.

## WHAT

- Add close method

---------

Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-06-09 01:13:22 +02:00

36 lines
846 B
TypeScript

// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
import { EventEmitter } from "ext:deno_node/events.ts";
import { Buffer } from "ext:deno_node/buffer.ts";
import { promises } from "ext:deno_node/fs.ts";
import {
BinaryOptionsArgument,
FileOptionsArgument,
TextOptionsArgument,
} from "ext:deno_node/_fs/_fs_common.ts";
export class FileHandle extends EventEmitter {
#rid: number;
constructor(rid: number) {
super();
this.rid = rid;
}
get fd() {
return this.rid;
}
readFile(
opt?: TextOptionsArgument | BinaryOptionsArgument | FileOptionsArgument,
): Promise<string | Buffer> {
return promises.readFile(this, opt);
}
close(): Promise<void> {
// Note that Deno.close is not async
return Promise.resolve(Deno.close(this.fd));
}
}
export default {
FileHandle,
};