export async function generatorProject()

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