jest-html
Version:
Preview Jest snapshots right in your browser
74 lines (51 loc) • 2.78 kB
JavaScript
require('babel-polyfill');
require('storyboard-preset-console');
var _storyboard = require('storyboard');
var _commander = require('commander');
var _commander2 = _interopRequireDefault(_commander);
var _opn = require('opn');
var _opn2 = _interopRequireDefault(_opn);
var _httpServer = require('./httpServer');
var httpServer = _interopRequireWildcard(_httpServer);
var _extractor = require('./extractor');
var extractor = _interopRequireWildcard(_extractor);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _storyboard.config)({ filter: '*:INFO' });
var pkg = require('../../package.json');
var DEFAULT_PORT = 8080;
var DEFAULT_SNAPSHOT_PATTERNS = '**/*.snap,!node_modules/**/*';
var DEFAULT_CSS_PATTERNS = 'snapshot.css';
process.on('SIGINT', function () {
_storyboard.mainStory.debug('startup', 'CTRL-C received');
process.exit(0);
});
// ==============================================
// Main
// ==============================================
_commander2.default.version(pkg.version).option('-f --snapshot-patterns [globs]', 'Glob patterns for snapshot files (comma-separated)', DEFAULT_SNAPSHOT_PATTERNS).option('-c --css-patterns [globs]', 'Glob patterns for CSS stylesheets ' + 'that will be used for ALL snapshots (comma-separated)', DEFAULT_CSS_PATTERNS).option('-p, --port [port]', 'Initial port number to use ' + '(if unavailable, the next available one will be used)', Number, DEFAULT_PORT).option('--no-watch', 'Do not watch initially detected snapshot and css files').parse(process.argv);
var cliOptions = _commander2.default.opts();
cliOptions.snapshotPatterns = cliOptions.snapshotPatterns.split(/\s*,\s*/);
cliOptions.cssPatterns = cliOptions.cssPatterns.split(/\s*,\s*/);
_storyboard.mainStory.info('startup', 'CLI options:', { attach: cliOptions });
var finalPort = void 0;
var socketioServer = void 0;
var httpInit = function httpInit() {
return httpServer.init({ port: cliOptions.port }).then(function (port) {
finalPort = port;
socketioServer = httpServer.getSocketioServer();
});
};
var extractorInit = function extractorInit() {
extractor.configure({
snapshotPatterns: cliOptions.snapshotPatterns,
cssPatterns: cliOptions.cssPatterns,
watch: cliOptions.watch,
socketioServer: socketioServer
});
return extractor.start();
};
Promise.resolve().then(httpInit).then(extractorInit).then(function () {
(0, _opn2.default)('http://localhost:' + finalPort + '/');
});
;