squint-cli
Version:
Squint makes visual reviews of web app releases easy
48 lines (47 loc) • 1.59 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const puppeteer_1 = __importDefault(require("puppeteer"));
const lodash_1 = __importDefault(require("lodash"));
const config_1 = require("./config");
const puppeteer_2 = require("./puppeteer");
const commands_1 = require("./commands");
const cli_1 = require("./cli");
async function main() {
let config;
try {
config = config_1.parseConfig();
}
catch (e) {
console.error(e);
process.exit(2);
}
const browser = await puppeteer_1.default[config.puppeteerLaunchMode.type](config.puppeteerLaunchMode.options);
const pagePool = puppeteer_2.createPagePool(browser, config);
if (config.command === 'crawl') {
await commands_1.crawlCommand(pagePool, config);
}
else if (config.command === 'compare') {
await commands_1.compareCommand(pagePool, config);
}
else if (config.command === 'screenshot') {
await commands_1.screenshotCommand(pagePool, config);
}
else if (lodash_1.default.isUndefined(config.command)) {
console.error(cli_1.formatHelp(config_1.defaultConfig));
}
else {
console.error(`Unknown command: ${config.command}`);
process.exit(1);
}
if (config.puppeteerLaunchMode.type === 'launch') {
await browser.close();
}
}
main().catch((err) => {
console.error(err);
process.exit(2);
});