mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-02 18:11:04 +08:00
40 lines
992 B
JavaScript
40 lines
992 B
JavaScript
const http = require('http')
|
|
const cfg = require('./config')
|
|
const logger = require('./logger')
|
|
const helper = require('./helper')
|
|
|
|
exports.stop = function (config, done) {
|
|
config = config || {}
|
|
logger.setupFromConfig(config)
|
|
const log = logger.create('stopper')
|
|
done = helper.isFunction(done) ? done : process.exit
|
|
config = cfg.parseConfig(config.configFile, config)
|
|
|
|
const request = http.request({
|
|
hostname: config.hostname,
|
|
path: config.urlRoot + 'stop',
|
|
port: config.port,
|
|
method: 'GET'
|
|
})
|
|
|
|
request.on('response', function (response) {
|
|
if (response.statusCode === 200) {
|
|
log.info('Server stopped.')
|
|
done(0)
|
|
} else {
|
|
log.error(`Server returned status code: ${response.statusCode}`)
|
|
done(1)
|
|
}
|
|
})
|
|
|
|
request.on('error', function (e) {
|
|
if (e.code === 'ECONNREFUSED') {
|
|
log.error(`There is no server listening on port ${config.port}`)
|
|
done(1, e.code)
|
|
} else {
|
|
throw e
|
|
}
|
|
})
|
|
request.end()
|
|
}
|