// Copyright 2018-2026 the Deno authors. MIT license. // This module is browser compatible. import { isWindows } from "../internal/os.ts"; import { extname as posixExtname } from "./posix/extname.ts"; import { extname as windowsExtname } from "./windows/extname.ts"; /** * Return the extension of the path with leading period ("."). * * @example Usage * ```ts * import { extname } from "extname.ts"; * import { assertEquals } from "../assert/mod.ts"; * * if (Deno.build.os === "windows") { * assertEquals(extname("C:\\home\\user\\Documents\\image.png"), ".png"); * assertEquals(extname(new URL("file:///C:/home/user/Documents/image.png")), ".png"); * } else { * assertEquals(extname("/home/user/Documents/image.png"), ".png"); * assertEquals(extname(new URL("file:///home/user/Documents/image.png")), ".png"); * } * ``` * * @param path Path with extension. * @returns The file extension. E.g. returns `.ts` for `file.ts`. */ export function extname(path: string | URL): string { return isWindows ? windowsExtname(path) : posixExtname(path); }