const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const TerserJSPlugin = require('terser-webpack-plugin');
const path = require('path');

const srcPath = path.resolve(__dirname, 'src');
const elmPath = path.join(srcPath, "elm");
const dstPath = path.resolve(__dirname, 'dist');

module.exports = (env, argv) => ({
  entry: './src/main.ts',
  output: {
    path: dstPath,
    filename: 'bundle.js',
  },
  resolve: {
    extensions: ['.ts', '.js']
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: 'src/index.html',
      favicon: 'src/favicon.ico',
    }),
    new MiniCssExtractPlugin({
      filename: 'style.css',
    }),
  ],
  optimization: {
    minimizer: [
      new TerserJSPlugin({}),
      new OptimizeCSSAssetsPlugin({}),
    ],
  },
  module: {
    rules: [
      {
        test: /\.ts$/,
        include: srcPath,
        use: 'ts-loader',
      },
      {
        test: /\.elm$/,
        include: elmPath,
        use: {
          loader: 'elm-webpack-loader',
          options: {
            cwd: elmPath,
            debug: argv.mode == "development",
            optimize: argv.mode == "production",
          }
        }
      },
      {
        test: /\.css$/,
        use: [
          MiniCssExtractPlugin.loader,
          'css-loader',
        ],
      },
    ],
  },
});
