@@ -25,7 +25,6 @@ declare const _default: {
isValidURL(text: string): boolean;
getURI(url: string | promise.getOpenPromise): any;
checkFileTypes(types: string[], url: string): boolean;
- filterQueryParamsFromURL(url: any): any;
isURLWithImageExtension(url: any): boolean;
isGIFURL(url: any): boolean;
isAudioURL(url: any): boolean;
@@ -18,7 +18,6 @@ export function getURI(url: string | URI): any;
* checkFileTypes(['.gif'], 'https://conversejs.org/cat.gif?foo=bar');
*/
export function checkFileTypes(types: string[], url: string): boolean;
-export function filterQueryParamsFromURL(url: any): any;
export function isURLWithImageExtension(url: any): boolean;
export function isGIFURL(url: any): boolean;
export function isAudioURL(url: any): boolean;
@@ -48,13 +48,6 @@ export function checkFileTypes (types, url) {
return !!types.filter(ext => filename.endsWith(ext)).length;
}
-export function filterQueryParamsFromURL (url) {
- const paramsArray = settings.get('filter_url_query_params');
- if (!paramsArray) return url;
- const parsed_uri = getURI(url);
- return parsed_uri.removeQuery(paramsArray).toString();
-}
-
export function isURLWithImageExtension (url) {
return checkFileTypes(['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.svg'], url);
@@ -13,6 +13,7 @@ import { shouldRenderMediaFromURL } from "utils/url.js";
import {
collapseLineBreaks,
containsDirectives,
+ filterQueryParamsFromURL,
getDirectiveAndLength,
getHeaders,
isQuoteDirective,
@@ -25,7 +26,6 @@ import { styling_map } from "./constants.js";
const {
convertASCII2Emoji,
- filterQueryParamsFromURL,
getCodePointReferences,
getMediaURLs,
getMediaURLsMetadata,
@@ -1,4 +1,5 @@
import { html } from "lit";
+import { api } from "@converse/headless";
import { bracketing_directives, dont_escape, styling_directives, styling_map } from "./constants";
/**
@@ -191,3 +192,20 @@ export function containsDirectives(text) {
return false;
+
+/**
+ * Takes the `filter_url_query_params` array from the settings and
+ * removes any query strings from the URL that matches those values.
+ * @param {string} url
+ * @return {string}
+ */
+export function filterQueryParamsFromURL(url) {
+ const setting = api.settings.get("filter_url_query_params");
+ if (!setting) return url;
+ const to_remove = Array.isArray(setting) ? setting : [setting];
+ const url_obj = new URL(url);
+ to_remove.forEach(/** @param {string} p */(p) => url_obj.searchParams.delete(p));
+ return url_obj.toString();
+}
@@ -43,5 +43,12 @@ export function isQuoteDirective(d: string): boolean;
* @returns {boolean}
export function containsDirectives(text: import("./texture").Texture): boolean;
+export function filterQueryParamsFromURL(url: string): string;
export function tplMentionWithNick(o: any): import("lit").TemplateResult<1>;
//# sourceMappingURL=utils.d.ts.map