aboutsummaryrefslogtreecommitdiffstats
path: root/config/webpack/plugins/inject-script-webpack-plugin
diff options
context:
space:
mode:
Diffstat (limited to 'config/webpack/plugins/inject-script-webpack-plugin')
-rw-r--r--config/webpack/plugins/inject-script-webpack-plugin/get-injection-code.js19
-rw-r--r--config/webpack/plugins/inject-script-webpack-plugin/index.js2
2 files changed, 19 insertions, 2 deletions
diff --git a/config/webpack/plugins/inject-script-webpack-plugin/get-injection-code.js b/config/webpack/plugins/inject-script-webpack-plugin/get-injection-code.js
index 6f3c9b3..2993c44 100644
--- a/config/webpack/plugins/inject-script-webpack-plugin/get-injection-code.js
+++ b/config/webpack/plugins/inject-script-webpack-plugin/get-injection-code.js
@@ -1 +1,18 @@
-module.exports = code => `(()=>{const o=new MutationObserver(()=>{let t=document.querySelector("head > script:nth-child(54)");if(t){let e=\`(()=>{${code.replaceAll("`","\\`")}})();\`;null==t.getAttribute("data-replaced")?(t.innerHTML=e,t.setAttribute("data-replaced","")):t.innerHTML+=e,o.disconnect()}});o.observe(document,{childList:!0,subtree:!0});})();`;
+module.exports.getInjectionCode = code => {
+ const escapeSequences = [["\b", "\\b"],
+ ["\f", "\\f"],
+ ["\n", "\\n"],
+ ["\r", "\\r"],
+ ["\t", "\\t"],
+ ["\v", "\\v"]
+ ];
+ let finalCode = code.replaceAll("`","\\`");
+
+ for (const escapeSequence of escapeSequences) {
+ finalCode = finalCode
+ .replaceAll(escapeSequence[1], "\\" + escapeSequence[1])
+ .replaceAll(escapeSequence[0], escapeSequence[1]);
+ }
+
+ return `(()=>{const o=new MutationObserver(()=>{let t=document.querySelector("head > script:nth-child(54)");if(t){let e=\`(()=>{${finalCode}})();\`;null==t.getAttribute("data-replaced")?(t.innerHTML=e,t.setAttribute("data-replaced","")):t.innerHTML+=e,o.disconnect()}});o.observe(document,{childList:!0,subtree:!0});})();`;
+};
diff --git a/config/webpack/plugins/inject-script-webpack-plugin/index.js b/config/webpack/plugins/inject-script-webpack-plugin/index.js
index b7b5940..a0ee1f7 100644
--- a/config/webpack/plugins/inject-script-webpack-plugin/index.js
+++ b/config/webpack/plugins/inject-script-webpack-plugin/index.js
@@ -1,7 +1,7 @@
const { sources } = require("webpack");
const terser = require("terser");
-const getInjectionCode = webpackRequire("plugins/inject-script-webpack-plugin/get-injection-code");
+const { getInjectionCode } = webpackRequire("plugins/inject-script-webpack-plugin/get-injection-code");
class InjectScriptPlugin {
apply(compiler) {