const path = require("path"); const { buildConfig } = require("../../apps/browser/webpack.base"); module.exports = (webpackConfig, context) => { // Detect if called by Nx (context parameter exists) const isNxBuild = context && context.options; if (isNxBuild) { // Nx build configuration const mode = context.options.mode || "development"; if (process.env.NODE_ENV == null) { process.env.NODE_ENV = mode; } const ENV = (process.env.ENV = process.env.NODE_ENV); // Set environment variables from Nx context if (context.options.env) { Object.keys(context.options.env).forEach((key) => { process.env[key] = context.options.env[key]; }); } return buildConfig({ configName: "Commercial", popup: { entry: path.resolve(__dirname, "src/popup/main.ts"), entryModule: "bitwarden_license/bit-browser/src/popup/app.module#AppModule", }, background: { entry: path.resolve(__dirname, "src/platform/background.ts"), }, tsConfig: path.resolve(__dirname, "tsconfig.build.json"), outputPath: context.context && context.context.root ? path.resolve(context.context.root, context.options.outputPath) : context.options.outputPath, mode: mode, env: ENV, importAliases: [ { name: "@bitwarden/sdk-internal", alias: "@bitwarden/commercial-sdk-internal", }, ], }); } else { // npm build configuration return buildConfig({ configName: "Commercial", popup: { entry: path.resolve(__dirname, "src/popup/main.ts"), entryModule: "bitwarden_license/bit-browser/src/popup/app.module#AppModule", }, background: { entry: path.resolve(__dirname, "src/platform/background.ts"), }, tsConfig: path.resolve(__dirname, "tsconfig.json"), importAliases: [ { name: "@bitwarden/sdk-internal", alias: "@bitwarden/commercial-sdk-internal", }, ], }); } };