aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/webpack.config.js61
-rw-r--r--config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js8
-rw-r--r--config/webpack/plugins/create-manifest-webpack-plugin/index.js17
-rw-r--r--config/webpack/plugins/inject-script-webpack-plugin.js8
-rw-r--r--config/webpack/utils/build-file.js (renamed from config/webpack/utils/filename-hash.js)2
5 files changed, 36 insertions, 60 deletions
diff --git a/config/webpack.config.js b/config/webpack.config.js
index 9618e33..70b87ca 100644
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -18,7 +18,7 @@ const CreateInjectedSharedModulesPlugin = webpackRequire("plugins/create-injecte
const { inlineJavascript } = webpackRequire("utils/inline-javascript");
const { getScriptRuntimeFromType } = webpackRequire("utils/script-runtime");
-const { getFileNameHash } = webpackRequire("utils/filename-hash");
+const { getFileName } = webpackRequire("utils/build-file");
const scripts = webpackRequire("utils/scripts");
const sharedModules = webpackRequire("utils/shared-modules");
@@ -48,29 +48,24 @@ for (const scriptPath in scripts) {
let destinationFolder = "scripts";
switch (scriptType) {
- case "injected-after":
+ case "injected":
scriptEntries = injectedAfterScriptEntries;
destinationFolder = "scripts/injected";
break;
- case "injected-before":
- scriptEntries = injectedBeforeScriptEntries;
- destinationFolder = "scripts/injected";
- break;
-
default:
scriptEntries = uninjectedScriptEntries;
}
scriptEntries[`${scriptType} - "${scriptPath}"`] = {
import: inlineJavascript(currentScripts.map(script => `import "${path.resolve(SOURCE_DIR, "scripts", script)}";`).join("\n")),
- filename: `${destinationFolder}/${getFileNameHash(scriptType, scriptPath)}.js`
+ filename: `${destinationFolder}/${getFileName(scriptType, scriptPath)}.js`
};
}
}
for (const sharedModule of sharedModules) {
- const sharedModuleNameHash = getFileNameHash(sharedModule, "shared");
+ const sharedModuleNameHash = getFileName(sharedModule, "shared");
const sharedModuleGlobalVariableName = `$${sharedModuleNameHash.substring(sharedModuleNameHash.length - 16)}`;
sharedModuleEntries[sharedModule] = {
import: path.resolve(SOURCE_DIR, "shared", sharedModule),
@@ -138,23 +133,6 @@ const sharedModuleOptions = {
}
};
-const injectedModulesOptions = {
- externals: sharedModuleExternals,
- externalsType: "var",
- module: {
- rules: [
- {
- test: /banglar-bhumi-utils\/src\/.*.(^.?|\.[^d]|[^.]d|[^.][^d])\.(t|j)s$/,
- loader: path.resolve(CONFIG_DIR, "webpack/loader/count-imports-loader.js"),
- options: {
- sharedModulesImportedCount: injectedSharedModulesImportedCount
- },
- enforce: "post"
- }
- ]
- }
-};
-
const uninjectedScriptConfiguration = merge(
commonOptions,
sharedModuleOptions,
@@ -163,10 +141,23 @@ const uninjectedScriptConfiguration = merge(
}
);
-const injectedAfterScriptConfiguration = merge(
+const injectedScriptConfiguration = merge(
commonOptions,
- injectedModulesOptions,
{
+ externals: sharedModuleExternals,
+ externalsType: "var",
+ module: {
+ rules: [
+ {
+ test: /banglar-bhumi-utils\/src\/.*.(^.?|\.[^d]|[^.]d|[^.][^d])\.(t|j)s$/,
+ loader: path.resolve(CONFIG_DIR, "webpack/loader/count-imports-loader.js"),
+ options: {
+ sharedModulesImportedCount: injectedSharedModulesImportedCount
+ },
+ enforce: "post"
+ }
+ ]
+ },
entry: injectedAfterScriptEntries,
plugins: [
new InjectScriptPlugin()
@@ -174,17 +165,6 @@ const injectedAfterScriptConfiguration = merge(
}
);
-const injectedBeforeScriptConfiguration = merge(
- commonOptions,
- injectedModulesOptions,
- {
- entry: injectedBeforeScriptEntries,
- plugins: [
- new InjectScriptPlugin(true)
- ]
- }
-);
-
const sortedSharedModules = []
const sharedModulesConfiguration = merge(
@@ -227,7 +207,6 @@ const sharedModulesConfiguration = merge(
module.exports = [
uninjectedScriptConfiguration,
- injectedAfterScriptConfiguration,
- injectedBeforeScriptConfiguration,
+ injectedScriptConfiguration,
sharedModulesConfiguration
];
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 fd5a0a2..aa076b8 100644
--- a/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
+++ b/config/webpack/plugins/create-injected-shared-modules-webpack-plugin.js
@@ -2,7 +2,7 @@ const path = require("path");
const fs = require("fs");
const { sources } = require("webpack");
-const { getFileNameHash } = webpackRequire("utils/filename-hash");
+const { getFileName } = webpackRequire("utils/build-file");
class CreateInjectedSharedModulesPlugin {
constructor({ injectedSharedModulesImportedCount, sortedSharedModules }) {
@@ -20,15 +20,15 @@ class CreateInjectedSharedModulesPlugin {
assets => {
const injectedSharedScripts = this.sortedSharedModules
.filter(sharedModule => this.injectedSharedModulesImportedCount[sharedModule] > 0)
- .map(sharedModule => `shared/${getFileNameHash(sharedModule, "shared")}.js`);
+ .map(sharedModule => `shared/${getFileName(sharedModule, "shared")}.js`);
if (injectedSharedScripts.length > 0) {
- const scriptInjectorModuleName = getFileNameHash("script-injector", "shared", true);
+ const scriptInjectorModuleName = getFileName("script-injector", "shared", true);
const injectionCode = injectedSharedScripts
.map(injectedScript => `$${scriptInjectorModuleName}.injectScriptHead("shared/${path.basename(injectedScript)}");`)
.join("");
compilation.emitAsset(
- `shared/${getFileNameHash("injected-shared-modules", "shared")}.js`,
+ `shared/${getFileName("injected-shared-modules", "shared")}.js`,
new sources.RawSource(injectionCode)
);
}
diff --git a/config/webpack/plugins/create-manifest-webpack-plugin/index.js b/config/webpack/plugins/create-manifest-webpack-plugin/index.js
index b14cd13..92c3096 100644
--- a/config/webpack/plugins/create-manifest-webpack-plugin/index.js
+++ b/config/webpack/plugins/create-manifest-webpack-plugin/index.js
@@ -2,7 +2,7 @@ const { sources } = require("webpack");
const path = require("path");
const { getScriptRuntimeFromType } = webpackRequire("utils/script-runtime");
-const { getFileNameHash } = webpackRequire("utils/filename-hash");
+const { getFileName } = webpackRequire("utils/build-file");
const scripts = webpackRequire("utils/scripts");
const manifest = webpackRequire("plugins/create-manifest-webpack-plugin/manifest-template.json");
@@ -37,9 +37,9 @@ class CreateManifestPlugin {
arrangedScripts[scriptPath][scriptRuntime] = [];
}
- arrangedScripts[scriptPath][scriptRuntime].push(`scripts/${getFileNameHash(scriptType, scriptPath)}.js`);
+ arrangedScripts[scriptPath][scriptRuntime].push(`scripts/${getFileName(scriptType, scriptPath)}.js`);
if (scriptType.startsWith("injected")) {
- resources.push(`scripts/injected/${getFileNameHash(scriptType, scriptPath)}.js`);
+ resources.push(`scripts/injected/${getFileName(scriptType, scriptPath)}.js`);
}
}
}
@@ -48,8 +48,9 @@ class CreateManifestPlugin {
matches: [`*://banglarbhumi.gov.in/BanglarBhumi/*`],
js: this.sortedSharedModules
.filter(sharedModule => this.sharedModulesImportedCount[sharedModule] > 0)
- .map(sharedModule => `shared/${getFileNameHash(sharedModule, "shared")}.js`)
- .concat(arrangedScripts["*"]["document_start"]),
+ .map(sharedModule => `shared/${getFileName(sharedModule, "shared")}.js`)
+ .concat(arrangedScripts["*"]["document_start"])
+ .filter(x => x != null),
run_at: "document_start"
});
@@ -78,14 +79,14 @@ class CreateManifestPlugin {
const injectedSharedModules = this.sortedSharedModules
.filter(sharedModule => this.injectedSharedModulesImportedCount[sharedModule] > 0)
- .map(sharedModule => `shared/${getFileNameHash(sharedModule, "shared")}.js`);
+ .map(sharedModule => `shared/${getFileName(sharedModule, "shared")}.js`);
if (injectedSharedModules.length > 0) {
resources = resources.concat(injectedSharedModules);
- manifest.content_scripts[0].js.unshift(`shared/${getFileNameHash("injected-shared-modules", "shared")}.js`);
+ manifest.content_scripts[0].js.unshift(`shared/${getFileName("injected-shared-modules", "shared")}.js`);
}
- manifest.content_scripts[0].js.unshift(`shared/${getFileNameHash("script-injector", "shared")}.js`);
+ manifest.content_scripts[0].js.unshift(`shared/${getFileName("script-injector", "shared")}.js`);
if (resources.length > 0) {
manifest.web_accessible_resources = [
diff --git a/config/webpack/plugins/inject-script-webpack-plugin.js b/config/webpack/plugins/inject-script-webpack-plugin.js
index 665d24e..25b1dc6 100644
--- a/config/webpack/plugins/inject-script-webpack-plugin.js
+++ b/config/webpack/plugins/inject-script-webpack-plugin.js
@@ -1,14 +1,10 @@
const { sources } = require("webpack");
const path = require("path");
-const { getFileNameHash } = webpackRequire("utils/filename-hash");
+const { getFileName } = webpackRequire("utils/build-file");
const { getInjectedCode } = webpackRequire("utils/injected-code");
class InjectScriptPlugin {
- constructor(insertedBefore = false) {
- this.insertedBefore = insertedBefore;
- }
-
apply(compiler) {
compiler.hooks.compilation.tap("InjectScriptPlugin", compilation => {
compilation.hooks.processAssets.tapPromise(
@@ -21,7 +17,7 @@ class InjectScriptPlugin {
for (const assetName in assets) {
if (/\.js$/.test(assetName)) {
const injectedCodeResponse = getInjectedCode(compilation.getAsset(assetName).source.source())
- const scriptInjectorModuleName = getFileNameHash("script-injector", "shared", true);
+ const scriptInjectorModuleName = getFileName("script-injector", "shared", true);
compilation.updateAsset(
assetName,
new sources.RawSource(injectedCodeResponse[0])
diff --git a/config/webpack/utils/filename-hash.js b/config/webpack/utils/build-file.js
index e0d8a6d..9a0ae66 100644
--- a/config/webpack/utils/filename-hash.js
+++ b/config/webpack/utils/build-file.js
@@ -1,6 +1,6 @@
const crypto = require("crypto");
-module.exports.getFileNameHash = (fileName, prefix, justHash = false) => {
+module.exports.getFileName = (fileName, prefix, justHash = false) => {
let hash = crypto
.createHash("md5")
.update(`${prefix}-${fileName}`)