in src/yo/yo/yo.ts [83:127]
public run(generator: string, cwd: string) {
if (!cwd) {
throw new Error('Please open a workspace directory first.');
}
process.chdir(cwd);
const prefix = 'generator-';
if (generator.indexOf(prefix) === 0) {
generator = generator.slice(prefix.length);
}
return new Promise((resolve, reject) => {
Promise.resolve(window.showQuickPick(new Promise((res, rej) => {
setImmediate(() => {
try {
this._env.run(generator, this.done)
.on('npmInstall', () => {
this.setState('install node dependencies');
})
.on('bowerInstall', () => {
this.setState('install bower dependencies');
})
.on('error', err => {
if (!(err instanceof EscapeException)) {
window.showErrorMessage(err.message);
throw err;
}
})
.on('end', () => {
this.clearState();
console.log(`${EOL}${figures.tick} done`);
resolve();
});
} catch (err) {
reject(err);
}
rej();
});
}))).catch(err => {
// do nothing because the input is always rejected
});
});
}