From 7ea487be4aaf8f3b3047e2a7b3c1da80744f258b Mon Sep 17 00:00:00 2001 From: Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> Date: Tue, 12 Mar 2024 18:39:36 +0530 Subject: Passing url of extension assets to the injected javascript code using data arguments on the script tag. --- config/webpack/plugins/inject-script-webpack-plugin.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'config/webpack/plugins/inject-script-webpack-plugin.js') diff --git a/config/webpack/plugins/inject-script-webpack-plugin.js b/config/webpack/plugins/inject-script-webpack-plugin.js index 599871b..665d24e 100644 --- a/config/webpack/plugins/inject-script-webpack-plugin.js +++ b/config/webpack/plugins/inject-script-webpack-plugin.js @@ -2,6 +2,7 @@ const { sources } = require("webpack"); const path = require("path"); const { getFileNameHash } = webpackRequire("utils/filename-hash"); +const { getInjectedCode } = webpackRequire("utils/injected-code"); class InjectScriptPlugin { constructor(insertedBefore = false) { @@ -19,8 +20,14 @@ class InjectScriptPlugin { async assets => { for (const assetName in assets) { if (/\.js$/.test(assetName)) { + const injectedCodeResponse = getInjectedCode(compilation.getAsset(assetName).source.source()) + const scriptInjectorModuleName = getFileNameHash("script-injector", "shared", true); + compilation.updateAsset( + assetName, + new sources.RawSource(injectedCodeResponse[0]) + ); assets["scripts/" + path.basename(assetName)] = new sources.RawSource( - `$${getFileNameHash("script-injector", "shared", true)}.injectScriptHead("scripts/injected/${path.basename(assetName)}");` + `$${scriptInjectorModuleName}.injectScriptHead("scripts/injected/${path.basename(assetName)}", ${injectedCodeResponse[1]});` ); } } -- cgit v1.2.3