public run()

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
			});
		});
	}