std/media_types/extension.ts

31 lines
972 B
TypeScript

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
// This module is browser compatible.
import { allExtensions } from "./all_extensions.ts";
/**
* Returns the most relevant extension for the given media type, or `undefined`
* if no extension can be found.
*
* Extensions are returned without a leading `.`.
*
* @param type The media type to get the extension for.
*
* @returns The extension for the given media type, or `undefined` if no
* extension is found.
*
* @example Usage
* ```ts
* import { extension } from "@std/media-types/extension";
* import { assertEquals } from "@std/assert";
*
* assertEquals(extension("text/plain"), "txt");
* assertEquals(extension("application/json"), "json");
* assertEquals(extension("text/html; charset=UTF-8"), "html");
* assertEquals(extension("application/foo"), undefined);
* ```
*/
export function extension(type: string): string | undefined {
return allExtensions(type)?.[0];
}