@premieroctet/next-admin
Version:
Next-Admin provides a customizable and turnkey admin dashboard for applications built with Next.js and powered by the Prisma ORM. It aims to simplify the development process by providing a turnkey admin system that can be easily integrated into your proje
52 lines (51 loc) • 1.24 kB
JavaScript
const SUPPORTED_IMG_EXTENSIONS = [
"apng",
"avif",
"png",
"gif",
"jpg",
"jpeg",
"jfif",
"pjpeg",
"pjp",
"png",
"svg",
"webp",
"bmp",
"ico",
"cur",
"tif",
"tiff"
];
function isBase64Url(url) {
return url.startsWith("data:");
}
function getFilenameAndExtensionFromUrl(url) {
const cleanUrl = url.split("?")[0].split("#")[0];
const fullFilename = cleanUrl.split("/").pop();
if (!fullFilename) return {
fileName: void 0,
extension: void 0
};
const [_, extension] = fullFilename.split(".");
return {
fileName: fullFilename,
extension
};
}
function isImageType(url) {
if (isBase64Url(url)) return url.split(":")[1].split(";")[0].includes("image");
{
const { extension } = getFilenameAndExtensionFromUrl(url);
if (!!extension) return SUPPORTED_IMG_EXTENSIONS.includes(extension.toLocaleLowerCase());
return false;
}
}
function getFilenameFromUrl(url) {
if (isBase64Url(url)) return;
{
const { fileName } = getFilenameAndExtensionFromUrl(url);
return fileName;
}
}
export { getFilenameAndExtensionFromUrl, getFilenameFromUrl, isBase64Url, isImageType };