aboutsummaryrefslogblamecommitdiffstats
path: root/packages/testnet-faucets/gulpfile.js
blob: 773faf33a72f45f4dfee0c575e73fbd0a53dda1e (plain) (tree)
1
2
3
4
5
6
7
8
9




                                   
                                                        


                   
                                                       


































                                                                                


                                                              











































                                                     
const gulp = require('gulp');
const nodemon = require('nodemon');
const path = require('path');
const webpack = require('webpack');
const fs = require('fs');
const nodeExternals = require('webpack-node-externals');

const config = {
    target: 'node',
    entry: [path.join(__dirname, '/src/ts/server.ts')],
    output: {
        path: path.join(__dirname, '/bin'),
        filename: 'server.js',
    },
    devtool: 'source-map',
    resolve: {
        modules: [
            path.join(__dirname, '/src/ts'),
            'node_modules',
        ],
        extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
        alias: {
            ts: path.join(__dirname, '/src/ts'),
            contract_artifacts: path.join(__dirname, '/src/contract_artifacts'),
        },
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                loader: 'source-map-loader',
            },
            {
                test: /\.tsx?$/,
                loader: 'awesome-typescript-loader',
            },
        ],
    },
    plugins: [
        new webpack.BannerPlugin({
            banner: 'require("source-map-support").install();',
            raw: true,
            entryOnly: false,
        }),
    ],
    externals: nodeExternals({
        modulesDir: path.join(__dirname, '../../node_modules')
    }),
    watchOptions: {
        ignored: /bin|node_modules|transpiled/
    },
};

gulp.task('build', function(done) {
    webpack(config).run(onBuild(done));
});

gulp.task('watch', function() {
    webpack(config).watch(100, function(err, stats) {
        onBuild()(err, stats);
        nodemon.restart();
    });
});

gulp.task('run', ['watch'], function() {
    nodemon({
        execMap: {
            js: 'node',
        },
        script: path.join(__dirname, 'bin/server'),
        ignore: ['*'],
        watch: ['foo/'],
        ext: 'noop',
    }).on('restart', function() {
        console.log('Restarted!');
    });
});

function onBuild(done) {
  return function(err, stats) {
    if(err) {
      console.log('Error', err);
    }
    else {
      console.log(stats.toString());
    }

    if(done) {
      done();
    }
  }
}