Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function killServers(exitCode) {
logger.info('Cleaning up running servers');
if (seleniumServer) {
logger.info('Closing selenium server');
seleniumServer.kill();
seleniumServer = null;
}
// Catch protractor's "Kitchen Sink" error.
if (exitCode === 199) {
logger.warn('Supressing protractor\'s "kitchen sink" error 199');
exitCode = 0;
}
server.stop();
logger.info(`Execution Time: ${(new Date().getTime() - startTime) / 1000} seconds`);
logger.info(`Exiting process with ${exitCode}`);
process.exit(exitCode || 0);
}
logger.info('Cleaning up running servers');
if (seleniumServer) {
logger.info('Closing selenium server');
seleniumServer.kill();
seleniumServer = null;
}
// Catch protractor's "Kitchen Sink" error.
if (exitCode === 199) {
logger.warn('Supressing protractor\'s "kitchen sink" error 199');
exitCode = 0;
}
server.stop();
logger.info(`Execution Time: ${(new Date().getTime() - start) / 1000} seconds`);
logger.info(`Exiting process with ${exitCode}`);
process.exit(exitCode || 0);
}
logger.info('Cleaning up running servers');
if (seleniumServer) {
logger.info('Closing selenium server');
seleniumServer.kill();
seleniumServer = null;
}
// Catch protractor's "Kitchen Sink" error.
if (exitCode === 199) {
logger.warn('Supressing protractor\'s "kitchen sink" error 199');
exitCode = 0;
}
server.stop();
logger.info(`Execution Time: ${(new Date().getTime() - startTime) / 1000} seconds`);
logger.info(`Exiting process with ${exitCode}`);
process.exit(exitCode || 0);
}
function killServers(exitCode) {
logger.info('Cleaning up running servers');
if (seleniumServer) {
logger.info('Closing selenium server');
seleniumServer.kill();
seleniumServer = null;
}
// Catch protractor's "Kitchen Sink" error.
if (exitCode === 199) {
logger.warn('Supressing protractor\'s "kitchen sink" error 199');
exitCode = 0;
}
server.stop();
logger.info(`Execution Time: ${(new Date().getTime() - start) / 1000} seconds`);
logger.info(`Exiting process with ${exitCode}`);
process.exit(exitCode || 0);
}
function spawnProtractor(configPath, chunks, port, skyPagesConfig) {
logger.info('Running Protractor');
protractorLauncher.init(configPath, {
params: {
localUrl: `https://localhost:${port}`,
chunks: chunks,
skyPagesConfig: skyPagesConfig
}
});
process.on('exit', killServers);
}
server.listen(port, 'localhost', () => {
logger.info('Web server running.');
resolve(port);
});
})
selenium.install({ logger: logger.info }, () => {
logger.info('Selenium installed. Starting...');
selenium.start((err, child) => {
if (err) {
reject(err);
return;
}
seleniumServer = child;
logger.info('Selenium server is ready.');
resolve();
});
});
logger.info(`Exposing static directory: ${dist}`);
app.use(express.static(dist));
if (root) {
logger.info(`Mapping server requests from ${root} to ${dist}`);
app.use(root, express.static(dist));
}
const options = {
cert: fs.readFileSync(path.resolve(__dirname, '../../ssl/server.crt')),
key: fs.readFileSync(path.resolve(__dirname, '../../ssl/server.key'))
};
server = https.createServer(options, app);
server.on('error', reject);
logger.info('Requesting open port...');
portfinder
.getPortPromise()
.then(port => {
logger.info(`Open port found: ${port}`);
logger.info('Starting web server...');
server.listen(port, 'localhost', () => {
logger.info('Web server running.');
resolve(port);
});
})
.catch(reject);
});
}
function spawnBuild(argv, skyPagesConfig, webpack) {
if (argv.build === false) {
logger.info('Skipping build step');
const file = 'dist/metadata.json';
if (!fs.existsSync(file)) {
logger.info(`Unable to skip build step. "${file}" not found.`);
} else {
return Promise.resolve({
metadata: fs.readJsonSync(file)
});
}
}
return build(argv, skyPagesConfig, webpack)
.then(stats => stats.toJson().chunks);
}