ticktick-mcp/check-types.js

74 lines
No EOL
1.6 KiB
JavaScript

#!/usr/bin/env node
const { spawn } = require('child_process');
const fs = require('fs');
const path = require('path');
function runTypeCheck() {
return new Promise((resolve, reject) => {
console.log('Running TypeScript type checking...');
const tsc = spawn('npx', ['tsc', '--noEmit', '--pretty'], {
stdio: 'pipe',
shell: true,
cwd: process.cwd()
});
let stdout = '';
let stderr = '';
tsc.stdout.on('data', (data) => {
stdout += data.toString();
});
tsc.stderr.on('data', (data) => {
stderr += data.toString();
});
tsc.on('close', (code) => {
resolve({
code,
stdout,
stderr,
success: code === 0
});
});
tsc.on('error', (error) => {
reject(error);
});
});
}
async function main() {
console.log('TickTick MCP Server - TypeScript Type Checking');
console.log('==============================================');
try {
const result = await runTypeCheck();
if (result.success) {
console.log('✅ No TypeScript errors found!');
console.log('\nType checking completed successfully.');
} else {
console.log('❌ TypeScript errors found:');
console.log('\nSTDOUT:');
console.log(result.stdout);
console.log('\nSTDERR:');
console.log(result.stderr);
}
console.log('\n==============================================');
console.log(`Exit code: ${result.code}`);
process.exit(result.code);
} catch (error) {
console.error('❌ Error running type check:', error.message);
process.exit(1);
}
}
if (require.main === module) {
main();
}