splitFileExtension()function
Split a filename into its base name and extension in a single pass.
splitFileExtension(file: Nullish<string> = ""): [base: string | undefined, extension: string | undefined]
Tiny helpers for splitting filenames into base name and extension. They exist so callers never need to hand-roll lastIndexOf(".") logic or handle the dotfile edge case themselves.
Things to know:
splitFileExtension(".gitignore") returns [undefined, "gitignore"] — a leading dot only is treated as the extension, not the base name.splitFileExtension("no-ext") returns ["no-ext", undefined]."ts" not ".ts".import { splitFileExtension, getFileExtension, requireFileExtension } from "shelving/util";
splitFileExtension("array.ts"); // ["array", "ts"]
splitFileExtension("archive.tar.gz"); // ["archive.tar", "gz"]
splitFileExtension("no-ext"); // ["no-ext", undefined]
splitFileExtension(".gitignore"); // [undefined, "gitignore"]
splitFileExtension(undefined); // [undefined, undefined]
getFileExtension("index.html"); // "html"
getFileExtension("no-ext"); // undefined
requireFileExtension("style.css"); // "css"
requireFileExtension("no-ext"); // throws RequiredErrorSplit a filename into its base name and extension in a single pass.
splitFileExtension(file: Nullish<string> = ""): [base: string | undefined, extension: string | undefined]
Get the file extension from a file path, e.g. "md", or return undefined if the input has no extension.
getFileExtension(file: Nullish<string>): string | undefined
Get the file extension from a file path e.g. "tsx", or throw RequiredError if the input has no extension.
requireFileExtension(file: string, caller: AnyCaller = requireFileExtension): string
List of file types in extension: mime format.
{
[extension: string]: string;
}