aboutsummaryrefslogtreecommitdiffstats
path: root/config/webpack/utils/generate-script-build-config.js
diff options
context:
space:
mode:
authorArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2023-02-09 13:50:24 +0530
committerArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2023-02-09 13:50:24 +0530
commit0404234c26f6813025e9eedd9981e1536db28b2a (patch)
tree204e2ca55540e594e4d88eba87191b90794ddaf8 /config/webpack/utils/generate-script-build-config.js
parent915947e3e7ab7c1fa07596ab4b13bf6e1cc50b76 (diff)
downloadbanglar-bhumi-utils-0404234c26f6813025e9eedd9981e1536db28b2a.tar.gz
banglar-bhumi-utils-0404234c26f6813025e9eedd9981e1536db28b2a.zip
Combined the scripts with the same runtime into a single file to improve performance
Diffstat (limited to 'config/webpack/utils/generate-script-build-config.js')
-rw-r--r--config/webpack/utils/generate-script-build-config.js64
1 files changed, 0 insertions, 64 deletions
diff --git a/config/webpack/utils/generate-script-build-config.js b/config/webpack/utils/generate-script-build-config.js
deleted file mode 100644
index a6f9f54..0000000
--- a/config/webpack/utils/generate-script-build-config.js
+++ /dev/null
@@ -1,64 +0,0 @@
-const fs = require("fs");
-const path = require("path");
-
-const SanitizeScriptsImportPlugin = require("../plugins/sanitize-scripts-import-webpack-plugin");
-const InjectScriptPlugin = require("../plugins/inject-script-webpack-plugin");
-const inlineJavascript = require("./inline-javascript");
-
-const scripts = require(path.resolve(process.env.SOURCE_DIR, "scripts.json"));
-
-const getImportStatementForScript = script => {
- const importPath = path.resolve(process.env.SOURCE_DIR, "scripts", script);
- return `import "${importPath}";`;
-};
-
-const getVirtualEntry = scriptType => {
- const importStatements = Object.keys(scripts[scriptType]).map(getImportStatementForScript).join("\n");
-
- return inlineJavascript(importStatements);
-}
-
-let injectedScriptsCount = 0;
-const generateScriptBuildConfig = scriptType => {
- return {
- entry: getVirtualEntry(scriptType),
- name: scriptType,
- mode: "production",
- output: {
- filename: `${scriptType}.js`
- },
- resolve: {
- extensions: ["", ".ts", ".js"],
- alias: {
- "@": process.env.SOURCE_DIR
- }
- },
- module: {
- rules: [
- {
- test: /\.tsx?$/,
- loader: "ts-loader",
- options: {
- configFile: "config/tsconfig.json"
- }
- },
- {
- test: new RegExp(`^${path.resolve(process.env.SOURCE_DIR, "scripts")}`),
- loader: path.resolve(process.env.CONFIG_DIR, "webpack/loaders/scoped-loader")
- }
- ]
- },
- plugins: [
- new SanitizeScriptsImportPlugin()
- ].concat(
- scriptType.startsWith("injected")
- ? [new InjectScriptPlugin({
- onload: scriptType === "injected_and_loaded",
- isFirst: injectedScriptsCount++ <= 0
- })]
- : []
- )
- };
-};
-
-module.exports = generateScriptBuildConfig;