// craco.config.js
const TerserPlugin = require("terser-webpack-plugin");
const CracoLessPlugin = require("craco-less");
const SentryWebpackPlugin = require("@sentry/webpack-plugin");

module.exports = {
  plugins: [
    {
      plugin: SentryWebpackPlugin,
      options: {
        // sentry-cli configuration
        authToken:
          "6b45b028a02342db97a9a2f92c0959058665443d379d4a3a876430009e744260",
        org: "snapt-software",
        project: "imexonline",
        release: process.env.REACT_APP_GIT_SHA,

        // webpack-specific configuration
        include: ".",
        ignore: ["node_modules", "webpack.config.js"],
      },
    },
    {
      plugin: CracoLessPlugin,
      options: {
        lessLoaderOptions: {
          lessOptions: {
            modifyVars: {
              ...(process.env.NODE_ENV === "development"
                ? { "@primary-color": "#a51d1d" }
                : {
                    //"@primary-color": "#1DA57A"
                  }),
              // "@primary-color": " #1890ff", // primary color for all components
              // "@link-color": "#1890ff", // link color
              // "@success-color": "#52c41a", // success state color
              // "@warning-color": "#faad14", // warning state color
              // "@error-color": "#f5222d", // error state color
              // "@font-size-base": "14px", // major text font size
              // " @heading-color": "rgba(0, 0, 0, 0.85)", // heading text color
              // "@text-color": "rgba(0, 0, 0, 0.65)", // major text color
              // "@text-color-secondary": "rgba(0, 0, 0, 0.45)", // secondary text color
              // "@disabled-color": "rgba(0, 0, 0, 0.25)", // disable state color
              // "@border-radius-base": "2px", // major border radius
              // "@border-color-base": "#d9d9d9", // major border color
              // "@box-shadow-base":
              //   "0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08),0 9px 28px 8px rgba(0, 0, 0, 0.05); // major shadow for layers }",
            },
            javascriptEnabled: true,
          },
        },
      },
    },
  ],
  webpack: {
    configure: (webpackConfig) => ({
      ...webpackConfig,
      optimization: {
        ...webpackConfig.optimization,
        // Workaround for CircleCI bug caused by the number of CPUs shown
        // https://github.com/facebook/create-react-app/issues/8320
        minimizer: webpackConfig.optimization.minimizer.map((item) => {
          if (item instanceof TerserPlugin) {
            item.options.parallel = 2;
          }

          return item;
        }),
      },
    }),
  },
  devtool: "source-map",
};
