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