1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const inquirer_1 = require("inquirer");
|
4 | const validator_1 = require("validator");
|
5 | const api_1 = require("./api");
|
6 | async function disambiguate(heroku, pipelineIDOrName) {
|
7 | let pipeline;
|
8 | if (validator_1.isUUID(pipelineIDOrName)) {
|
9 | const result = (await api_1.getPipeline(heroku, pipelineIDOrName));
|
10 | pipeline = result.body;
|
11 | }
|
12 | else {
|
13 | const { body: pipelines } = await api_1.findPipelineByName(heroku, pipelineIDOrName);
|
14 | if (pipelines.length === 0) {
|
15 | throw new Error('Pipeline not found');
|
16 | }
|
17 | else if (pipelines.length === 1) {
|
18 | pipeline = pipelines[0];
|
19 | }
|
20 | else {
|
21 |
|
22 | const choices = pipelines.map(x => {
|
23 | return {
|
24 | name: new Date(x.created_at).toString(),
|
25 | value: x,
|
26 | };
|
27 | });
|
28 | const questions = [{
|
29 | type: 'list',
|
30 | name: 'pipeline',
|
31 | message: `Which ${pipelineIDOrName} pipeline?`,
|
32 | choices,
|
33 | }];
|
34 |
|
35 | pipeline = await new Promise(async function (resolve, reject) {
|
36 | const answers = await inquirer_1.prompt(questions);
|
37 | if (answers.pipeline) {
|
38 | resolve(answers.pipeline);
|
39 | }
|
40 | else {
|
41 |
|
42 | reject('Must pick a pipeline');
|
43 | }
|
44 | });
|
45 | }
|
46 | }
|
47 | return pipeline;
|
48 | }
|
49 | exports.default = disambiguate;
|