From c57a9e3d9e304bd360437f8f732dbc0479376cd7 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> Date: Mon, 6 Feb 2023 19:30:21 +0530 Subject: Fixed some bugs... Updated some code... --- .../webpack/utils/generate-script-build-config.js | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 config/webpack/utils/generate-script-build-config.js (limited to 'config/webpack/utils') 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; -- cgit v1.2.3