Procházet zdrojové kódy

make sure variables always return a non-empty value

Gildas před 7 roky
rodič
revize
02c6939860
1 změnil soubory, kde provedl 11 přidání a 11 odebrání
  1. 11 11
      lib/single-file/single-file-core.js

+ 11 - 11
lib/single-file/single-file-core.js

@@ -1096,18 +1096,18 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			template = await Util.evalTemplateVariable(template, "hours-utc", () => String(date.getUTCHours()).padStart(2, "0"), dontReplaceSlash);
 			template = await Util.evalTemplateVariable(template, "minutes-utc", () => String(date.getUTCMinutes()).padStart(2, "0"), dontReplaceSlash);
 			template = await Util.evalTemplateVariable(template, "seconds-utc", () => String(date.getUTCSeconds()).padStart(2, "0"), dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-hash", () => url.hash.substring(1), dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-host", () => url.host.replace(/\/$/, ""), dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-hostname", () => url.hostname.replace(/\/$/, ""), dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-href", () => url.href, dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-password", () => url.password, dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-pathname", () => url.pathname.replace(/^\//, "").replace(/\/$/, ""), dontReplaceSlash === undefined ? true : dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-port", () => url.port, dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-protocol", () => url.protocol, dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-search", () => url.search.substring(1), dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-username", () => url.username, dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-hash", () => url.hash.substring(1) || "No hash", dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-host", () => url.host.replace(/\/$/, "") || "No host", dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-hostname", () => url.hostname.replace(/\/$/, "") || "No hostname", dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-href", () => url.href || "No href", dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-password", () => url.password || "No password", dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-pathname", () => url.pathname.replace(/^\//, "").replace(/\/$/, "") || "No pathname", dontReplaceSlash === undefined ? true : dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-port", () => url.port || "No port", dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-protocol", () => url.protocol || "No protocol", dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-search", () => url.search.substring(1) || "No search", dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-username", () => url.username || "No username", dontReplaceSlash);
 			template = await Util.evalTemplateVariable(template, "tab-id", () => String(options.tabId || "No tab id"), dontReplaceSlash);
-			template = await Util.evalTemplateVariable(template, "url-last-segment", () => Util.getLastSegment(url), dontReplaceSlash);
+			template = await Util.evalTemplateVariable(template, "url-last-segment", () => Util.getLastSegment(url) || "No last segment", dontReplaceSlash);
 			if (content) {
 				template = await Util.evalTemplateVariable(template, "digest-sha-256", async () => DocUtil.digest("SHA-256", content), dontReplaceSlash);
 				template = await Util.evalTemplateVariable(template, "digest-sha-384", async () => DocUtil.digest("SHA-384", content), dontReplaceSlash);