Files
fressh/scripts/turbo-tasks-report.ts
EthanShoeDev dd0bb7636d turbo tasks
2025-09-19 19:44:20 -04:00

39 lines
1.3 KiB
TypeScript

/**
* This scripts finds and collects aall turbo.jsonc files in the repo.
* It iterates over those and grabs the "scripts" section of each package.json
*
* It aggregates the results and prints them out in a human readable format.
*/
import * as fsp from 'fs/promises';
import { globby } from 'globby';
import path from 'path';
console.log('Turbo tasks report');
console.log('--------------------------------');
async function main() {
const turboJsonFiles = await globby('**/turbo.jsonc');
const reportParts: string[] = [];
for (const turboJsonFile of turboJsonFiles) {
reportParts.push(`Turbo config: ${turboJsonFile}`);
reportParts.push('--------------------------------');
const turboConfigContents = await fsp.readFile(turboJsonFile, 'utf-8');
reportParts.push(turboConfigContents);
const relativePackageJson = path.join(turboJsonFile, '..', 'package.json');
reportParts.push(`Package json scripts: ${relativePackageJson}`);
reportParts.push('--------------------------------');
const packageJson = await fsp.readFile(relativePackageJson, 'utf-8');
const packageJsonObject = JSON.parse(packageJson);
const scripts = packageJsonObject.scripts;
reportParts.push(JSON.stringify(scripts, null, 2));
reportParts.push('--------------------------------');
}
const report = reportParts.join('\n');
console.log(report);
}
void main();