diff options
Diffstat (limited to 'tests/registry/jsr/@std/url/0.220.1/join.ts')
-rw-r--r-- | tests/registry/jsr/@std/url/0.220.1/join.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/registry/jsr/@std/url/0.220.1/join.ts b/tests/registry/jsr/@std/url/0.220.1/join.ts new file mode 100644 index 000000000..158994ad3 --- /dev/null +++ b/tests/registry/jsr/@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; +} |