'use strict';
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
let run = (() => {
var _ref = (0, _asyncToGenerator3.default)(function* () {
try {
const projectDir = process.argv[2];
if (!projectDir) {
throw new Error('No project dir specified.\nUsage: yarn dev <project-dir>');
}
const app = (0, _next2.default)({ dev: true });
yield app.prepare();
const server = (0, _express2.default)();
const authenticationContext = yield (0, _DevToolsServer.createAuthenticationContextAsync)({ port: PORT });
server.get('/dev-tools-info', authenticationContext.requestHandler);
server.get('/graphiql', (0, _apolloServerExpress.graphiqlExpress)({
endpointURL: authenticationContext.webSocketGraphQLUrl,
websocketConnectionParams: {
clientAuthenticationToken: authenticationContext.clientAuthenticationToken
}
}));
server.get('*', app.getRequestHandler());
const httpServer = _http2.default.createServer(server);
yield new _promise2.default(function (resolve, reject) {
httpServer.once('error', reject);
httpServer.once('listening', resolve);
httpServer.listen(PORT, 'localhost');
});
(0, _DevToolsServer.startGraphQLServer)(projectDir, httpServer, authenticationContext);
console.log('Starting project...');
yield _xdl.Project.startAsync(projectDir);
let url = `http://localhost:${PORT}`;
console.log(`Development server running at ${url}`);
(0, _openBrowser2.default)(url);
} catch (error) {
console.error(error);
process.exit(1);
}
});
return function run() {
return _ref.apply(this, arguments);
};
})();
var _apolloServerExpress = require('apollo-server-express');
var _xdl = require('@expo/xdl');
var _express = require('express');
var _express2 = _interopRequireDefault(_express);
var _http = require('http');
var _http2 = _interopRequireDefault(_http);
var _next = require('next');
var _next2 = _interopRequireDefault(_next);
var _openBrowser = require('react-dev-utils/openBrowser');
var _openBrowser2 = _interopRequireDefault(_openBrowser);
var _DevToolsServer = require('./DevToolsServer');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const PORT = 3333;
run();