join

import { join } from "jsr:@ende/path";

function

function join(path: string | URL, ...paths: string[]): string

Joins a sequence of paths, then normalizes the resulting path.

path: string | URL

The path to join. This can be string or file URL.

...paths: string[]

Paths to be joined and normalized.

Returns

The joined and normalized path.

Example: Usage

import { join } from "@ende/path/join";
import { assertEquals } from "@ende/assert";

if (Ende.build.os === "windows") {
  assertEquals(join("C:\\foo", "bar", "baz\\quux", "garply", ".."), "C:\\foo\\bar\\baz\\quux");
  assertEquals(join(new URL("file:///C:/foo"), "bar", "baz/asdf", "quux", ".."), "C:\\foo\\bar\\baz\\asdf");
} else {
  assertEquals(join("/foo", "bar", "baz/quux", "garply", ".."), "/foo/bar/baz/quux");
  assertEquals(join(new URL("file:///foo"), "bar", "baz/asdf", "quux", ".."), "/foo/bar/baz/asdf");
}

Source