const { v4: uuidv4 } = require("uuid") const CopyWebpackPlugin = require("copy-webpack-plugin") const { compact } = require("lodash/fp") const baseConfig = require("./webpack.base.config") module.exports = (env) => { const config = baseConfig(env) config.plugins.unshift( new CopyWebpackPlugin({ patterns: [ { from: "src/manifest.json", transform: function (content, _path) { const manifest = JSON.parse( content.toString().replace(/\[version\]/g, process.env.npm_package_version), ) return Buffer.from( JSON.stringify({ ...manifest, permissions: compact([ ...manifest.permissions, env.NODE_ENV === "development" ? "http://*.mocoapp.localhost/*" : null, ]), options_ui: { ...manifest.options_ui, browser_style: true, }, browser_specific_settings: { gecko: { id: process.env.APPLICATION_ID || `{${uuidv4()}}`, }, }, description: process.env.npm_package_description, version: process.env.npm_package_version, }), ) }, }, ], }), ) return config }