Kaynağa Gözat

Move filterQueryParamsFromURL to texture utils

JC Brand 4 ay önce
ebeveyn
işleme
3a5114e81e

+ 0 - 1
src/headless/types/utils/index.d.ts

@@ -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;

+ 0 - 1
src/headless/types/utils/url.d.ts

@@ -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;

+ 0 - 7
src/headless/utils/url.js

@@ -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);
 }

+ 1 - 1
src/shared/texture/texture.js

@@ -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,

+ 18 - 0
src/shared/texture/utils.js

@@ -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();
+}

+ 7 - 0
src/types/shared/texture/utils.d.ts

@@ -43,5 +43,12 @@ export function isQuoteDirective(d: string): boolean;
  * @returns {boolean}
  */
 export function containsDirectives(text: import("./texture").Texture): boolean;
+/**
+ * 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: string): string;
 export function tplMentionWithNick(o: any): import("lit").TemplateResult<1>;
 //# sourceMappingURL=utils.d.ts.map