stopper.js 517 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/**
 * Stopper middleware is responsible for communicating with `karma stop`.
 */

const log = require('../logger').create('middleware:stopper')

function createStopperMiddleware (urlRoot) {
  return function (request, response, next) {
    if (request.url !== urlRoot + 'stop') return next()
    response.writeHead(200)
    log.info('Stopping server')
    response.end('OK')
    process.kill(process.pid, 'SIGINT')
  }
}

createStopperMiddleware.$inject = ['config.urlRoot']
exports.create = createStopperMiddleware