openpetswithchatandmcp/website/analyze-stmts.ts
OpenPets Dev 65ac83849e Add 'website/' from commit '966aea480ffe1c340553aa878def30131d2af827'
git-subtree-dir: website
git-subtree-mainline: 8d3849caea
git-subtree-split: 966aea480f
2026-06-17 20:48:39 +00:00

15 lines
831 B
TypeScript
Executable file

import { Project, SyntaxKind } from 'ts-morph';
const project = new Project({ tsConfigFilePath: 'C:/ScriptoriumAI/scriptoriumai-ui/tsconfig.json' });
const sourceFile = project.getSourceFileOrThrow('C:/ScriptoriumAI/scriptoriumai-ui/src/pages/Runboard.tsx');
const fn = sourceFile.getFunctionOrThrow('Runboard');
const statements = fn.getBody().getStatements();
let sum = 0;
console.log('Largest statements in Runboard:');
statements.map(s => ({ kind: s.getKindName(), size: s.getEndLineNumber() - s.getStartLineNumber(), text: s.getText().substring(0, 100) }))
.sort((a,b) => b.size - a.size).slice(0, 10)
.forEach(s => console.log(s.kind, s.size, s.text));
let total = 0;
statements.forEach(s => total += s.getEndLineNumber() - s.getStartLineNumber());
console.log('Total lines of all direct statements:', total);