eHealthAfrica/direct-delivery-dashboard

View on GitHub
gulp/server.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict'

var path = require('path')
var gulp = require('gulp')
var conf = require('./conf')

var browserSync = require('browser-sync')
var browserSyncSpa = require('browser-sync-spa')

var util = require('util')

function browserSyncInit (baseDir, browser) {
  browser = browser === undefined ? 'default' : browser

  var routes = null
  if (baseDir === conf.paths.src || util.isArray(baseDir) && baseDir.indexOf(conf.paths.src) !== -1) {
    routes = {
      '/bower_components': 'bower_components'
    }
  }

  var server = {
    baseDir: baseDir,
    routes: routes
  }

  browserSync.instance = browserSync.init({
    startPath: '/',
    server: server,
    browser: browser,
    notify: false
  })
}

browserSync.use(browserSyncSpa({
  selector: '[ng-app]' // Only needed for angular apps
}))

gulp.task('serve', ['watch'], function () {
  browserSyncInit([path.join(conf.paths.tmp, '/serve'), conf.paths.src])
})

gulp.task('serve:dist', ['build'], function () {
  browserSyncInit(conf.paths.dist)
})

gulp.task('serve:e2e', ['inject'], function () {
  browserSyncInit([conf.paths.tmp + '/serve', conf.paths.src], [])
})

gulp.task('serve:e2e-dist', ['build'], function () {
  browserSyncInit(conf.paths.dist, [])
})