// Copyright 2018-2026 the Deno authors. MIT license. // This module is browser compatible. import { isWindows } from "../internal/os.ts"; import { relative as posixRelative } from "./posix/relative.ts"; import { relative as windowsRelative } from "./windows/relative.ts"; /** * Return the relative path from `from` to `to` based on current working * directory. * * @example Usage * ```ts * import { relative } from "relative.ts"; * import { assertEquals } from "../assert/mod.ts"; * * if (Deno.build.os === "windows") { * const path = relative("C:\\foobar\\test\\aaa", "C:\\foobar\\impl\\bbb"); * assertEquals(path, "..\\..\\impl\\bbb"); * } else { * const path = relative("/data/foobar/test/aaa", "/data/foobar/impl/bbb"); * assertEquals(path, "../../impl/bbb"); * } * ``` * * @param from Path in current working directory. * @param to Path in current working directory. * @returns The relative path from `from` to `to`. */ export function relative(from: string, to: string): string { return isWindows ? windowsRelative(from, to) : posixRelative(from, to); }