UNPKG

@sentry/wizard

Version:

Sentry wizard helping you to configure your project

65 lines 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SentryProjectSelector = void 0; const inquirer_1 = require("inquirer"); const BaseStep_1 = require("./BaseStep"); function sleep(n) { return new Promise((resolve) => setTimeout(resolve, n)); } class SentryProjectSelector extends BaseStep_1.BaseStep { async emit(answers) { this.debug(answers); if (!answers.wizard) { // we skip this completely because the wizard wasn't running return {}; } if (!answers.wizard.projects || answers.wizard.projects.length === 0) { throw new Error('No Projects found. Please create a new Project in Sentry and try again.'); } let selectedProject = null; if (answers.wizard.projects.length === 1) { selectedProject = { selectedProject: answers.wizard.projects[0], }; // the wizard CLI closes too quickly when we skip the prompt // as it will cause the UI to be stuck saying Waiting for wizard to connect await sleep(1000); } else { selectedProject = await (0, inquirer_1.prompt)([ { choices: answers.wizard.projects.map((project) => { return { name: `${project.organization?.name ?? ''} / ${project.slug}`, value: project, }; }), message: 'Please select your project in Sentry:', name: 'selectedProject', type: 'list', }, ]); } const dsn = selectedProject?.selectedProject.keys[0]?.dsn ?? { public: null, private: null, }; return { config: { auth: { token: answers.wizard.apiKeys?.token ?? null, }, dsn, organization: { slug: selectedProject?.selectedProject.organization?.slug ?? null, }, project: { id: selectedProject?.selectedProject.id ?? null, slug: selectedProject?.selectedProject.slug ?? null, }, }, }; } } exports.SentryProjectSelector = SentryProjectSelector; //# sourceMappingURL=SentryProjectSelector.js.map