mirror of
https://github.com/EthanShoeDev/fressh.git
synced 2026-01-11 06:12:51 +00:00
39 lines
1.3 KiB
TypeScript
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();
|