35 lines
1.3 KiB
TypeScript
Executable file
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');
|