codigo0/node_modules/happy-dom/lib/fetch/utilities/SyncFetchScriptBuilder.js
planetazuzu 5d7a6500fe refactor: Fase 1 - Clean Architecture, refactorización modular y eliminación de duplicidades
-  Ticket 1.1: Estructura Clean Architecture en backend
-  Ticket 1.2: Schemas Zod compartidos
-  Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares)
-  Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares)
-  Ticket 1.5: Eliminación de duplicidades (~50 líneas)

Cambios principales:
- Creada estructura Clean Architecture en backend/src/
- Schemas Zod compartidos en backend/src/shared/schemas/
- Refactorización modular de drugs y procedures
- Utilidades genéricas en src/utils/ (filter, validation)
- Eliminados scripts obsoletos y documentación antigua
- Corregidos errores: QueryClient, import test-error-handling
- Build verificado y funcionando correctamente
2026-01-25 21:09:47 +01:00

58 lines
2.5 KiB
JavaScript

import FetchHTTPSCertificate from '../certificate/FetchHTTPSCertificate.js';
/**
* Synchronous fetch script builder.
*/
export default class SyncFetchScriptBuilder {
/**
* Sends a synchronous request.
*
* @param request Request.
* @param request.url
* @param request.method
* @param request.headers
* @param request.body
* @param request.disableStrictSSL
* @returns Script.
*/
static getScript(request) {
const sortedHeaders = {};
const headerNames = Object.keys(request.headers).sort();
for (const name of headerNames) {
sortedHeaders[name] = request.headers[name];
}
return `
const sendRequest = require('http${request.url.protocol === 'https:' ? 's' : ''}').request;
const options = ${JSON.stringify({
method: request.method,
headers: sortedHeaders,
agent: false,
rejectUnauthorized: !request.disableStrictSSL,
key: request.url.protocol === 'https:' ? FetchHTTPSCertificate.key : undefined,
cert: request.url.protocol === 'https:' ? FetchHTTPSCertificate.cert : undefined
}, null, 4)};
const request = sendRequest(${JSON.stringify(request.url.href)}, options, (incomingMessage) => {
let data = Buffer.alloc(0);
incomingMessage.on('data', (chunk) => {
data = Buffer.concat([data, Buffer.from(chunk)]);
});
incomingMessage.on('end', () => {
console.log(JSON.stringify({
error: null,
incomingMessage: {
statusCode: incomingMessage.statusCode,
statusMessage: incomingMessage.statusMessage,
rawHeaders: incomingMessage.rawHeaders,
data: data.toString('base64')
}
}));
});
incomingMessage.on('error', (error) => {
console.log(JSON.stringify({ error: error.message, incomingMessage: null }));
});
});
request.write(Buffer.from('${request.body ? request.body.toString('base64') : ''}', 'base64'));
request.end();
`;
}
}
//# sourceMappingURL=SyncFetchScriptBuilder.js.map