async function main()

in scripts/deno/check-npm-scripts.ts [114:160]


async function main(pkgName: string | undefined) {
	const packages = (await getWorkspacePackages(pkgName)) ?? [];
	const errorLogs: ErrorLog[] = [];

	for (const pkg of packages) {
		for (const [scriptName] of Object.entries(pkg.scripts)) {
			console.log(`Cleaning wireit caches...`);
			await deleteDirs('.wireit');

			console.log(`Cleaning dist folders...`);
			await deleteDirs('dist');

			const relativePath = [relative(Deno.cwd(), pkg.path), 'package.json']
				.filter(Boolean)
				.join('/');

			try {
				console.log(
					`Running ${fmt.blue(scriptName)} from ${fmt.cyan(relativePath)}...`,
				);
				await runNpmScript(pkg.path, scriptName);
				console.log(fmt.green('✓') + fmt.dim(` success`));
			} catch (error) {
				console.log(fmt.red(`❌ Failed`));
				console.error(error.message);

				errorLogs.push({
					packageName: pkg.path,
					script: scriptName,
					error: error.message,
				});
			}
			console.log('');
		}
	}

	if (errorLogs.length > 0) {
		console.log(`\n ${errorLogs.length} scripts failed:`);
		for (const log of errorLogs) {
			console.log(`Package: ${log.packageName}`);
			console.log(`Script: ${log.script}`);
			console.log(`Error: ${log.error}\n`);
		}
	} else {
		console.log('All scripts ran successfully.');
	}
}