UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

33 lines (32 loc) 1.18 kB
import { removeQueryString } from "@astrojs/internal-helpers/path"; import { DEFAULT_OUTPUT_FORMAT } from "../consts.js"; const DATA_PREFIX = "data:"; function inferSourceFormat(src) { if (src.startsWith(DATA_PREFIX)) { const sepIndex = src.indexOf(";"); const commaIndex = src.indexOf(","); const mimeEnd = sepIndex === -1 ? commaIndex : commaIndex === -1 ? sepIndex : Math.min(sepIndex, commaIndex); if (mimeEnd === -1) return void 0; const mime = src.slice(DATA_PREFIX.length, mimeEnd); if (mime === "image/svg+xml") return "svg"; const sub = mime.split("/")[1]; return sub || void 0; } try { const cleanSrc = removeQueryString(src).split("#")[0]; const lastSlash = cleanSrc.lastIndexOf("/"); const basename = lastSlash === -1 ? cleanSrc : cleanSrc.slice(lastSlash + 1); const lastDot = basename.lastIndexOf("."); if (lastDot === -1) return void 0; return basename.slice(lastDot + 1).toLowerCase(); } catch { return void 0; } } function resolveDefaultOutputFormat(sourceFormat) { return sourceFormat === "svg" ? "svg" : DEFAULT_OUTPUT_FORMAT; } export { inferSourceFormat, resolveDefaultOutputFormat };