openpetswithchatandmcp/website/run_transform.cjs
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

37 lines
1.6 KiB
JavaScript
Executable file

const { Project, SyntaxKind } = require('ts-morph');
const project = new Project({ tsConfigFilePath: './tsconfig.json' });
const sourceFile = project.getSourceFileOrThrow('src/pages/Runboard.tsx');
const fn = sourceFile.getFunctionOrThrow('Runboard');
const varsToRemove = [
'compareRemediationRouteActionReadiness',
'compareRemediationRouteQuickActionDisabledState',
'compareRemediationEditorContextHref'
];
let extractedCode = "import { useMemo } from 'react';\n\nexport function useCompareRemediationRouteStrategy() {\n";
let removed = 0;
varsToRemove.forEach(name => {
const v = fn.getVariableStatements().find(x => x.getDeclarations().length > 0 && x.getDeclarations()[0].getName() === name);
if (v) {
extractedCode += v.getText() + '\n\n';
v.remove();
removed++;
}
});
extractedCode += " return {\n compareRemediationRouteActionReadiness,\n compareRemediationRouteQuickActionDisabledState,\n compareRemediationEditorContextHref\n };\n}\n";
if (removed > 0) {
require('fs').writeFileSync('src/hooks/useCompareRemediationRouteStrategy.ts', extractedCode);
fn.insertStatements(0, 'const { compareRemediationRouteActionReadiness, compareRemediationRouteQuickActionDisabledState, compareRemediationEditorContextHref } = useCompareRemediationRouteStrategy();');
sourceFile.addImportDeclaration({
namedImports: ['useCompareRemediationRouteStrategy'],
moduleSpecifier: '../hooks/useCompareRemediationRouteStrategy'
});
project.saveSync();
console.log('Successfully completed first massive hook split.');
} else {
console.log('Variables not found, likely already extracted.');
}