aboutsummaryrefslogtreecommitdiffstats
path: root/config/webpack/utils
diff options
context:
space:
mode:
authorArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2023-02-06 19:30:21 +0530
committerArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2023-02-06 19:30:21 +0530
commitc57a9e3d9e304bd360437f8f732dbc0479376cd7 (patch)
treead9e31238aab26fd7a8ceb54d1424daa79a237c9 /config/webpack/utils
parent1a301791bb621fa01fa76e9403b23fe1f4a120af (diff)
downloadbanglar-bhumi-utils-c57a9e3d9e304bd360437f8f732dbc0479376cd7.tar.gz
banglar-bhumi-utils-c57a9e3d9e304bd360437f8f732dbc0479376cd7.zip
Fixed some bugs... Updated some code...
Diffstat (limited to 'config/webpack/utils')
-rw-r--r--config/webpack/utils/generate-script-build-config.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/config/webpack/utils/generate-script-build-config.js b/config/webpack/utils/generate-script-build-config.js
new file mode 100644
index 0000000..2485e85
--- /dev/null
+++ b/config/webpack/utils/generate-script-build-config.js
@@ -0,0 +1,51 @@
+const fs = require("fs");
+const path = require("path");
+
+const InjectScriptPlugin = require("../plugins/inject-script-webpack-plugin");
+
+const manifest = require(path.resolve(process.env.SOURCE_DIR, "manifest.json"));
+
+let count = 0;
+
+const generateScriptBuildConfig = (scriptName, scriptType) => {
+ let entry = path.resolve(process.env.SOURCE_DIR, `scripts/${scriptName}.ts`);
+ if (!fs.existsSync(entry)) {
+ entry = path.resolve(process.env.SOURCE_DIR, `scripts/${scriptName}/index.ts`);
+ if (!fs.existsSync(entry)) {
+ entry = path.resolve(process.env.SOURCE_DIR, `scripts/${scriptName}.js`);
+ }
+ }
+
+ return {
+ entry,
+ mode: "production",
+ output: {
+ filename: `${scriptName}.js`
+ },
+ resolve: {
+ extensions: ["", ".ts", ".js"],
+ alias: {
+ "@": process.env.SOURCE_DIR
+ }
+ },
+ module: {
+ rules: [
+ {
+ test: /\.tsx?$/,
+ loader: "ts-loader",
+ options: {
+ configFile: "config/tsconfig.json"
+ }
+ }
+ ]
+ },
+ plugins: scriptType.startsWith("injected")
+ ? [new InjectScriptPlugin({
+ onload: scriptType === "injected_and_loaded",
+ isFirst: count++ <= 0
+ })]
+ : undefined
+ };
+};
+
+module.exports = generateScriptBuildConfig;