react-native/local-cli/util/isPackagerRunning.js

37 lines
1.0 KiB
JavaScript
Raw Normal View History

/**
* Copyright (c) 2015-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
'use strict';
const fetch = require('node-fetch');
/**
* Indicates whether or not the packager is running. It returns a promise that
* when fulfilled can returns one out of these possible values:
* - `running`: the packager is running
* - `not_running`: the packager nor any process is running on the expected
* port.
* - `unrecognized`: one other process is running on the port we expect the
* packager to be running.
*/
function isPackagerRunning(packagerPort = process.env.RCT_METRO_PORT || 8081) {
return fetch(`http://localhost:${packagerPort}/status`).then(
res =>
res
.text()
.then(
body =>
body === 'packager-status:running' ? 'running' : 'unrecognized',
),
() => 'not_running',
);
}
module.exports = isPackagerRunning;