const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')

// module.exports = [{
module.exports = (env, args) => {
  const production = args.mode === 'production'
  return {
    mode: args.mode || 'development',
    entry: './lib/index.js',
    output: {
      path: path.join(__dirname, '/dist/'),
      publicPath: '',
      filename: production ? 'solid-ui.min.js' : 'solid-ui.js',
      library: 'solid-ui',
      libraryTarget: 'umd'
    },
    plugins: [
      new HtmlWebpackPlugin() // plugin that creates in /lib the index.html that contains the webpack-bundle.js
    ],
    externals: {
      fs: 'null',
      'node-fetch': 'fetch',
      'isomorphic-fetch': 'fetch',
      xmldom: 'window',
      'text-encoding': 'TextEncoder',
      'whatwg-url': 'window',
      '@trust/webcrypto': 'crypto'
    },
    resolve: {
      fallback: { path: false }
    },
    devServer: {
      static: './dist'
    },
    devtool: 'source-map',
    module: {
      rules: [{
        test: /\.sparql$/i,
        type: 'asset/source'
      },
      {
        test: /\.ttl$/i,
        type: 'asset/source'
      }
      ]
    }
  }
}
