allow full url search templates
This commit is contained in:
+11
-11
@@ -381,12 +381,12 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static #formatSearchUrl(url, searchPath, search) {
|
static #formatSearchUrl(commandUrl, searchTemplate, query) {
|
||||||
if (!searchPath) return url;
|
if (!searchTemplate) return commandUrl;
|
||||||
const [baseUrl] = Search.#splitUrl(url);
|
const [commandBase] = Search.#splitUrl(commandUrl);
|
||||||
const urlQuery = encodeURIComponent(search);
|
const [searchBase, path] = Search.#splitUrl(searchTemplate);
|
||||||
searchPath = searchPath.replace(/{}/g, urlQuery);
|
const base = searchBase ?? commandBase;
|
||||||
return baseUrl + searchPath;
|
return `${base}${path}`.replace(/{}/g, encodeURIComponent(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
static #hasProtocol(s) {
|
static #hasProtocol(s) {
|
||||||
@@ -436,11 +436,11 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
static #splitUrl(url) {
|
static #splitUrl(url) {
|
||||||
const parser = document.createElement('a');
|
const a = document.createElement('a');
|
||||||
parser.href = url;
|
a.href = url;
|
||||||
const baseUrl = `${parser.protocol}//${parser.hostname}`;
|
const baseUrl = a.hostname ? `${a.protocol}//${a.hostname}` : null;
|
||||||
const rest = `${parser.pathname}${parser.search}`;
|
const rest = `${a.pathname}${a.search}`;
|
||||||
return [baseUrl, rest];
|
return [baseUrl, decodeURIComponent(rest)];
|
||||||
}
|
}
|
||||||
|
|
||||||
#close() {
|
#close() {
|
||||||
|
|||||||
Reference in New Issue
Block a user