From 28c41e17add983f2947eb9b3b09a3a081b268a4e Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Fri, 28 Jun 2024 14:37:51 +0100 Subject: [PATCH] Ensure mermaid.min.js is cached properly between loads of the editor --- .../src/js/ui/editors/mermaid.js | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/mermaid.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/mermaid.js index 0c1597919..b4ae5d52d 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/editors/mermaid.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editors/mermaid.js @@ -11,9 +11,22 @@ RED.editor.mermaid = (function () { if (!initializing) { initializing = true - $.getScript( - 'vendor/mermaid/mermaid.min.js', - function (data, stat, jqxhr) { + // Find the cache-buster: + let cacheBuster + $('script').each(function (i, el) { + if (!cacheBuster) { + const src = el.getAttribute('src') + const m = /\?v=(.+)$/.exec(src) + if (m) { + cacheBuster = m[1] + } + } + }) + $.ajax({ + url: `vendor/mermaid/mermaid.min.js?v=${cacheBuster}`, + dataType: "script", + cache: true, + success: function (data, stat, jqxhr) { mermaid.initialize({ startOnLoad: false, theme: RED.settings.get('mermaid', {}).theme @@ -24,7 +37,7 @@ RED.editor.mermaid = (function () { render(pending) } } - ) + }); } } else { const nodes = document.querySelectorAll(selector)