in src/yo/index.ts [26:78]
export async function generatorProject(addService) {
const cwd = await getWorkingFolder();
if (!cwd) {
window.showErrorMessage('Please open a workspace directory first.');
return;
}
const yo = new Yeoman({ cwd });
let main;
let sub;
const generator = await window.showQuickPick(list(yo));
if (generator === undefined) {
return;
}
main = generator.label;
let subGenerator: string;
if ((generator as any).subGenerators.length > 1 && addService) {
subGenerator = await runSubGenerators((generator as any).subGenerators);
} else {
subGenerator = 'app';
}
if (subGenerator === undefined) {
return;
}
sub = subGenerator;
var beforeYo = getAllDirs(cwd);
var afterYo;
try {
yo.run(`${main}:${sub}`, cwd).then(_p => {
afterYo = getAllDirs(cwd);
var newApp = _.difference(afterYo, beforeYo);
if (newApp.length > 0) {
openFolder(newApp[0]);
}
});
} catch (err) {
const regexp = new RegExp('Did not provide required argument (.*?)!', 'i');
if (err) {
const match = err.message.match(regexp);
if (match) {
return `${sub} ${match[1]}?`;
}
}
window.showErrorMessage(err.message || err);
}
}