| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | const path = require('path');
const webpack = require('webpack');
if(!process.env['DATA_HASH']){
  console.log("Environment DATA_HASH not set")
  process.exit(1)
}else{
  console.log(`Webpacking Gateway with DATA_HASH=${process.env['DATA_HASH']}`)
}
module.exports = {
  mode: 'production',
  target: "web",
  entry: path.resolve(__dirname, 'src', 'Gateway.ts'),
  output: {
    path: path.resolve(__dirname, 'build', 'gateway'),
    filename: '[name].js'
  },
  plugins: [
    new webpack.ProvidePlugin({
      process: 'process/browser',
    }),
    //new BundleAnalyzerPlugin(),
    //new webpack.IgnorePlugin(/.*ripple-lib.*/),
    new webpack.DefinePlugin({
      DATA_HASH: JSON.stringify(process.env['DATA_HASH'])
    })
  ],
  resolve: {
    // Add `.ts` and `.tsx` as a resolvable extension.
    extensions: [".ts", ".tsx", ".js"],
    fallback: {
      "fs": false,
      "tls": false,
      "net": false,
      "path": false,
      "zlib": false,
      "http": false,
      "https": false,
      "stream": false,
      "crypto": false,
      "Buffer": require.resolve('buffer'),
      "crypto-browserify": require.resolve('crypto-browserify'),
    }
  },
  externals: {
    'lodash': ['_'],
    'xrpl': ['xrpl'],
    'ripple-lib': ['ripple'],
    'RippleAPI': ['ripple-lib', 'RippleAPI'],
    'bn.js': ['BN'],
    'Buffer': ['buffer'],
    'buffer': ['buffer'],
    'zlib': ['browserifyZlib']
  },
  module: {
    rules: [
      { test: /\.ts?$/, loader: "ts-loader", }
    ]
  },
}
 |