// =========== Mocking Inquirer Module =====================
var inquirer = {
prompt: function(question) {
var choices = question.choices
.map((v, i) => `[${i+1}] - ${v}`)
.join('\n');
var message = `${question.message}\n${choices}`;
var result = {};
var answer;
return new Promise((resolve, reject) => {
do {
answer = parseInt(window.prompt(message));
} while(
isNaN(answer) ||
answer < 1 ||
answer > choices.length ||
answer === null
);
if(answer === null) {
reject();
} else {
result[question.name] = question.choices[answer-1];
resolve(result);
}
});
}
};
const diff = {
wrongVersion: [
{
projectVersion: 'pv-1.0',
layerVersion: 'lv-1.0',
name: 'Dep-A'
},
{
projectVersion: 'pv-1.0',
layerVersion: 'lv-1.0',
name: 'Dep-B'
},
{
projectVersion: 'pv-1.0',
layerVersion: 'lv-1.0',
name: 'Dep-C'
},
{
projectVersion: 'pv-1.0',
layerVersion: 'lv-1.0',
name: 'Dep-D'
},
{
projectVersion: 'pv-1.0',
layerVersion: 'lv-1.0',
name: 'Dep-E'
},
]
};
diff.wrongVersion.reduce((promise, dependency) => promise.then(result =>
inquirer.prompt({
type: 'list',
name: dependency.name,
message: `Choose which version to use for: ${dependency.name}`,
choices: [
`project version: ${dependency.projectVersion}`,
`layer version: ${dependency.layerVersion}`
]
})
.then(answer => Object.assign(result, answer))
), Promise.resolve({})).then(result => {
console.log(result);
});