UNPKG

atom-nuclide

Version:

A unified developer experience for web and mobile development, built as a suite of features on top of Atom to provide hackability and the support of an active community.

98 lines (78 loc) 2.53 kB
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /* * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the license found in the LICENSE file in * the root directory of this source tree. */ var _https2; function _https() { return _https2 = _interopRequireDefault(require('https')); } var _http2; function _http() { return _http2 = _interopRequireDefault(require('http')); } var _fs2; function _fs() { return _fs2 = _interopRequireDefault(require('fs')); } var _url2; function _url() { return _url2 = _interopRequireDefault(require('url')); } // Set the initial version by reading from the file. var json = JSON.parse((_fs2 || _fs()).default.readFileSync(require.resolve('./package.json'), 'utf8')); var version = /^(\d+)\.(\d+)\.(\d+)(?:-([a-z0-9.-]+))?$/.exec(json.version)[2]; function processArgs() { var args = process.argv.slice(2); var processedArgs = {}; args.forEach(function (argument, index) { if (index % 2 !== 0) { processedArgs[args[index - 1].slice(2)] = argument; } }); return processedArgs; } function startServer(args) { var _webServer = undefined; if (args.key && args.cert && args.ca) { var webServerOptions = { key: (_fs2 || _fs()).default.readFileSync(args.key), cert: (_fs2 || _fs()).default.readFileSync(args.cert), ca: (_fs2 || _fs()).default.readFileSync(args.ca), requestCert: true, rejectUnauthorized: true }; _webServer = (_https2 || _https()).default.createServer(webServerOptions, handleRequest); // eslint-disable-next-line no-console console.log('running in secure mode'); } else { _webServer = (_http2 || _http()).default.createServer(handleRequest); } _webServer.on('listening', function () { // eslint-disable-next-line no-console console.log('listening on port ' + args.port); }); _webServer.listen(args.port || 8084, '::'); } function handleRequest(request, response) { var pathname = (_url2 || _url()).default.parse(request.url, false).pathname; switch (pathname) { case '/heartbeat': handleVersion(request, response); break; default: response.writeHead(500); response.write('This mock server does not understand that command'); response.end(); break; } } function handleVersion(request, response) { response.writeHead(200); response.write(version); response.end(); } startServer(processArgs());