aboutsummaryrefslogtreecommitdiffstats
path: root/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-13 23:32:26 +0530
committerGitHub <noreply@github.com>2026-07-13 23:32:26 +0530
commitce401d03e75bcbfd1cdfa963954e0807219fb80d (patch)
tree52a813c1705a952312c20c328b00fa845a3453f9 /config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
parent98e7019c61ea0ffe344ef7ce809d38d62254a9fc (diff)
parentdfba7ff6fff7bde33b40a343a2318b35c429b40f (diff)
downloadbanglar-bhumi-utils-ce401d03e75bcbfd1cdfa963954e0807219fb80d.tar.gz
banglar-bhumi-utils-ce401d03e75bcbfd1cdfa963954e0807219fb80d.zip
Merge pull request #6 from arpitchakladar/adding-documentation-comments
Adding documentation comments
Diffstat (limited to 'config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js')
-rw-r--r--config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js25
1 files changed, 19 insertions, 6 deletions
diff --git a/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js b/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
index 695d4ef..c94ae86 100644
--- a/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
+++ b/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
@@ -1,31 +1,44 @@
import path from "path";
-import fs from "fs";
+
import webpack from "webpack";
import { getFileName } from "../utils/build-file.js";
+/**
+ * Webpack plugin that generates an injected shared-modules bundle.
+ * After all assets are processed, it creates a small JS file that
+ * calls the script injector for each shared module that was imported
+ * by injected scripts.
+ */
class CreateInjectedSharedModulesPlugin {
+ /**
+ * @param {{ injectedSharedModulesImportedCount: Record<string, number>, sortedSharedModules: string[] }} options
+ */
constructor({ injectedSharedModulesImportedCount, sortedSharedModules }) {
this.injectedSharedModulesImportedCount = injectedSharedModulesImportedCount;
this.sortedSharedModules = sortedSharedModules;
}
+ /**
+ * @param {import("webpack").Compiler} compiler
+ * @returns {void}
+ */
apply(compiler) {
- compiler.hooks.compilation.tap("CreateInjectedSharedModulesPlugin", compilation => {
+ compiler.hooks.compilation.tap("CreateInjectedSharedModulesPlugin", (compilation) => {
compilation.hooks.processAssets.tap(
{
name: "CreateInjectedSharedModulesPlugin",
stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL
},
- assets => {
+ (_assets) => {
const injectedSharedScripts = this.sortedSharedModules
- .filter(sharedModule => this.injectedSharedModulesImportedCount[sharedModule] > 0)
- .map(sharedModule => `shared/${getFileName(sharedModule, "shared")}.js`);
+ .filter((sharedModule) => this.injectedSharedModulesImportedCount[sharedModule] > 0)
+ .map((sharedModule) => `shared/${getFileName(sharedModule, "shared")}.js`);
if (injectedSharedScripts.length > 0) {
const scriptInjectorModuleName = getFileName("script-injector", "shared", true);
const injectionCode = injectedSharedScripts
- .map(injectedScript => `$${scriptInjectorModuleName}.injectScriptHead("shared/${path.basename(injectedScript)}");`)
+ .map((injectedScript) => `$${scriptInjectorModuleName}.injectScriptHead("shared/${path.basename(injectedScript)}");`)
.join("");
compilation.emitAsset(
`shared/${getFileName("injected-shared-modules", "shared")}.js`,