creevey
Version:
Cross-browser screenshot testing tool for Storybook with fancy UI Runner
71 lines (52 loc) • 2.02 kB
JavaScript
"use strict";
var _cluster = _interopRequireDefault(require("cluster"));
var _minimist = _interopRequireDefault(require("minimist"));
var _server = _interopRequireDefault(require("./server"));
var _types = require("./types");
var _messages = require("./server/messages");
var _utils = require("./server/utils");
var _loglevel = require("loglevel");
var _logger = require("./server/logger");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function shutdown(reason) {
var _reason$stack;
if (_utils.isShuttingDown.current) return;
const error = reason instanceof Error ? (_reason$stack = reason.stack) !== null && _reason$stack !== void 0 ? _reason$stack : reason.message : reason;
_logger.logger.error(error);
process.exitCode = -1;
if (_cluster.default.isWorker) (0, _messages.emitWorkerMessage)({
type: 'error',
payload: {
error
}
});
if (_cluster.default.isMaster && !_utils.isShuttingDown.current) void (0, _utils.shutdownWorkers)();
}
process.on('uncaughtException', shutdown);
process.on('unhandledRejection', shutdown);
if (_cluster.default.isWorker) process.on('SIGINT', _types.noop);
if (_cluster.default.isMaster) process.on('SIGINT', _messages.emitShutdownMessage);
const argv = (0, _minimist.default)(process.argv.slice(2), {
string: ['browser', 'config', 'reporter', 'reportDir', 'screenDir'],
boolean: ['debug', 'ui', 'saveReport', 'webpack', 'tests'],
default: {
port: 3000,
saveReport: true
},
alias: {
port: 'p',
config: 'c',
debug: 'd',
update: 'u',
extract: 'e'
}
}); // @ts-expect-error: define log level for storybook
global.LOGLEVEL = argv.debug ? 'debug' : 'warn';
if (argv.debug) {
_logger.logger.setDefaultLevel(_loglevel.levels.DEBUG);
(0, _loglevel.setDefaultLevel)(_loglevel.levels.DEBUG);
} else {
_logger.logger.setDefaultLevel(_loglevel.levels.INFO);
(0, _loglevel.setDefaultLevel)(_loglevel.levels.INFO);
}
void (0, _server.default)(argv);