summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/_fs/_fs_open.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/polyfills/_fs/_fs_open.ts')
-rw-r--r--ext/node/polyfills/_fs/_fs_open.ts24
1 files changed, 13 insertions, 11 deletions
diff --git a/ext/node/polyfills/_fs/_fs_open.ts b/ext/node/polyfills/_fs/_fs_open.ts
index 135520591..2e29f3df1 100644
--- a/ext/node/polyfills/_fs/_fs_open.ts
+++ b/ext/node/polyfills/_fs/_fs_open.ts
@@ -8,10 +8,10 @@ import {
O_WRONLY,
} from "ext:deno_node/_fs/_fs_constants.ts";
import { getOpenOptions } from "ext:deno_node/_fs/_fs_common.ts";
-import { promisify } from "ext:deno_node/internal/util.mjs";
import { parseFileMode } from "ext:deno_node/internal/validators.mjs";
import { ERR_INVALID_ARG_TYPE } from "ext:deno_node/internal/errors.ts";
import { getValidatedPath } from "ext:deno_node/internal/fs/utils.mjs";
+import { FileHandle } from "ext:deno_node/internal/fs/handle.ts";
import type { Buffer } from "ext:deno_node/buffer.ts";
function existsSync(filePath: string | URL): boolean {
@@ -139,16 +139,18 @@ export function open(
}
}
-export const openPromise = promisify(open) as (
- & ((path: string | Buffer | URL) => Promise<number>)
- & ((path: string | Buffer | URL, flags: openFlags) => Promise<number>)
- & ((path: string | Buffer | URL, mode?: number) => Promise<number>)
- & ((
- path: string | Buffer | URL,
- flags?: openFlags,
- mode?: number,
- ) => Promise<number>)
-);
+export function openPromise(
+ path: string | Buffer | URL,
+ flags?: openFlags = "r",
+ mode? = 0o666,
+): Promise<FileHandle> {
+ return new Promise((resolve, reject) => {
+ open(path, flags, mode, (err, fd) => {
+ if (err) reject(err);
+ else resolve(new FileHandle(fd));
+ });
+ });
+}
export function openSync(path: string | Buffer | URL): number;
export function openSync(