text: var wallabyWebpack = require('wallaby-webpack');
  var path = require('path');
  
  var compilerOptions = Object.assign(
    require('./tsconfig.wallaby.spec.json').compilerOptions);
  
  compilerOptions.module = 'CommonJs';
  
  module.exports = function (wallaby) {
  
    var webpackPostprocessor = wallabyWebpack({
      entryPatterns: [
        'src/wallabyTest.js',
        'src/**/*spec.js'
      ],
  
      module: {
        rules: [
          {test: /\.css$/, loader: ['raw-loader']},
          {test: /\.html$/, loader: 'raw-loader'},
          {test: /\.ts$/, loader: '@ngtools/webpack', include: /node_modules/, query: {tsConfigPath: 'tsconfig.json'}},
          {test: /\.js$/, loader: 'angular2-template-loader', exclude: /node_modules/},
          {test: /\.json$/, loader: 'json-loader'},
          {test: /\.styl$/, loaders: ['raw-loader', 'stylus-loader']},
          {test: /\.less$/, loaders: ['raw-loader', 'less-loader']},
          {test: /\.scss$|\.sass$/, loaders: ['raw-loader', 'sass-loader']},
          {test: /\.(jpg|png)$/, loader: 'url-loader?limit=128000'}
        ]
      },
  
      resolve: {
        extensions: ['.js', '.ts'],
        modules: [
          path.join(wallaby.projectCacheDir, 'src/lib'),
          path.join(wallaby.projectCacheDir, 'src'),
          path.join(wallaby.localProjectDir, '../../node_modules'),
          'node_modules'
        ]
      },
      node: {
        fs: 'empty',
        net: 'empty',
        tls: 'empty',
        dns: 'empty'
      }
    });
  
    return {
      files: [
        {pattern: 'src/**/*.+(ts|css|less|scss|sass|styl|html|json|svg)', load: false},
        {pattern: 'src/**/*.d.ts', ignore: true},
        {pattern: 'src/**/*spec.ts', ignore: true}
      ],
  
      tests: [
        {pattern: 'src/**/*spec.ts', load: false},
        {pattern: 'src/**/*e2e-spec.ts', ignore: true}
      ],
  
      testFramework: 'jasmine',
  
      compilers: {
        '**/*.ts': wallaby.compilers.typeScript(compilerOptions)
      },
  
      middleware: function (app, express) {
        var path = require('path');
        app.use('/favicon.ico', express.static(path.join(__dirname, 'src/favicon.ico')));
        app.use('/assets', express.static(path.join(__dirname, 'src/assets')));
      },
  
      env: {
        kind: 'electron'
      },
  
      postprocessor: webpackPostprocessor,
  
      setup: function () {
        window.__moduleBundler.loadTests();
      },
      filesWithNoCoverageCalculated: ['src/*.ts', 'src/**/*.module.ts'],
  
      debug: true
    };
  };
  