UNPKG

diginext-utils

Version:
119 lines (118 loc) 4.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isVideoByMimeType = exports.isImageByMimeType = exports.isImage = exports.getExtensionFromMimeType = exports.getFileExtension = exports.getFileNameWithExtension = exports.getFileNameWithoutExtension = exports.isLink = exports.getUrlParams = exports.addQueryParam = void 0; var urlRegex = /(https?:\/\/[^\s]+)/g; const addQueryParam = (_url, key, value) => { _url += (_url.split("?")[1] ? "&" : "?") + `${key}=${value}`; return _url; }; exports.addQueryParam = addQueryParam; const getUrlParams = (parameter, staticURL, decode = true) => { if (typeof window == "undefined") return ""; staticURL = staticURL == undefined ? window.location.host : staticURL; var currLocation = staticURL.length > 0 ? staticURL : window.location.search; if (currLocation.split("?").length < 2) return ""; var parArr = currLocation.split("?")[1].split("&"), returnBool = true; for (var i = 0; i < parArr.length; i++) { var parr = parArr[i].split("="); if (parr[0] == parameter) { return decode ? decodeURIComponent(parr[1]) : parr[1]; returnBool = true; } else { returnBool = false; } } if (!returnBool) return false; }; exports.getUrlParams = getUrlParams; const isLink = (str) => { return urlRegex.test(str); }; exports.isLink = isLink; const getFileNameWithoutExtension = (url) => { var _a, _b; return ((_b = (_a = (0, exports.getFileNameWithExtension)(url)) === null || _a === void 0 ? void 0 : _a.split(".")) === null || _b === void 0 ? void 0 : _b[0]) || ""; }; exports.getFileNameWithoutExtension = getFileNameWithoutExtension; const getFileNameWithExtension = (url) => { if (!url) return ""; url = url.replace(/\\/g, "/"); const _url = decodeURIComponent(url); const m = `${_url.toString().match(/(?:.*\/)?([^\/]+)/)}`; if (m && m.split(",").length > 1) { return m.split(",")[1].replace(/(\?.*)/, ""); } return ""; }; exports.getFileNameWithExtension = getFileNameWithExtension; const getFileExtension = (url) => { const arr = (0, exports.getFileNameWithExtension)(url).split("."); if (arr.length > 1) return (0, exports.getFileNameWithExtension)(url).split(".").pop(); return null; }; exports.getFileExtension = getFileExtension; const getExtensionFromMimeType = (mimeType) => { const mimeToExt = { "image/jpg": "jpg", "image/jpeg": "jpg", "image/png": "png", "image/gif": "gif", "image/bmp": "bmp", "image/webp": "webp", "image/tiff": "tif", "video/mp4": "mp4", "video/ogg": "ogg", "video/webm": "webm", "video/avi": "avi", "video/mkv": "mkv", "video/flv": "flv", "video/mov": "mov", "video/wmv": "wmv", "video/mpeg": "mpeg", // ... add other MIME types and their respective extensions as needed }; return mimeToExt[mimeType] || null; }; exports.getExtensionFromMimeType = getExtensionFromMimeType; /** * * @param {string} url * @returns */ const isImage = (url) => { if (!url) return false; const arr = [".png", ".jpg", ".jpeg", ".jpe", ".jif", ".jfif", ".gif", ".svg"]; const index = arr.findIndex((item) => { return url.indexOf(item) >= 0; }); return index >= 0; }; exports.isImage = isImage; const isImageByMimeType = (mimeType) => { return mimeType.startsWith("image/"); }; exports.isImageByMimeType = isImageByMimeType; const isVideoByMimeType = (mimeType) => { return mimeType.startsWith("video/"); }; exports.isVideoByMimeType = isVideoByMimeType; const xurl = { getExtensionFromMimeType: exports.getExtensionFromMimeType, addQueryParam: exports.addQueryParam, getUrlParams: exports.getUrlParams, isLink: exports.isLink, getFileNameWithoutExtension: exports.getFileNameWithoutExtension, getFileNameWithExtension: exports.getFileNameWithExtension, getFileExtension: exports.getFileExtension, isImage: exports.isImage, isImageByMimeType: exports.isImageByMimeType, isVideoByMimeType: exports.isVideoByMimeType, }; exports.default = xurl;