diginext-utils
Version:
README.md
119 lines (118 loc) • 4.39 kB
JavaScript
;
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;