creevey
Version:
Cross-browser screenshot testing tool for Storybook with fancy UI Runner
35 lines • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStorybookUrl = getStorybookUrl;
exports.tryAutorunStorybook = tryAutorunStorybook;
exports.checkIsStorybookConnected = checkIsStorybookConnected;
const utils_1 = require("../utils");
const logger_1 = require("../logger");
const node_child_process_1 = require("node:child_process");
const RESPONSE_FAST_CHECK_TIMEOUT_MS = 3000;
const RESPONSE_CHECK_TIMEOUT_MS = 10000;
const RESPONSE_CHECK_INTERVAL_MS = 200;
async function getStorybookUrl({ storybookUrl, resolveStorybookUrl }) {
return resolveStorybookUrl ? resolveStorybookUrl() : storybookUrl;
}
async function tryAutorunStorybook(url, storybookAutorunCmd) {
try {
await (0, utils_1.waitOnUrl)(url, RESPONSE_FAST_CHECK_TIMEOUT_MS, RESPONSE_CHECK_INTERVAL_MS);
}
catch {
(0, logger_1.logger)().info(`Trying start Storybook automatically via \`${storybookAutorunCmd}\` from config...`);
(0, node_child_process_1.exec)(storybookAutorunCmd);
}
}
async function checkIsStorybookConnected(url) {
try {
await (0, utils_1.waitOnUrl)(url, RESPONSE_CHECK_TIMEOUT_MS, RESPONSE_CHECK_INTERVAL_MS);
return true;
}
catch (reason) {
const error = reason instanceof Error ? (reason.stack ?? reason.message) : reason;
(0, logger_1.logger)().error(error);
return false;
}
}
//# sourceMappingURL=connection.js.map