summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/js/util.ts7
-rw-r--r--cli/tests/unit/path_from_url_test.ts23
2 files changed, 16 insertions, 14 deletions
diff --git a/cli/js/util.ts b/cli/js/util.ts
index a67dec595..d68a6cb51 100644
--- a/cli/js/util.ts
+++ b/cli/js/util.ts
@@ -110,14 +110,9 @@ function pathFromURLPosix(url: URL): string {
}
export function pathFromURL(pathOrUrl: string | URL): string {
- if (typeof pathOrUrl == "string") {
- try {
- pathOrUrl = new URL(pathOrUrl);
- } catch {}
- }
if (pathOrUrl instanceof URL) {
if (pathOrUrl.protocol != "file:") {
- throw new TypeError("Must be a path string or file URL.");
+ throw new TypeError("Must be a file URL.");
}
return build.os == "windows"
diff --git a/cli/tests/unit/path_from_url_test.ts b/cli/tests/unit/path_from_url_test.ts
index 41f2c47ea..d43245c06 100644
--- a/cli/tests/unit/path_from_url_test.ts
+++ b/cli/tests/unit/path_from_url_test.ts
@@ -6,20 +6,27 @@ const { pathFromURL } = Deno[Deno.internal];
unitTest(
{ ignore: Deno.build.os === "windows" },
function pathFromURLPosix(): void {
- assertEquals(pathFromURL("file:///test/directory"), "/test/directory");
- assertEquals(pathFromURL("file:///space_ .txt"), "/space_ .txt");
- assertThrows(() => pathFromURL("file://host/test/directory"));
- assertThrows(() => pathFromURL("https://deno.land/welcome.ts"));
+ assertEquals(
+ pathFromURL(new URL("file:///test/directory")),
+ "/test/directory"
+ );
+ assertEquals(pathFromURL(new URL("file:///space_ .txt")), "/space_ .txt");
+ assertThrows(() => pathFromURL(new URL("https://deno.land/welcome.ts")));
}
);
unitTest(
{ ignore: Deno.build.os !== "windows" },
function pathFromURLWin32(): void {
- assertEquals(pathFromURL("file:///c:/windows/test"), "c:\\windows\\test");
- assertEquals(pathFromURL("file:///c:/space_ .txt"), "c:\\space_ .txt");
- assertThrows(() => pathFromURL("file:///thing/test"));
- assertThrows(() => pathFromURL("https://deno.land/welcome.ts"));
+ assertEquals(
+ pathFromURL(new URL("file:///c:/windows/test")),
+ "c:\\windows\\test"
+ );
+ assertEquals(
+ pathFromURL(new URL("file:///c:/space_ .txt")),
+ "c:\\space_ .txt"
+ );
+ assertThrows(() => pathFromURL(new URL("https://deno.land/welcome.ts")));
/* TODO(ry) Add tests for these situations
* ampersand_&.tx file:///D:/weird_names/ampersand_&.txt
* at_@.txt file:///D:/weird_names/at_@.txt