playwright-fluent
Version:
Fluent API around playwright
65 lines (64 loc) • 2.3 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.areQueryStringSimilar = exports.extractQueryStringObjectFromUrl = exports.hasNoQueryString = exports.hasQueryString = exports.urlToPathWithoutQueryString = exports.urlToShortPath = exports.urlToPath = void 0;
function urlToPath(url) {
const urlObject = new URL(url);
const fullPath = `${urlObject.pathname}${urlObject.search}`;
return fullPath;
}
exports.urlToPath = urlToPath;
function urlToShortPath(url) {
const urlObject = new URL(url);
const fullPath = `${urlObject.pathname}${urlObject.search}`;
const parts = fullPath.split('/');
if (parts.length <= 2) {
return fullPath;
}
const shortPath = ['', parts[parts.length - 2], parts[parts.length - 1]].join('/');
return shortPath;
}
exports.urlToShortPath = urlToShortPath;
function urlToPathWithoutQueryString(url) {
const urlObject = new URL(url);
const fullPath = `${urlObject.pathname}`;
return fullPath;
}
exports.urlToPathWithoutQueryString = urlToPathWithoutQueryString;
function hasQueryString(url) {
const urlObject = new URL(url);
const queryString = `${urlObject.search}`;
if (queryString) {
return true;
}
return false;
}
exports.hasQueryString = hasQueryString;
function hasNoQueryString(url) {
return !hasQueryString(url);
}
exports.hasNoQueryString = hasNoQueryString;
function extractQueryStringObjectFromUrl(url) {
const urlObject = new URL(url);
const result = {};
urlObject.searchParams.forEach((value, name) => {
if (name) {
result[name] = value;
}
});
return result;
}
exports.extractQueryStringObjectFromUrl = extractQueryStringObjectFromUrl;
function areQueryStringSimilar(url1, url2) {
const queryStringObject1 = extractQueryStringObjectFromUrl(url1);
const queryStringObject2 = extractQueryStringObjectFromUrl(url2);
for (const key in queryStringObject1) {
if (['id', 'date', 'time', 'nonce', 'state'].some((keyword) => key.toLowerCase().includes(keyword))) {
continue;
}
if (queryStringObject1[key] !== queryStringObject2[key]) {
return false;
}
}
return true;
}
exports.areQueryStringSimilar = areQueryStringSimilar;
;