// Copyright 2018-2025 the Deno authors. MIT license.
// This module is browser compatible.
import { parseMediaType } from "./parse_media_type.ts";
import { extensions } from "./_db.ts";
/**
* Returns all the extensions known to be associated with the media type `type`, or
* `undefined` if no extensions are found.
*
* Extensions are returned without a leading `.`.
*
* @param type The media type to get the extensions for.
*
* @returns The extensions for the given media type, or `undefined` if no
* extensions are found.
*
* @example Usage
* ```ts
* import { allExtensions } from "@std/media-types/all-extensions";
* import { assertEquals } from "@std/assert";
*
* assertEquals(allExtensions("application/json"), ["json", "map"]);
* assertEquals(allExtensions("text/html; charset=UTF-8"), ["html", "htm", "shtml"]);
* assertEquals(allExtensions("application/foo"), undefined);
* ```
*/
export function allExtensions(type: string): string[] | undefined {
try {
const [mediaType] = parseMediaType(type);
return extensions.get(mediaType);
} catch {
// just swallow errors, returning undefined
}
}
|