diff options
Diffstat (limited to 'ext/node/polyfills/_fs/_fs_realpath.ts')
-rw-r--r-- | ext/node/polyfills/_fs/_fs_realpath.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/ext/node/polyfills/_fs/_fs_realpath.ts b/ext/node/polyfills/_fs/_fs_realpath.ts new file mode 100644 index 000000000..5892b2c0f --- /dev/null +++ b/ext/node/polyfills/_fs/_fs_realpath.ts @@ -0,0 +1,35 @@ +// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +import { promisify } from "internal:deno_node/polyfills/internal/util.mjs"; + +type Options = { encoding: string }; +type Callback = (err: Error | null, path?: string) => void; + +export function realpath( + path: string, + options?: Options | Callback, + callback?: Callback, +) { + if (typeof options === "function") { + callback = options; + } + if (!callback) { + throw new Error("No callback function supplied"); + } + Deno.realPath(path).then( + (path) => callback!(null, path), + (err) => callback!(err), + ); +} + +realpath.native = realpath; + +export const realpathPromise = promisify(realpath) as ( + path: string, + options?: Options, +) => Promise<string>; + +export function realpathSync(path: string): string { + return Deno.realPathSync(path); +} + +realpathSync.native = realpathSync; |