npm-upgrade-browser
Version:
browser UI for viewing changelogs and upgrading packages installed in your project
60 lines (41 loc) • 1.91 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _path = _interopRequireDefault(require("path"));
var _express = _interopRequireDefault(require("express"));
var _apolloServer = _interopRequireDefault(require("./graphql/apolloServer"));
var _portscanner = _interopRequireDefault(require("portscanner"));
var _open = _interopRequireDefault(require("open"));
var _util = require("util");
var _chokidar = _interopRequireDefault(require("chokidar"));
var _projectDir = _interopRequireDefault(require("./projectDir"));
const app = (0, _express.default)();
const GRAPHQL_PATH = '/graphql';
_apolloServer.default.applyMiddleware({
app,
path: GRAPHQL_PATH
});
app.use('/assets', _express.default.static(_path.default.resolve(__dirname, '..', '..', 'assets'))); // server-side rendering
app.get('*', (req, res) => {
require('./ssr/serverSideRender').default(req, res);
}); // preload this instead of waiting for the first request
// (the require weirdness here is to enable server-side hot-reloading)
require('./ssr/serverSideRender');
async function start() {
const port = parseInt(process.env.PORT) || (await (0, _util.promisify)(cb => _portscanner.default.findAPortNotInUse(3000, 4000, '127.0.0.1', cb))());
app.listen(port);
console.log(`npm-upgrade-browser is running on port ${port}`); // eslint-disable-line no-console
if (process.send) process.send({
listening: true
});
if (process.env.NODE_ENV !== 'development') (0, _open.default)(`http://localhost:${port}`);
_chokidar.default.watch(['package.json', 'node_modules/**/package.json'], {
cwd: _projectDir.default
}).on('all', (event, file) => {
delete require.cache[_path.default.resolve(_projectDir.default, file)];
});
}
start().catch(error => {
console.error(error.stack); // eslint-disable-line no-console
process.exit(1);
});
;