export const WORKSPACE_BROWSER_PREVIEW_EXTENSIONS = [".htm", ".html", ".pdf"] as const; export const WORKSPACE_IMAGE_PREVIEW_EXTENSIONS = [ ".avif", ".gif", ".ico", ".jpeg", ".jpg", ".png", ".svg", ".webp", ] as const; function hasPreviewExtension(path: string, extensions: ReadonlyArray): boolean { const pathWithoutQuery = path.split(/[?#]/, 1)[0]?.toLowerCase() ?? ""; return extensions.some((extension) => pathWithoutQuery.endsWith(extension)); } export function isWorkspaceBrowserPreviewPath(path: string): boolean { return hasPreviewExtension(path, WORKSPACE_BROWSER_PREVIEW_EXTENSIONS); } export function isWorkspaceImagePreviewPath(path: string): boolean { return hasPreviewExtension(path, WORKSPACE_IMAGE_PREVIEW_EXTENSIONS); } export function isWorkspacePreviewEntryPath(path: string): boolean { return isWorkspaceBrowserPreviewPath(path) || isWorkspaceImagePreviewPath(path); }