aboutsummaryrefslogtreecommitdiffstats
path: root/config/webpack/loader/arrange-shared-module-loader.js
diff options
context:
space:
mode:
authorArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2023-04-04 18:45:18 +0530
committerArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2023-04-04 18:45:18 +0530
commit35413607c62f2de2a90941d487b7964b5c213999 (patch)
treece84736dce9c14b06f1adbda867aa6a357a4bbab /config/webpack/loader/arrange-shared-module-loader.js
parent7455c1e81dd18a898004c398a16e9f0b6f7c19ae (diff)
downloadbanglar-bhumi-utils-35413607c62f2de2a90941d487b7964b5c213999.tar.gz
banglar-bhumi-utils-35413607c62f2de2a90941d487b7964b5c213999.zip
Arranging shared modules in the scripts in order to make sure that the dependencies are available when shared modules references each other.
Diffstat (limited to 'config/webpack/loader/arrange-shared-module-loader.js')
-rw-r--r--config/webpack/loader/arrange-shared-module-loader.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/config/webpack/loader/arrange-shared-module-loader.js b/config/webpack/loader/arrange-shared-module-loader.js
new file mode 100644
index 0000000..9e21b23
--- /dev/null
+++ b/config/webpack/loader/arrange-shared-module-loader.js
@@ -0,0 +1,26 @@
+const path = require("path");
+
+const { ImportManager } = require("import-manager");
+
+const sharedModules = webpackRequire("utils/shared-modules.js");
+
+module.exports = function(source) {
+ const { sortedSharedModules } = this.getOptions();
+ const manager = new ImportManager(source);
+
+ for (const unit of manager.imports.es6.units) {
+ const moduleIndex = sharedModules.indexOf(unit.module.name);
+
+ if (moduleIndex >= 0) {
+ const currentSharedModuleName = sharedModules[moduleIndex];
+
+ if (!sortedSharedModules.includes(currentSharedModuleName)) {
+ sortedSharedModules.push(currentSharedModuleName);
+ }
+ }
+ }
+
+ sortedSharedModules.push(path.basename(this.resourcePath.substring(0, this.resourcePath.length - 3)));
+
+ return source;
+};