summaryrefslogtreecommitdiff
path: root/tests/testdata/jsr/registry/@std/url
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-04-27 17:11:57 -0400
committerGitHub <noreply@github.com>2024-04-27 21:11:57 +0000
commit651e3e9e6daf3243dd21b7f66ce9738abdc39a37 (patch)
tree0417415c1a5fa79d0ae5d8f0f75561138275e34e /tests/testdata/jsr/registry/@std/url
parente0f849289fdb2c2d86f7fb04182c37012ce2bb69 (diff)
fix(compile): certain jsr specifiers sometimes can't load (#23567)
When returning a jsr specifier for resolve it seems like deno core does not work properly and hangs. Closes https://github.com/denoland/deno/issues/23551 Closes https://github.com/denoland/deno/issues/23139
Diffstat (limited to 'tests/testdata/jsr/registry/@std/url')
-rw-r--r--tests/testdata/jsr/registry/@std/url/0.220.1/join.ts28
-rw-r--r--tests/testdata/jsr/registry/@std/url/0.220.1/normalize.ts28
-rw-r--r--tests/testdata/jsr/registry/@std/url/0.220.1_meta.json10
-rw-r--r--tests/testdata/jsr/registry/@std/url/meta.json8
4 files changed, 74 insertions, 0 deletions
diff --git a/tests/testdata/jsr/registry/@std/url/0.220.1/join.ts b/tests/testdata/jsr/registry/@std/url/0.220.1/join.ts
new file mode 100644
index 000000000..158994ad3
--- /dev/null
+++ b/tests/testdata/jsr/registry/@std/url/0.220.1/join.ts
@@ -0,0 +1,28 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+// This module is browser compatible.
+
+import { join as posixJoin } from "jsr:/@std/path@^0.220.1/posix/join";
+
+/**
+ * Join a base `URL` and a series of `paths`, then normalizes the resulting URL.
+ *
+ * @example
+ * ```ts
+ * import { join } from "@std/url/join";
+ *
+ * console.log(join("https://deno.land/", "std", "path", "mod.ts").href);
+ * // Outputs: "https://deno.land/std/path/mod.ts"
+ *
+ * console.log(join("https://deno.land", "//std", "path/", "/mod.ts").href);
+ * // Outputs: "https://deno.land/path/mod.ts"
+ * ```
+ *
+ * @param url the base URL to be joined with the paths and normalized
+ * @param paths array of path segments to be joined to the base URL
+ * @returns a complete URL string containing the base URL joined with the paths
+ */
+export function join(url: string | URL, ...paths: string[]): URL {
+ url = new URL(url);
+ url.pathname = posixJoin(url.pathname, ...paths);
+ return url;
+}
diff --git a/tests/testdata/jsr/registry/@std/url/0.220.1/normalize.ts b/tests/testdata/jsr/registry/@std/url/0.220.1/normalize.ts
new file mode 100644
index 000000000..dc2305701
--- /dev/null
+++ b/tests/testdata/jsr/registry/@std/url/0.220.1/normalize.ts
@@ -0,0 +1,28 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+// This module is browser compatible.
+
+import { normalize as posixNormalize } from "jsr:/@std/path@^0.220.1/posix/normalize";
+
+/**
+ * Normalize the `URL`, resolving `'..'` and `'.'` segments and multiple
+ * `'/'`s into `'//'` after protocol and remaining into `'/'`.
+ *
+ * @example
+ * ```ts
+ * import { normalize } from "@std/url/normalize";
+ *
+ * console.log(normalize("https:///deno.land///std//assert//.//mod.ts").href);
+ * // Outputs: "https://deno.land/std/path/mod.ts"
+ *
+ * console.log(normalize("https://deno.land/std/assert/../async/retry.ts").href);
+ * // Outputs: "https://deno.land/std/async/retry.ts"
+ * ```
+ *
+ * @param url to be normalized
+ * @returns normalized URL
+ */
+export function normalize(url: string | URL): URL {
+ url = new URL(url);
+ url.pathname = posixNormalize(url.pathname);
+ return url;
+}
diff --git a/tests/testdata/jsr/registry/@std/url/0.220.1_meta.json b/tests/testdata/jsr/registry/@std/url/0.220.1_meta.json
new file mode 100644
index 000000000..2a92cc651
--- /dev/null
+++ b/tests/testdata/jsr/registry/@std/url/0.220.1_meta.json
@@ -0,0 +1,10 @@
+{
+ "exports": {
+ ".": "./mod.ts",
+ "./basename": "./basename.ts",
+ "./dirname": "./dirname.ts",
+ "./extname": "./extname.ts",
+ "./join": "./join.ts",
+ "./normalize": "./normalize.ts"
+ }
+}
diff --git a/tests/testdata/jsr/registry/@std/url/meta.json b/tests/testdata/jsr/registry/@std/url/meta.json
new file mode 100644
index 000000000..3ae97c991
--- /dev/null
+++ b/tests/testdata/jsr/registry/@std/url/meta.json
@@ -0,0 +1,8 @@
+{
+ "scope": "std",
+ "name": "url",
+ "latest": "0.220.1",
+ "versions": {
+ "0.220.1": {}
+ }
+}