@sentry/wizard
Version:
Sentry wizard helping you to configure your project
50 lines • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WaitForSentry = void 0;
const BottomBar_1 = require("../Helper/BottomBar");
const Wizard_1 = require("../Helper/Wizard");
const BaseStep_1 = require("./BaseStep");
class WaitForSentry extends BaseStep_1.BaseStep {
async emit(answers) {
if (!(await (0, Wizard_1.getCurrentIntegration)(answers).shouldEmit(answers))) {
return {};
}
if (this._argv.skipConnect) {
return {};
}
if (!answers.hash) {
throw new Error(`No wizard hash found ${answers}`);
}
return new Promise((resolve, _reject) => {
this.debug(answers);
BottomBar_1.BottomBar.show('Waiting for Sentry...');
const baseUrl = this._argv.url;
const pingSentry = async () => {
const response = await fetch(`${baseUrl}api/0/wizard/${answers.hash}/`);
this.debug('Polling received data');
if (!response.ok) {
throw new Error(`Received status ${response.status} ${response.statusText}`);
}
const data = await response.json();
// Delete the wizard hash since we were able to fetch the data
await fetch(`${baseUrl}api/0/wizard/${answers.hash}/`, {
method: 'DELETE',
});
BottomBar_1.BottomBar.hide();
this.debug('Polling Success!');
resolve({ wizard: data });
};
const poll = () => {
this.debug(`Polling: ${baseUrl}api/0/wizard/${answers.hash}/`);
pingSentry().catch((e) => {
this.debug('Polling received:');
this.debug(e);
setTimeout(poll, 1000);
});
};
poll();
});
}
}
exports.WaitForSentry = WaitForSentry;
//# sourceMappingURL=WaitForSentry.js.map