UNPKG

npm-upgrade-browser

Version:

browser UI for viewing changelogs and upgrading packages installed in your project

60 lines (41 loc) 1.91 kB
#!/usr/bin/env node "use strict"; 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); });