skailan-conversations
Version:
Servicio de conversaciones y mensajería para Skailan
102 lines • 4.34 kB
JavaScript
/**
* Script para arreglar errores de compilación TypeScript
* Este script identifica y corrige los errores más comunes
*/
import * as fs from "fs";
const errors = [
// Errores de parámetros undefined en controladores
{
file: "src/api/controllers/channelController.ts",
line: 56,
message: "Type string | undefined is not assignable to type string",
type: "TS2322",
},
{
file: "src/api/controllers/conversationController.ts",
line: 64,
message: "Type string | undefined is not assignable to type string",
type: "TS2322",
},
// Errores en StartConversation
{
file: "src/app/use-cases/StartConversation.ts",
line: 43,
message: "Property length does not exist on type {}",
type: "TS2339",
},
// Errores en TelegramService
{
file: "src/domain/services/TelegramService.ts",
line: 30,
message: "response.data is of type unknown",
type: "TS18046",
},
];
function fixControllerErrors() {
console.log("🔧 Arreglando errores en controladores...");
const controllers = [
"src/api/controllers/channelController.ts",
"src/api/controllers/conversationController.ts",
"src/api/controllers/conversationTagController.ts",
"src/api/controllers/messageController.ts",
"src/api/controllers/tagController.ts",
];
controllers.forEach((controllerPath) => {
if (fs.existsSync(controllerPath)) {
let content = fs.readFileSync(controllerPath, "utf8");
// Arreglar errores de parámetros undefined
content = content.replace(/(\s+)(id|conversationId|tagId),\s*$/gm, "$1$2!,");
fs.writeFileSync(controllerPath, content);
console.log(`✅ Arreglado: ${controllerPath}`);
}
});
}
function fixStartConversationErrors() {
console.log("🔧 Arreglando errores en StartConversation...");
const filePath = "src/app/use-cases/StartConversation.ts";
if (fs.existsSync(filePath)) {
let content = fs.readFileSync(filePath, "utf8");
// Arreglar error de length
content = content.replace(/if \(findContactResponse\.data && findContactResponse\.data\.length > 0\)/g, "if (findContactResponse.data && Array.isArray(findContactResponse.data) && findContactResponse.data.length > 0)");
// Arreglar error de tipo unknown
content = content.replace(/contactId = createContactResponse\.data\.id;/g, "contactId = (createContactResponse.data as any).id;");
// Arreglar constructor de Conversation
content = content.replace(/const newConversation = new Conversation\(\s*([^)]+)\);/g, "const newConversation = new Conversation(\n$1,\n new Date()\n );");
fs.writeFileSync(filePath, content);
console.log(`✅ Arreglado: ${filePath}`);
}
}
function fixTelegramServiceErrors() {
console.log("🔧 Arreglando errores en TelegramService...");
const filePath = "src/domain/services/TelegramService.ts";
if (fs.existsSync(filePath)) {
let content = fs.readFileSync(filePath, "utf8");
// Arreglar todos los errores de response.data
content = content.replace(/response\.data\.ok/g, "(response.data as any).ok");
content = content.replace(/response\.data\.result/g, "(response.data as any).result");
content = content.replace(/response\.data\.description/g, "(response.data as any).description");
// Arreglar error de parámetro button
content = content.replace(/row\.map\(\(button\) => \(/g, "row.map((button: any) => (");
fs.writeFileSync(filePath, content);
console.log(`✅ Arreglado: ${filePath}`);
}
}
function main() {
console.log("🚀 Iniciando corrección de errores de compilación...\n");
try {
fixControllerErrors();
fixStartConversationErrors();
fixTelegramServiceErrors();
console.log("\n✅ Corrección de errores completada");
console.log('📝 Ejecuta "npm run build" para verificar los cambios');
}
catch (error) {
console.error("❌ Error durante la corrección:", error);
process.exit(1);
}
}
if (require.main === module) {
main();
}
//# sourceMappingURL=fix-compilation-errors.js.map