openpetswithchatandmcp/website/do-extract-safe.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

35 lines
1.3 KiB
TypeScript
Executable file

import { Project } from 'ts-morph';
const project = new Project({ tsConfigFilePath: 'C:/ScriptoriumAI/scriptoriumai-ui/tsconfig.json' });
const sf = project.getSourceFileOrThrow('C:/ScriptoriumAI/scriptoriumai-ui/src/pages/Runboard.tsx');
const targetFile = project.getSourceFileOrThrow('C:/ScriptoriumAI/scriptoriumai-ui/src/utils/runboard/runboard-compare-logic.ts');
const compareRouteNames = sf.getFunctions().filter(f => {
const name = f.getName();
return name && name.includes('CompareRoute');
}).map(f => f.getName()!);
console.log('Match functions:', compareRouteNames);
for (const name of compareRouteNames) {
const fn = sf.getFunction(name);
if (!fn) continue;
targetFile.addFunction({
...fn.getStructure(),
isExported: true
});
fn.remove();
}
targetFile.addImportDeclaration({
moduleSpecifier: './runboard-telemetry',
namedImports: [] // Just empty for now to fix syntax if needed, wait we need exactly RUN_STATUSES and RunboardCompareRouteQuickActionId
});
sf.addImportDeclaration({
moduleSpecifier: '../utils/runboard/runboard-compare-logic',
namedImports: compareRouteNames
});
project.saveSync();
console.log('Extracted', compareRouteNames.length, 'functions down to runboard-compare-logic.ts');