const commonBuilder = require('pulito');
const { resolve } = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = (env, argv) => {
  const config = commonBuilder(env, argv, __dirname);
  // Make all CSS/JS files appear at the /res location.
  config.output.publicPath = '/res/';
  config.plugins.push(
    new CopyWebpackPlugin([
      { from: resolve(__dirname, 'build/canvaskit/canvaskit.wasm') },
      { from: resolve(__dirname, 'build/pathkit/pathkit.wasm') },
      { from: resolve(__dirname, 'node_modules/@webcomponents/custom-elements/custom-elements.min.js') },
    ]),
  );
  config.node = {
    fs: 'empty',
  };
  return config;
};
