mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
feat(runtime): support urls for Deno.realPath
and Deno.realPathSync
(#10626)
This commit is contained in:
parent
ac8ea823f5
commit
910935c071
3 changed files with 21 additions and 4 deletions
4
cli/dts/lib.deno.ns.d.ts
vendored
4
cli/dts/lib.deno.ns.d.ts
vendored
|
@ -1467,7 +1467,7 @@ declare namespace Deno {
|
|||
* Requires `allow-read` permission for the target path.
|
||||
* Also requires `allow-read` permission for the CWD if the target path is
|
||||
* relative.*/
|
||||
export function realPathSync(path: string): string;
|
||||
export function realPathSync(path: string | URL): string;
|
||||
|
||||
/** Resolves to the absolute normalized path, with symbolic links resolved.
|
||||
*
|
||||
|
@ -1483,7 +1483,7 @@ declare namespace Deno {
|
|||
* Requires `allow-read` permission for the target path.
|
||||
* Also requires `allow-read` permission for the CWD if the target path is
|
||||
* relative.*/
|
||||
export function realPath(path: string): Promise<string>;
|
||||
export function realPath(path: string | URL): Promise<string>;
|
||||
|
||||
export interface DirEntry {
|
||||
name: string;
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
|
||||
import {
|
||||
assert,
|
||||
assertEquals,
|
||||
assertMatch,
|
||||
assertThrows,
|
||||
assertThrowsAsync,
|
||||
pathToAbsoluteFileUrl,
|
||||
unitTest,
|
||||
} from "./test_util.ts";
|
||||
|
||||
|
@ -19,6 +21,12 @@ unitTest({ perms: { read: true } }, function realPathSyncSuccess(): void {
|
|||
}
|
||||
});
|
||||
|
||||
unitTest({ perms: { read: true } }, function realPathSyncUrl(): void {
|
||||
const relative = "cli/tests/fixture.json";
|
||||
const url = pathToAbsoluteFileUrl(relative);
|
||||
assertEquals(Deno.realPathSync(relative), Deno.realPathSync(url));
|
||||
});
|
||||
|
||||
unitTest(
|
||||
{
|
||||
perms: { read: true, write: true },
|
||||
|
@ -66,6 +74,15 @@ unitTest({ perms: { read: true } }, async function realPathSuccess(): Promise<
|
|||
}
|
||||
});
|
||||
|
||||
unitTest(
|
||||
{ perms: { read: true } },
|
||||
async function realPathUrl(): Promise<void> {
|
||||
const relative = "cli/tests/fixture.json";
|
||||
const url = pathToAbsoluteFileUrl(relative);
|
||||
assertEquals(await Deno.realPath(relative), await Deno.realPath(url));
|
||||
},
|
||||
);
|
||||
|
||||
unitTest(
|
||||
{
|
||||
perms: { read: true, write: true },
|
||||
|
|
|
@ -128,11 +128,11 @@
|
|||
}
|
||||
|
||||
function realPathSync(path) {
|
||||
return core.opSync("op_realpath_sync", path);
|
||||
return core.opSync("op_realpath_sync", pathFromURL(path));
|
||||
}
|
||||
|
||||
function realPath(path) {
|
||||
return core.opAsync("op_realpath_async", path);
|
||||
return core.opAsync("op_realpath_async", pathFromURL(path));
|
||||
}
|
||||
|
||||
function removeSync(
|
||||
|
|
Loading…
Reference in a new issue