const webpack = require('webpack');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
const CopyPlugin = require("copy-webpack-plugin");

const isDevServer = process.env.WEBPACK_SERVE;
console.log("Dev server is " + isDevServer);
var host;
if (isDevServer){
  //ensure no trailing /
  host = 'http://192.168.251.37';
} else {
  host = '';
}

module.exports = {
  mode: "development",
  entry: ['./src/main.ts'],
  devtool: 'inline-source-map',
  plugins: [
    new webpack.DefinePlugin({
      PUBLIC_URL: JSON.stringify(host),
    }),
    new webpack.EnvironmentPlugin({
      redirect: 'true'
    }),
    new HtmlWebpackPlugin({
      alwaysWriteToDisk: true,
      title: "PlantCtrl",
    }),
    new HtmlWebpackHarddiskPlugin(),
  ],
  module: {
    rules: [
      {
      test: /\.html$/,
      type: 'asset/source',
      },
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/,
      }
    ]
  },
  resolve: {
    extensions: ['.tsx', '.ts', '.js', '.html'],
  },
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, '../src/webserver'),
  },
  devServer: {
  }
};